Mój zautomatyzowany dom: Raspberry PI + węzeł-Red + MQTT i Amazon Echo

W naszej najnowszej funkcji mojej automatycznej domowej domowej Dave McLaughlin prowadzi nas przez swoją podróż, rozwijając swój własny system inteligentnego domu. Z pewnymi ulepszeniami DIY do istniejącego sprzętu do automatyzacji domowej i sprytnej integracji oprogramowania zbudował fascynujący system…

Na początku

Po użyciu Homeseera i wielu urządzeń przewodowych i bezprzewodowych podczas gdy w Wielkiej Brytanii przeniosłem się na Wireless, kiedy przeprowadziłem się za granicę do Indonezji w 2005 Ethernet w tym samym pokoju.

Decyduję o systemie Z-Wave, później dodając również moduły lampy WEMO. W przypadku z-Wave strony rzeczy wybrałem moduły urządzeń HomePro dla gniazd i modułów lamp eversspring do oświetlenia. Żaden z tych 2 modułów nie był tani.

Biegałem z tą konfiguracją do połowy 2016 r., Ale następujące problemy spowodowały zmianę. Po pierwsze, Z-Wave była temperamentna z 2 jednostkami na drugim końcu mieszkania OU, mimo że miałem moduł urządzeń w połowie, po prostu nigdy nie działał niezawodnie. Ciągle naciskałbym na tablet na bazie Homeseer Touch, aby moje łóżko światło. Później miałbym 2 jednostki, które kontrolowane lampy wysadzają i zawodzą. Jeden z układów scalonych, który był częścią zasilacza, rozdzielił się szeroko otwarty.

Następnym bólem głowy były moduły lampy WEMO. Jedynym sposobem, aby je działać, był IFTTT za pośrednictwem kanałów domowych i WEMO. Tak długo, jak moje połączenie internetowe było dobre, to działało dobrze, choć czasami trochę powolne. Niezupełnie 10 w skali WAF.

Na początku 2016 roku natknąłem się na stronę internetową prowadzoną przez Petera Scargilla, który wiele lat temu prowadził firmę projektowania elektroniki z Tyneside. W tym czasie użyłem jego kontrolerów AppCon do automatyzacji domowej w oparciu o małe 8 -bitowe mikrokontrolery PIC. Miałem setki metrów 4 podstawowego kabla alarmowego bieganego po całym mieszkaniu. System był niezawodny, ale próba ukrycia całego tego kabla nie poszło dobrze z moim partnerem.

Szybko do przodu do 2016 roku, a Peter wrócił do automatyzacji domu z małymi kontrolerami opartymi na ESP8266.

Opierają się one na rdzeniu Cortex M4 z wbudowanym Wi -Fi 802.11 i są wyposażone w SDK, który umożliwia rozwój z Eclipse, a także opcją Arduino IDE.

Ponieważ moje jednostki HomePro były kłopotliwe, postanowiłem ponownie zaprojektować wewnętrzne i zachować części mechaniczne. Wyjąłem więc starą płytkę drukowaną i wykonałem wszystkie pomiary, aby móc zrobić swój własny montaż PCB na 2 w stosie tak samo jak stara. Dolna PCB to zasilacz i przekaźnik stanu stałego.

Wybrałem przekaźniki stałego stanu, które włączają zerowe przejście i unikają problemów z wyciągnięciem prądu przemiennego i powodowaniem zanurzenia zasilania. Działa to bezbłędnie i mogę przełączyć do 8 wzmacniaczy z tym układem. więcej niż wystarczające do zamierzonego użycia tych modułów.

Te obrazy pokazują nowy stos deski i stare tablice w module, a na koniec nowe tablice zainstalowane w obudowie HomePro.

Na tablicy znajduje się dioda LED, aby pokazać status, a ja wywierciłem mały otwór, aby umożliwić jej widok z zewnątrz. Błyskuje szybko, aż otrzyma połączenie Wi -Fi i MQTT. Za pomocą przycisku z przodu możesz nacisnąć i przytrzymać przez około 3-5 sekund tuż po zasilaniu, a to aktywuje APN i stronę internetową, której można użyć do konfigurowania urządzenia. Łatwiejsze niż próba zrobienia tego w związku z seryjnym połączeniem. Peter i Aiden zastanawiali się nad tym.

Teraz oświetlenie musiało zostać sortowane. Jednostki Eversspring, które kupiłem w Wielkiej Brytanii kilka lat temu, wykazywały irytującą wadę. Czasami zaczęli się wyłączać, a potem ponownie. To było całkowicie przypadkowe. Zastąpiłem jedną jednostkę nową i to samo wydarzyło się. Pewnego dnia zauważyłem, że uskok na włączenie/wyłączenie miało miejsce, gdy napięcie w mieszkaniu spadło poniżej 209VAC – Indonezja nie jest zbyt dobra, jeśli chodzi o stabilność zasilania sieci. Otworzyłem jedną z jednostek i stwierdziłem, że użyli bardzo taniego projektu zasilacza opartego na kondensatorze/odpornymrzu. Są dobre, gdy masz stabilny zasilacz, ale tak naprawdę nie lubią tego, gdy wejście napięcia jest zbyt niskie.

