DIY, jak mówi Wikipedia, to już od dawna subkultura. W tym artykule chcę opowiedzieć o swoim projekcie diy małego bezprzewodowego czujnika multisensorycznego, co będzie moim niewielkim wkładem w tę subkulturę.
Historia tego projektu rozpoczęła się od obudowy, brzmi to głupio, ale tak właśnie zaczęło się to przedsięwzięcie. Obudowę kupiono na stronie AliExpress, warto zauważyć, że jakość odlewu plastiku tej obudowy jest doskonała. Po krótkiej korespondencji z sprzedawcą przesłano rysunek i projekt się rozpoczął.
Sam rysunek był bardzo źle wymiarowany i połowę wymiarów dla granic, wycięć i technologicznych otworów przyszłej płytki drukowanej musiano wykonać za pomocą suwmiarki. Po uzyskaniu wszystkich wewnętrznych wymiarów obudowy stało się jasne, że chip radiowy należy 'prowadzić' bezpośrednio na płytce drukowanej, ponieważ wysokość od górnej części płytki do wewnętrznej powierzchni obudowy wynosiła 1,8 mm, a minimalna wysokość gotowego średniego modułu radiowego zazwyczaj wynosi 2 mm (bez ekranu).



Do czujnika wybrano SoC nRF52 w obudowie QFN48. W tej obudowie w serii nRF52 firma Nordic ma trzy warianty: nRF52810, nRF52811 (nowość), nRF52832. Parametry chipów: 64 MHz Cortex-M4, 2,4 GHz transceiver, 512/256 KB Flash, 64/32 KB RAM w nRF52832 oraz 192 KB Flash, 24 KB RAM w nRF52810, nRF52811, chipy wieloprotokołowe, wspierają Bluetooth Low Energy, Bluetooth mesh, ESB, ANT, a nRF52811, oprócz wymienionych, również Zigbee i Thread, a także Bluetooth Direction Finding.

Zdecydowałem się na zrobienie czujnika multisensorycznego, aby można go było wykorzystać do różnych zadań. Prowadzenie chipu z tego powodu musiało być jak najbardziej kompaktowe, z uwagi na to, że minimalne wymiary komponentów nie mogły być mniejsze niż 0603, aby urządzenie można było lutować ręcznie. Po wprowadzeniu chipu na płytkę zająłem się wyborem czujników. Główne kryteria, którymi się kierowałem, to wymiary obudowy czujnika oraz możliwość lutowania czujnika w warunkach domowych przy minimalnym zestawie sprzętu (lutownica i opalarka).

Dla czujnika wybrano następujące czujniki: SHT20, SHt21, Si7020, Si7021, HTU21D (czujnik temperatury i wilgotności), wszystkie te czujniki mają obudowę o takim samym kształcie i identyczne wyprowadzenia, HDC2080 (czujnik temperatury i wilgotności) ma także podobną obudowę jak wcześniej wymienione, ale ma dodatkowe wyjście przerwania oraz jest bardziej energooszczędny. BME280 (czujnik temperatury, wilgotności i ciśnienia), LMT01 (czujnik temperatury), TMP117 (wysokoprecyzyjny czujnik temperatury), wysoka energooszczędność, wyjście przerwania, możliwość ustawienia górnych i dolnych granic temperatury, LIS2DW12 (akcelerometr) o wysokiej energooszczędności, jeden z najlepszych w swojej kategorii, albo LIS2DH12.


W pierwszej wersji czujnika na liście znajdował się również kontaktron, jednak w kolejnych wersjach został on usunięty, ponieważ czujnik kontaktronowy o wymiarach 1,6 cm ze szklaną bańką nie miał wystarczająco dużo miejsca, a kilka takich czujników złamałem podczas instalacji gotowej płytki w obudowie. Dodatkowo z powodu kwadratowego kształtu obudowy oraz jej niewielkiej wysokości, urządzenie nie bardzo nadawało się jako magnesowy czujnik otwarcia i zamknięcia.

Oprócz czujników, na czujniku umieszczono 2 diody LED, z których jedna to RGB umieszczona na dolnej stronie czujnika. Dwie przyciski SMD, jeden podłączony do resetu, drugi „użytkownik” do realizacji różnych scenariuszy pracy czujnika. Obudowa czujnika składa się z trzech części: głównej obudowy, wewnętrznej wkładki z otworem trzymającym baterię, mocowanej do głównej obudowy czterema śrubami, oraz dolnej pokrywy, która zatrzaskuje się w otworach wewnętrznej wkładki. Dodatkowo wyprowadzono 4 analogowe piny, 2 cyfrowe oraz jeszcze dwa piny, które mogą być anteną NFC lub pinami cyfrowymi, port SWD.
Diody RGB i przyciski są umieszczone na płytce PCB w taki sposób, że mają otwarty dostęp przy zdjętej dolnej pokrywie przez otwory wewnętrznej wkładki, które są przeznaczone do zatrzaskiwania tylnej pokrywy.

Urządzenie przeszło dwie rewizje, wcześniej na miejscu czujnika TMP117 zainstalowany był czujnik natężenia oświetlenia MAX44009, który później został zastąpiony czujnikiem temperatury, oba czujniki mają tę samą obudowę, ale różne wyprowadzenia nogiek, może to niepotrzebna zmiana, być może warto byłoby to przywrócić.




Obecnie w moim domu działają 4 takie urządzenia, dwa z nich to czujniki temperatury i wilgotności z sensorami Si7021 (jeden na nRF52832, drugi na nRF52811), jeden to czujnik uderzenia zrealizowany na akcelerometrze LIS2DW12 (nRF52810) oraz czujnik kontroli temperatury na sensorze LMT01 (nRF52810).
Bezprzewodowy czujnik działa na baterii cr2032, zużycie w trybie uśpienia wynosi 1.8µA dla nRF52810, nRF52811 i 3.7µA dla nRF52832. Zużycie w trybie przesyłania danych to 8mA.


Opis stosowanego protokołu oraz rozwój oprogramowania dla tego czujnika w różnych scenariuszach użycia wykracza moim zdaniem poza ramy tego artykułu.
Test działania czujnika w systemie inteligentnego domu można zobaczyć w krótkim wideo poniżej.

Projekt tego czujnika jest otwarty, wszystkie materiały dotyczące projektu można znaleźć na moim .
Jeśli interesuje Cię wszystko, co związane z DIY, jesteś DIY programistą lub chcesz dopiero zacząć, zapraszam wszystkich zainteresowanych do .
Wszystkim, którzy chcą tworzyć urządzenia i zaczynać budować automatyzację swojego domu, proponuję zapoznać się z prostym w użyciu protokołem MySensors — czat na Telegramie
A ci, którzy szukają bardziej zaawansowanych rozwiązań do automatyzacji domu, zapraszam do czatu na Telegramie . ()
Dziękuję za uwagę, wszystkim życzę wszystkiego dobrego!
Źródło: habr.com
