
Jakiś czas temu nabyłem różnego rodzaju czujniki: gazu, dymu itp. przy czym są to urządzenia, które mogą współpracować z dedykowanymi przez producentów systemami alarmowymi. Czujniki wyposażone są w moduł radiowy RF433 z kodowaniem EV1527. Wówczas nie byłem tym zainteresowany. Nie byłem świadomy, że są urządzenia, które pozwalają "podłączyć do internetu" takie czujniki i inne "nieinteligentne" urządzenia. Było to kilka lat temu, gdy temat inteligentnego domu nie był jeszcze taki modny. Dziś na forum non stop coś o inteligentnych żarówkach, gniazdkach, przeróbkach i wgrywaniach wsadu.
Po bliższym zaznajomieniu się z tematem, przy użyciu Arduino i biblioteki RCSwitch, można ten kod odczytać. I tak stałem się posiadaczem Sonoff 433 RF Bridge i użytkownikiem eWeLink. Potem to już czujniki otwarcia drzwi, okna, ruchu itd. Dzisiaj, oprócz Ewelink mam czujniki TUYA i różne samoróbki do SUPLA.
Bez względu na wybraną platformę, moim zdaniem warto dodać do "nieinteligentnego" urządzenia możliwość podłączenia go do internetu, np. w celu określenia stanu pracy - awarii i niekoniecznie musi to być moduł Wi-Fi ESP8266. W tym celu powstał poniższy układzik, a w zasadzie dwa - w wersji 1 klasycznej i wersji 2, mikroprocesorowej.
W wersji 1, klasycznej, sercem układu jest układ scalony EV1527 (kupiony na AliExpress). Napięcie zasilania 3-12 V. Nadawany kod ustalany jest poprzez wejścia K0-K3. W modelu kod ustalono tylko wejściem K0 (podłączonym do plusa zasilania). Rezystor R1 ustala częstotliwość oscylacji i wynosi 330 kΩ. Wartość ta zależy od napięcia zasilania układu. Wyjście Tx podłączono do wejścia nadajnika RF433.
Układ 4047 po podaniu impulsu dodatniego z monitorowanego urządzenia, załącza poprzez Q1 koder U1 i nadajnik TX na czas ok. 1-2 s (R3, C2). Jest to czas wystarczający na poprawne odebranie kodu przez np. RFBridge i przesłaniu do aplikacji eWeLink. Sposób parowania odbywa się w identyczny jak każdego innego urządzenia do RFBridge, więc nie będę o tym pisał. Przy montażu układu należy zwrócić uwagę, że niektóre piny elementów są jednocześnie przelotką i należy je lutować na warstwie top i botom.



W wersji mikroprocesorowej znalazła się Atmega88. Wejściem sterującym jest INT0, przy czym w tym wypadku przerwanie jest wyzwalane stanem niskim. Dodatkowo dodałem kontaktron, gdyby w przyszłości miał być to czujnik, np. otwarcia.

Na schemacie widać dwa różne nadajniki: AM-RT4 (kiedyś popularny) i FS1000A (chyba najbardziej badziewny z możliwych nadajników, ale w niewielkim mieszkaniu w bloku zasięg jest wystarczający), należy wybrać jeden z nich. Szczegóły montażu na zdjęciach.


Do zaprogramowania atmegi służy gniazdo J1. Program napisany jest w Arduino. Nadawany kod 1681000, znajduje się w linijce mySwitch.send(1681000, 24); nieużywane piny są ustawione jako wejścia podciągnięte.
Aby zaprogramować ATMEGA88 należy zainstalować MiniCore https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json (szczegóły na https://github.com/MCUdude/MiniCore) i ustawić: wewnętrzny kwarc np. 8 MHZ, no bootloader, bod 2,7 V). Plik hex po kompilacji powinien być w tym miejscu: C:\Users\nazwa_komputera\AppData\Local\Temp\arduino_build_xxxxxx
Następnie należy zaprogramować atmegę zwykłym programatorem (dla ułatwienia plik .hex w załączniku).
Ponieważ nie jestem programistą i nie znam dobrze szczegółów dot. trybu SLEEP/POWERDOWN w Arduino/MINICORE, stąd z poborem prądu w stanie spoczynku zszedłem tylko do ok. 100 µA.
Do testowania urządzeń nadających nie tylko kodem EA1527 powstał prosty układ "Odbiornik". Jest to nic innego jak szkic Arduino z biblioteki "ReceiveDemo_Advanced" wgrany do M88 oraz odbiornik 433 MHz i przejściówka FTDI232RL. Zasilanie 5 V z przejściówki przez USB. Odczyt w dowolnym terminalu, ustawienia 9600,8,n1. Nic wielkiego, ale może komuś się przydać


Układ w wersji 1 pracuje w czujniku zalania "Wykrywacz wylanej wody" AVT1105. Myślę, że posiadając już most RF-Wi-Fi można pokusić się o wykonanie takiego układziku.
W załączniku:
- Nadajnik wersja 1: pliki eagle (sch i brd ),
- Nadajnik wersja 2: pliki eagle (sch i brd ), pliki arduino (.ino i .hex)
- Odbiornik: pliki eagle (sch i brd ), pliki arduino (.ino i .hex)
Cool? Ranking DIY