Tak uzbrojony w projekt jednostki HomePro, postanowiłem utworzyć nową płytkę drukowaną pasującą do istniejących obudów. ESP12 znajdował się po jednej stronie, a zasilanie AC-DC z drugiej. Przekaźnik stanu stałego był również po tej samej stronie, co zasilacz. Zamontentowano również proguty i włączone/wyłączane przycisk, abym mógł początkowo zainstalować oprogramowanie. Interfejs internetowy zostałby użyty do skonfigurowania go później. Poniżej możesz zobaczyć stronę ESP PCB. Gniazdo w PCB ma zwiększyć oddzielenie mocy prądu przemiennego od strony DC o niskim napięciu. Duże podkładki są prądem przemiennym i AC na lampie.

Więc teraz miałem wiele ulepszonych modułów urządzeń i kontrolerów oświetlenia, ale jak miałem to wszystko kontrolować? Nadszedł czas, aby przejść na emeryturę mojego starego systemu Homeseer 2. PC nie byłKoniec kłopotów i bycie systemem Windows 10 zdecyduje, że zaktualizuje się bez mojej zgody. Czas przejść do Linux.

Tak więc, w oparciu o blog od Petera, postanowiłem wydostać się z Raspberry PI3 z 7-calowym LCD i wystrzelić węzeł-czerw. Node-RED dla tych, którzy nie widzieli, jest to bardzo ładne i stabilne oprogramowanie do sterowania przeciąganiem i upuszczeniem. Na początku konfiguracja była zniechęcająca, ale po około tygodniu gry zacząłem stwierdzić, że bardzo łatwo było się z tym poradzić. Jeśli masz jakieś umiejętności programowania, będziesz poczuć się jak w domu podczas skryptu. Wszystkie moduły są dostarczane jako źródło skryptu Java, a na stronie internetowej Node-Red jest ogromna i coraz większa biblioteka.

Następnie potrzebowałem brokera MQTT, ponieważ oprogramowanie Petera komunikuje się przy użyciu tego protokołu. Po skonfigurowaniu i użyciu MQTT szybko zdajesz sobie sprawę, jak wydajny jest w sieci. Nie ma potrzeby ankietowania urządzeń ani nawet znania adresu IP urządzeń. Broker się tym zajmuje. Osoby zaznajomione z XAP to zrozumieją.

Za pomocą węzła-RED skonfiguruję różne timery (ponownie dzięki Peterowi za jego BigTimer) i włączam światła w nocy. Za pomocą wtyczki WEMO miałem teraz kontrolę nad lampami WEMO, choć tylko włączona i wyłączona. Deweloper wtyczki z czerwonego węzła obiecał kontrolę przyciemniania w pewnym momencie.

OK, więc miałem konfigurację węzłów i MQTT, ale teraz potrzebowałem sposobu na kontrolę świateł i przełączników zarówno głosem, jak i jakąś formą interfejsu mechanicznego lub dotykowego. Na stronie internetowej Element14 natknąłem się na niektóre przełączniki bezprzewodowe z Element14, więc zamówiłem kilka z nich wraz z modułem Raspberry Pi Enocean, który podłączał się do pinów GPIO na PI i używa UART do komunikacji z węzłem i wtyczką.

Przełączniki mają profit, ponieważ nie ma baterii do zainstalowania lub zadbania. Używają zbierania energii przez cewkę i magnes, który jest aktywowany podczas naciśnięcia przycisku. Niestety nie są dostarczane z żadnymi oprawami ściennymi, więc musisz zaprojektować własne. Podają plik STL przycisku przełączania, który można wydrukować 3D, więc użyłem tego i stworzyłem dla nich własne montaż. Służy to 2 cele, jeden do pokrycia starego przełącznika na ścianie, zapewniając, że pozostaje on w pozycji ON, tak aby moduły lampy były zawsze włączone, a po drugie, aby zlokalizować elementy sterujące w znanym miejscu.

Korzystanie z wtyczki Enocean węzłowo-RED Otrzymuję ładunek komunikatu z stanami przycisku. Parsując to w przełączniku z czerwonym węzłem, mogę wysłać odpowiednie polecenie do światła lub przełącznika itp. Jest to przykład ładunku wysłanego przez przełącznik Enecean. Jest kodowany w formacie JSON, tak łatwo przeanalizować. Identyfikator i V są tym, co jesteśmy zainteresowani.

{„ładunek”: {„id”: „002d0932”, „v”: „a0 down”, „jednostka”: „”, „rssi”: -76, „typ”: „stan”, „eep”: ” F6-02-03 ”,„ Man ”:„ Enecean_gmbh ”,„ DESC ”:„ Rocker Switch ”,„ RV ”:„ 30 ”,„ Rawbyte ”:„ 55000707017AF630002D09323001ffffffff4c000d ”},„ _msgid ”:„ 3E6D4C8F.C192B4 ” }

