DIY, както казва Уикипедия, отдавна е субкултура. В тази статия искам да разкажа за моя DIY проект на малък безжичен многосензорен датчик и това ще бъде моят малък принос към тази субкултура.
Историята на този проект започна с корпуса, звучи глупаво, но именно така стартира. Корпусът беше закупен от сайта AliExpress, и трябва да отбележа, че качеството на отливката на пластика е отлично. След кратка кореспонденция с продавача, чертежът беше изпратен по имейл и проектът започна.
Самият чертеж беше много лошо измерен и половината от измерванията за границите, изрезите и технологичните отвори на бъдещата платка бяха направени с помощта на штангенциркул. След като получих всички вътрешни размери на корпуса, стана ясно, че радиочипът ще трябва да бъде 'разведен' директно на печатната платка, тъй като разстоянието от горната част на печатната платка до вътрешната повърхност на корпуса беше 1.8 мм, а минималната височина на готовия средностатистически радиомодул обикновено е 2 мм (без екран).



За датчика бе избран SoC nRF52 в корпус QFN48. В тази серия nRF52 на Nordic има три варианта: nRF52810, nRF52811 (ново), nRF52832. Параметрите на чиповете: 64 MHz Cortex-M4, 2.4 GHz передавател, 512/256 KB Flash, 64/32 KB RAM за nRF52832 и 192 KB Flash, 24 KB RAM за nRF52810, nRF52811, чиповете са многопротоколни, поддържат Bluetooth Low Energy, Bluetooth mesh, ESB, ANT, а nRF52811 освен изброеното поддържа и Zigbee и Thread, както и Bluetooth Direction Finding.

Реших да направя датчика многосензорен, за да може да се използва за различни задачи. Разводката на чипа по тази причина трябваше да бъде възможно най-компактна, като се има предвид, че минималните размери на компонентите не трябва да са по-малки от 0603, за да може устройството да бъде споено ръчно. След като чипът беше разведeн на платката, се заех с подбора на сензори. Основното, на което се ориентирах при подбора, беше размерът на корпуса на сензора и възможността за поял сензора у дома с минимален набор от оборудване (поялник и сешоар).

За датчика бяха избрани следните сензори: SHT20, SHt21, Si7020, Si7021, HTU21D (сензор за температура и влажност), всички тези сензори имат един и същи корпус и идентични изводи, HDC2080 (сензор за температура и влажност) също има подобен корпус, както изброените по-рано, но разполага с допълнителен изход за прекъсване, по-енергоспестяващ, BME280 (сензор за температура, влажност и налягане), LMT01 (сензор за температура), TMP117 (високоточен сензор за температура), висока енергийна ефективност, изход за прекъсване, настройка на горни и долни температурни граници, LIS2DW12 (акселерометър) с висока енергийна ефективност, един от най-добрите в своя сегмент или LIS2DH12.


Също така в първата версия на датчика в списъка имаше херкон, но в последващите ревизии беше изключен, тъй като на херконовия сензор с размер 1,6 см със стъклена колба не достигаше място, и няколко от тези сензори счупих, когато инсталирах готовата платка в корпуса, също заради квадратния вид на корпуса и малката му височина, устройството не беше много подходящо за роля на магнитен сензор за отваряне и затваряне.

Освен сензорите, на датчика са разположени 2 светодиода, един от които RGB, разположен на долната страна на датчика. Две SMD бутони, единият свързан към рестарт, а вторият "потребителски" за реализиране на различни сценарии за работа на датчика. Корпусът на датчика се състои от три части, основен корпус, вътрешна вставка с отвор за задържане на батерията, която се закрепва към основния корпус с четири винта, и долна капачка, която се захваща в отворите на вътрешната вставка. Също така са изведени 4 аналогови пина, 2 цифрови и още два пина, които могат да бъдат NFC антена или цифрови пини, порт SWD.
RGB светодиодът и бутоните са разположени на PCB платката по такъв начин, че има открит достъп до тях при свалена долна капачка през отворите на вътрешната вставка, които са предназначени за захващане на задната капачка.

Устройството преживя две ревизии, също така по-рано на мястото на сензора TMP117 беше инсталиран сензор за осветеност MAX44009, който по-късно беше заменен с сензор за температура, и двата сензора имат еднакъв корпус, но различни изводи на пиновете, може би замяната е била излишна, възможно е да стои.




В момента у дома ми работят 4 таки устройства, две от които са сензори за температура и влажност с сензори Si7021 (единият на nRF52832, вторият на nRF52811), едно е сензор за удар, реализиран на акселерометър LIS2DW12 (nRF52810) и сензор за контрол на температурата на сензора LMT01 (nRF52810).
Безжичният сензор работи с батерия cr2032, консумацията в режим на сън е 1.8µA за nRF52810 и nRF52811 и 3.7µA за nRF52832. Консумацията в режим на предаване на данни е 8mA.


Описанието на използвания протокол и разработката на софтуер за този сензор в различни сценарии за употреба мисля, че надхвърля рамките на тази статия.
Тестът на работата на сензора с системата за умно управление на дома можете да видите в краткото видеоклипче по-долу.

Проектът на този сензор е с отворен код, всички материали по проекта можете да получите на моя .
Ако ви интересува всичко свързано с DIY, вие сте DIY разработчик или искате само да започнете, интересувате се от използването на DIY устройства, каня всички, заинтересовани в .
На всички, които искат да правят устройства и да започнат да изграждат автоматизация за своя дом, предлагам да се запознаете с простия за усвояване протокол Mysensors — Telegram чата
А на тези, които търсят по-усъвършенствани решения за домашна автоматизация, каня в Telegram чата . ()
Благодаря за вниманието, на всички добри неща!
Източник: habr.com