Poniższy obraz pokazuje przełącznik, który ma 4 wyjścia na podstawie wartości msg.payload.v w telegramie z przełącznika Enerocean. Są one następnie kierowane do odpowiedniego urządzenia. Używam funkcji przełączania w oprogramowaniu układowym MQTT, aby włączyć i wyłączać urządzenie z tego samego przełącznika. Oznacza to, że mam do 4 stanów przełączników z każdego modułu Enecean.

Teraz zaczyna się zabawna część, ponieważ mam Echo Amazon i zawsze chciałem kontrolować mój dom za pomocą poleceń głosowych. Możesz za to winić scifi

Nie ma bezpośredniego wsparcia echa, przynajmniej nie bez połączenia HTTPS z twoim węzłem-czerwonym i niestety jest niemożliwe w przypadku mojego dostawcy usług internetowych, więc potrzebowałem alternatywy. Korzystając z tego Amazon Echo Habridge z biegania na tym samym Raspberry PI3 Nie mogłem skonfigurować świateł aktywacji głosu itp. Habridge naśladuje API Philips Hue, dzięki czemu echo widzi urządzenia, które konfigurujesz. Oto przykład urządzenia, który nazywa się wentylatorem przednim pokoju.

Wypowiadając następujące w Echo, wentylator można włączyć. „Alexa, odwróć fan sali” lub odsuwając „Alexa, wyłącz fan z przodu”

Habridge wysyła polecenia do węzła-RED za pośrednictwem żądania HTTP, a następnie analizuję adres URL dla wartości. To prosty skrypt, jak pokazano poniżej.

Jak to zrobić z modułami tanich

Po zaprojektowaniu własnych płytek PCB do wymiany modułów potrzebowałem sposobu na dodanie dodatkowych modułów przełączników i kontrolerów światła.

Moje własne domowe jednostki kosztowały około 15 USD do zrobienia ze wszystkimi PCB i częściami razem. Więc nadal niski koszt.

#
Zapowiedź
Produkt
Ocena
Cena £

1
Jane Choi Raspberry Pi 4 B Model B 8 GB Zestaw startowy (8 GB RAM) -Moterboard 64 GB SD, chłodzenieMiłośnik,…
121 recenzji
222,99 £
Kup na Amazon

2
Raspberry Pi 400 4 GB Oficjalny zestaw start-upów, UK Layout
215 recenzji
110,56 £
Kup na Amazon

3
Freeneve Ultimate Starter Zestaw do Raspberry Pi 4 B 3 B+ 400, 561-stronicowe szczegółowe samouczki, Python C …
2835 recenzji
42,95 £
Kup na Amazon

Aby to było jeszcze niższe, natknąłem się na rozkładanie ITEAD Studio i inteligentne przełączniki S20. Wynoszą one około 12 USD za moduły S20 i 8,50 USD dla kontrolerów światła tak znaczące mniej niż jakikolwiek z modułów Z-Wave na rynku. Dostarczają własne oprogramowanie ITEAD, które jest kontrolowane z aplikacji na iOS lub Androida, ale chciałem móc użyć kodu Petera. Peter przeprowadził badania w tej sprawie i stwierdził, że przy drobnych zmianach w swoim kodzie zaprogramuje to jednostki ITEAD. Aby to zrobić, potrzebujesz USB z wyjściem 3,3 V, ale jest to wystarczająco proste, jeśli możesz posługiwać się lutownicą. Jedynym minusem jest to, że moduły ITEAD są wyposażone w lampę błyskową 512kb i aby umożliwić kod Petera na aktualizacje OTA, musimy to zmienić na 8 MB. IC pamięci wynoszą około 3 USD za 5 w serwisie eBay. Uzbrojony w stację przeróbki na gorące powietrze (pożycz znajomych, jeśli go nie masz), praca jest szybka i nie ryzykuje uszkodzenia płyt. Poniższy obraz pokazuje SoIC IC Top po usunięciu starego i nowego zamontowanego.

Musisz także lutować na nagłówku do pojedynczego rzędu 4 otworów na PCB. Dotyczy to zasilania na płycie i umożliwia zaprogramowanie go za pomocą niestandardowego oprogramowania układowego MQTT. Mam szczegółowy blog o tym, jak to zrobić.

Moduły S20 wyglądają bardzo inteligentnie i nowoczesne. Przełącznik zasilania umożliwia włączenie i wyłączenie lokalnie. Te pokazane tutaj to gniazda euro, ale ITEAD otrzymają opcje USA, jak i Wielkiej Brytanii wkrótce.

Moduły rozkładane to kontrolery lamp oparte na ES27, więc obecnie nie są idealne dla Wielkiej Brytanii, ale działają bardzo dobrze.

Biorąc pod uwagę, że oferują moduły przełącznika jako Wielka Brytania, spodziewałbym się, że wkrótce pojawi się wersja Bayonet. Właściwie wolę teraz typ śruby, aby uzyskać łatwiejszą instalację.

Są one łatwe do otwarcia i zmodyfikowania, jak poprzednio z jednym dodatkowym krokiem innego niż wymiana flash IC, a mianowicie przesuwanie jednego zero Ohm Link FR

Leave a Reply

Your email address will not be published. Required fields are marked *