Spisu treści:
- Krok 1: Przegląd obwodu
- Krok 2: Sonoff RetroMods
- Krok 3: Szczegóły budowy i montażu
- Krok 4: Adapter do programowania Sonoff
- Krok 5: Przegląd systemu oprogramowania
- Krok 6: Przegląd oprogramowania
- Krok 7: Konfiguracja OpenHAB
- Krok 8: Testowanie urządzenia IoT
- Krok 9: Wniosek
- Krok 10: Użyte referencje
Wideo: Kontroler sieci IoT. Część 9: IoT, automatyka domowa: 10 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Zastrzeżenie
PRZECZYTAJ NAJPIERW
Ta instrukcja opisuje projekt, który wykorzystuje zasilanie sieciowe (w tym przypadku UK 240VAC RMS), podczas gdy dołożono wszelkich starań, aby stosować bezpieczne praktyki i dobre zasady projektowania, zawsze istnieje ryzyko potencjalnie śmiertelnego porażenia prądem podczas pracy z tymi napięciami zasilania i dla których autor nie może ponosić żadnej odpowiedzialności, jeśli podczas śledzenia jego treści nastąpi uszkodzenie ciała lub mienia. W związku z tym robisz ten projekt na własne ryzyko.
Preambuła
Ten artykuł, dziewiąty z serii o automatyce domowej, dokumentuje, jak stworzyć i zintegrować sterownik sieciowy Sonoff 10A IoT z istniejącym systemem automatyki domowej, w tym wszystkie niezbędne funkcje oprogramowania, aby umożliwić pomyślne wdrożenie w środowisku domowym.
Wstęp
Jak wspomniano powyżej, to instruktażowe szczegóły, jak wykonać i zintegrować kontroler sieci IoT za pomocą Sonoff 10A firmy iTead. Samo urządzenie jest oceniane jako oceniane na 10 amperów przy 90 ~ 250 VAC, jednak ta implementacja obniża je do 5 amperów za pośrednictwem wtyczki z bezpiecznikiem, zapewniającej krajowe zasilanie główne w Wielkiej Brytanii o wartości 240 VAC RMS.
Metodologia projektowania bezproblemowo integruje się z siecią IoT opartą na MQTT/OpenHAB, szczegółowo opisaną w tej serii na temat budowania automatyki domowej na podstawie ponownie wykorzystanego kodu zaczerpniętego stąd. Może również poradzić sobie z utratą dowolnego elementu sieci IoT i jest w pełni zdolny do samodzielnego działania. W trybie autonomicznym sterowanie urządzeniem odbywa się po prostu przez naciśnięcie przycisku sterującego na górze obudowy, który przełącza dalsze wyjście zasilania.
Aby umożliwić to lokalne sterowanie urządzeniem Sonoff, GPIO14 jest wyjmowany z obudowy i używany jako wejście wyzwalające. Aby zapewnić bezpieczeństwo, wejście to jest zasilane przez obwód transoptora i umieszczone w plastikowej obudowie, dzięki czemu operator w żadnym momencie nie jest narażony na działanie napięcia sieciowego.
Wreszcie, proza opisuje również, jak przeprogramować urządzenie ESP8266 w Sonoff 10A za pomocą Arduino IDE i podaje pełne szczegóły obwodu urządzenia, które można wykorzystać do niezawodnego programowania kodu docelowego.
Jakich części potrzebuję?
Kontroler sieciowy Sonoff
- 1 z Sonoff 10A tutaj
- 1 wyłączony regulator napięcia 7805L 5 v tutaj!
- 1 off 240/6VAC 1,5VA Transformator tutaj
- 2 kondensatory ceramiczne o pojemności 0,1 tutaj
- 1 off 1000uF @ 25v kondensator elektrolityczny tutaj
- 1 szt. Prostownik mostkowy 2W01 tutaj
- 2 wyłączone rezystory 4K7 tutaj
- 1 szt. Rezystor 330R tutaj
- 1 przycisk SPST tutaj
- 1 szt. Obudowa ABS Mulitcomp BM12W tutaj
- 1 szt. Łącznik optyczny TIL111 tutaj
- 1 szt. 3-drożna listwa zaciskowa tutaj
- 1 szt. 2-drożne kodowane złącze molex tutaj/tutaj
- 1 szt. Złącze molex z kodowaniem trójdrożnym tutaj/tutaj
- 1 szt. 5-drożne kodowane złącze molex tutaj/tutaj
- 1 szt. 5-drożnych szpilek molex tutaj
- 1 off Winbond SPI Flash (W25Q32FVSIG) tutaj
- 1 szt. Uchwyt bezpiecznika 20mm + nasadka tutaj
- 1 szt. 20mm szybki bezpiecznik 500mA tutaj
- 2 szt. dławików kablowych z poliamidu tutaj
- 1 szt. Wtyczka sieciowa w Wielkiej Brytanii (BS1363/A) tutaj
- 1 szt. Gniazdo główne w Wielkiej Brytanii (BS1363/A) tutaj
- 7 szt. nylonowych śrub M3 16mm CS (w tym 10 szt. nakrętek) tutaj/tutaj
- 2 zniżki na suwaki tutaj
- 1 szt. veroboard (skok 0,1") tutaj
- 1 szt. Różne długości 22swg ocynowanego drutu miedzianego tutaj
- 1 szt. Biały kabel sieciowy 3M UK tutaj
- 10 szt. zacisków gniazd Molex tutaj
Programista Sonoff
- 1 szt. Regulator napięcia LD33CV 3v3 tutaj
- 1 szt. radiatora TO-220 tutaj
- 1 pasta do radiatora tutaj
- 1 off 10uF @ 16v kondensator elektrolityczny tutaj
- 1 z 0,1 kondensatora ceramicznego tutaj
- 1 off przycisk SPDT tutaj
- 1 wyłączony rezystor 4K7 tutaj
- 1 szt. 2-drożne kodowane złącze molex tutaj/tutaj
- 1 szt. Złącze molex z kodowaniem trójdrożnym tutaj/tutaj
- 5 zacisków gniazd Molex tutaj
- 1 szt. 6-drożne gniazdo molex tutaj
- 1 przycisk SPST tutaj
- 1 gniazdo zasilacza 2,1 mm tutaj
- 1 szt. veroboard (skok 0,1") tutaj
- 1 szt. adaptera USB na port szeregowy (FTDI) tutaj
Jakiego oprogramowania potrzebuję?
- Arduino IDE 1.6.9 tutaj
- Arduino IDE skonfigurowane do programowania ESP8266. Spójrz tutaj; Konfigurowanie Arduino IDE do programowania ESP8266-01
Jakich narzędzi potrzebuję?
- lutownica,
- Wiertarka i różne wiertła (w tym stopniowany wycinak otworów do przepustów kablowych i przycisk sterujący),
- Wkrętaki (różne),
- Klucze nastawne (dwuczęściowe, szerokość szczęk >25mm, do dławnic kablowych),
- Pliki (różne),
- Solidne imadło,
- Opalarka,
- DMM (najlepiej CAT IV).
Jakich umiejętności potrzebuję?
- Dobra znajomość elektroniki i bezpieczeństwa elektrycznego / projektowania / okablowania domowego itp.,
- Znajomość Arduino i jego IDE,
- Dobre umiejętności produkcyjne (lutowanie, piłowanie, wiercenie itp.),
- Trochę Cierpliwości,
- Trochę zrozumienia sieci domowej.
Omówione tematy
- Wstęp
- Przegląd obwodu
- Sonoff RetroMods
- Szczegóły budowy i montażu
- Adapter do programowania Sonoff
- Przegląd systemu oprogramowania
- Przegląd oprogramowania
- Konfiguracja OpenHAB
- Testowanie urządzenia IoT
- Wniosek
- Użyte referencje
Linki do serii
Do części 8: Czujnik temperatury i wilgotności WiFi IoT. Część: 8 IoT, automatyka domowa
Do części 10: Zdalne sterowanie na podczerwień przez IoT. Część 10 IoT, automatyka domowa
Krok 1: Przegląd obwodu
Przegląd
Jak wspomniano we wstępie powyżej, aby móc lokalnie włączać i wyłączać sterownik sieciowy, wymagane było wejście do wbudowanego ESP8266 Sonoffa. Wprowadzenie takiego zewnętrznego wejścia wymaga naruszenia obudowy Sonoff ABS, a zatem stwarza potencjalne ryzyko porażenia prądem. Aby to przezwyciężyć, zastosowałem izolację optyczną tak, aby nie było możliwości wystawienia na działanie sieci elektrycznej poza obudową systemu sterownika sieciowego.
Poniżej znajduje się opis obwodów optoizolacyjnych (na rys. 1 powyżej).
Szczegóły obwodu
Układ optoizolacyjny jest zasilany bezpośrednio z sieci zasilającej urządzenie. 240VAC RMS jest stosowany do transformatora obniżającego / izolującego TR1 przez J1 kontakt pheonix MKDSN2, 5/3-5.08 3-drożny zacisk z poliamidu o obciążalności 16A przy 400V zdolny do przenoszenia kabla 2.5mm (sq) CSA i F1 a 500mA 20mm szybki bezpiecznik. Napięcie 6VAC dostępne na uzwojeniach wtórnych TR1 jest prostowane przez mostek diodowy B1.
To wyprostowane wyjście pełnookresowe jest następnie stabilizowane i regulowane przez regulator bocznikowy serii C1, C2 C3, R3 i IC1 z serii 7805L, co daje dobrą, czystą szynę zasilającą 5 V.
Szyna 5V jest następnie używana do sterowania wejściem do OK1 i optoizolatora TIL111 za pomocą zewnętrznie zamontowanego białego przycisku SPST połączonego przez J3. Wyjście TIL111 jest połączone z wejściem Sonoff GPIO14 przez rezystor podciągający R2 i 4K7. W ten sposób osiągana jest izolacja lepsza niż 340V (tj. napięcie szczytowe = (240VAC*sqroot(2))).
Krok 2: Sonoff RetroMods
W celu zintegrowania urządzenia Sonoff 10A konieczne jest dokonanie pewnych retrospektywnych modyfikacji.
Pierwszym z nich jest dodanie 5-drożnego złącza Molex o rozstawie 0,1 , jak pokazano na zdjęciu 1 powyżej. Umożliwia to dostęp do GPIO14 na Sonoff po wymianie osłony ochronnej, jak na zdjęciach 2 i 3 powyżej.
Chociaż nie pokazano powyżej, wyciągnąłem również linie szeregowe TX/RX, aby umożliwić programowanie na miejscu (patrz wiązka kablowa SK1..3 w kroku 1 powyżej).
Druga modyfikacja polega na zwiększeniu rozmiaru urządzenia Flash SPI z domyślnego 1 MB do 4 MB, aby zapewnić wystarczającą ilość miejsca na przechowywanie plików serwera internetowego IoT w SPIFFS.
Kupiłem urządzenie flash SMD SPI (W25Q32FVSIG) w serwisie eBay tutaj
Aby wymienić lampę błyskową, tymczasowo usunąłem diodę Sonoff jak na zdjęciu 4, aby zapewnić lepszy dostęp do urządzenia SMD. Do odlutowania lampy użyłem opalarki jak na zdjęciu 5 powyżej. Następnie ponownie przylutowałem odpowiednio 4MByte Flash i LED (rys. 6).
Krok 3: Szczegóły budowy i montażu
Załączyłem sterownik sieciowy w Mulitcomp BM12W ABS Box (zdjęcie 1 powyżej). Ta obudowa ma izolowane mosiężne wkładki M3, które umożliwiają wielokrotny dostęp do urządzenia bez naruszania gwintów mocujących, dzięki czemu wewnętrzny bezpiecznik można wymienić w razie potrzeby lub można z czasem przeprowadzić wewnętrzną inspekcję (tego samego nie można powiedzieć o urządzeniu Sonoff, które skutecznie zamyka się tylko raz przy użyciu samogwintujących).
Pierwotne odciążenie kabla zasilającego sieci zostało osiągnięte poprzez biały dławik kablowy M16 z nylonu/poliamidu 6/6, wspierający kabel o średnicy zewnętrznej min./maks. 5mm/10mm.
W przypadku nadmiernego naprężenia i uszkodzenia dławika kablowego, opaska zaciskowa utrzyma kabel na miejscu.
Aby dopasować dławiki kablowe i zapewnić wystarczającą ilość miejsca do zamontowania elektroniki Sonoff i optoizolacji, zdjąłem wewnętrzne żebra montażowe PCB, jak pokazano powyżej (Rys. 2).
Cała elektronika została bezpiecznie zamontowana za pomocą nylonowych śrub M3 CS, aby zapewnić izolację od zewnętrznej strony obudowy. Elektronika optoizolacyjna jest zamontowana w 5 punktach mocowania, aby zapewnić akustyczną wytrzymałość mechaniczną w przypadku upuszczenia urządzenia, zapobiegając w ten sposób przerwaniu obwodu Veroboard przez masę transformatora izolującego.
Zasilanie urządzenia odbywało się za pomocą wielożyłowego kabla sieciowego (32/0,2 mm²) 1 mm (²) CSA, oznaczonego kolorem białym, 3-żyłowego, izolowanego PVC. o średnicy zewnętrznej 7,2 mm zdolnym do przenoszenia 10 A.
Urządzenie zostało podłączone do brytyjskiego źródła zasilania (240VAC RMS) za pomocą standardowej 3-pinowej wtyczki bezpieczeństwa (BS 1363/A). Wtyczka była zabezpieczona na 5A.
Wszystkie kable zasilające do obwodu optoizolacyjnego zostały połączone za pomocą styków pheonix MKDSN2, 5/3-5,08 zaciski poliamidowe o obciążalności 16 A przy 400 V, zdolne do przenoszenia kabla 2,5 mm (sq) CSA, zapewniając w ten sposób wystarczającą pojemność dla dwóch kabli w każdej pozycji.
Żadne kable sieciowe nie były cynowane, tylko skręcone, aby zapobiec rozsypywaniu się żył przed włożeniem do bloku złączy. Cynowanie kabli zasilających jest niebezpieczną praktyką, ponieważ lut „rozluźnia się” z czasem, powodując w końcu gubienie kabla w bloku złączy.
Notatka:
- OD = Średnica zewnętrzna.
- VAC = wolty prąd przemienny
- RMS = średnia kwadratowa
- CSA = powierzchnia przekroju poprzecznego
- CS = licznik zatopiony
Krok 4: Adapter do programowania Sonoff
Podczas ponownego programowania Sonoff 10A za pośrednictwem Arduino IDE należy wziąć pod uwagę dwa aspekty;
- Konfigurowanie Arduino IDE do programowania ESP8266,
- Sama czynność programowania sprzętu.
Konfigurowanie Arduino IDE do programowania ESP8266
Aby skonfigurować Ardino IDE, postępuj zgodnie z instrukcjami tutaj Konfigurowanie Arduino IDE do programowania ESP8266-01
Programowanie sprzętu
Jest to proces wieloetapowy, jak we wszystkich przypadkach z ESP8266. Tutaj moc Sonoffa jest doprowadzana do płyty za pośrednictwem zewnętrznego stabilizowanego źródła prądu stałego 3v3, a NIE z zasilania sieciowego. Do wysyłania i odbierania danych z i do Sonoffa wymagane będzie połączenie USB z urządzeniem szeregowym. Połącz TX i RX, jak pokazano na rys. 2 i 4.
Kroki programowania (ogólne)
- Najpierw upewnij się, że Sonoff nie jest zasilany z zewnętrznego źródła zasilania,
- Naciśnij i przytrzymaj przycisk na urządzeniu Sonoff. (rys. 1 powyżej, zaznaczony przycisk ponownego flashowania),
- Podłącz zewnętrzne zasilanie DC 3v3 do pinu 1. (rys. 2 powyżej),
- Zwolnij przycisk Sonoff,
- Urządzenie można teraz przeprogramować w zwykły sposób poprzez Arduino IDE.
Aby trochę ułatwić, stworzyłem powyższe urządzenie programujące (rysunki 3 i 4), które łączyło się z Sonoff za pomocą wiązki kablowej SK1…3 (jak opisano w tym instruktażowym kroku 1). Pozwoliło to na łatwiejsze programowanie ESP8266. Zapewnił również możliwość testowania GPIO14 jako wejścia poprzez użycie rezystora podciągającego R1 i 4K7 oraz przycisku S1.
Korzystanie z urządzenia programującego powyżej (Rysunki 3 i 4) Kroki programowania to:
- Naciśnij i przytrzymaj przycisk ponownego flashowania na Sonoff,
- Impulsuj zasilanie 3v3, naciskając na chwilę S2,
- Zwolnij przycisk ponownego błysku,
- Urządzenie można teraz zaprogramować.
UWAGA-OSTRZEŻENIE
W ŻADNYCH okolicznościach zasilanie nie powinno być zasilane przez sieć podczas ponownego programowania Sonoff
Krok 5: Przegląd systemu oprogramowania
Ten sterownik sieciowy IoT w większości zawiera te same sześć kluczowych komponentów oprogramowania, co w instruktażowym czujniku temperatury i wilgotności IoT. Część: 8 IoT, automatyka domowa i pokazane na zdjęciu 1 powyżej, z pewnym dostosowaniem.
SPIFF
Jest to (zaktualizowany do 4 MB) wbudowany SPI Flash Filing System i służy do przechowywania następujących informacji (patrz rysunek 2 powyżej);
- Ikony i „Strona główna konfiguracji kontrolera sieci” html: Obsługiwane przez urządzenie IoT, gdy nie jest w stanie połączyć się z siecią IoT WiFi (zwykle z powodu nieprawidłowych informacji o zabezpieczeniach) i zapewnia użytkownikowi możliwość zdalnej konfiguracji kontrolera sieci bez konieczność przeprogramowania lub wgrania nowej zawartości SPIFFS.
- Informacje o zabezpieczeniach: Zawiera informacje używane podczas uruchamiania przez urządzenie IoT do łączenia się z siecią IoT Wi-Fi i brokerem MQTT. Informacje przesłane za pośrednictwem „Strony głównej konfiguracji kontrolera sieci” są zapisywane w tym pliku („secvals.txt”).
Uwaga: Aby wstępnie skonfigurować urządzenie, zobacz tutaj pełne informacje na temat korzystania z SPIFFS z Arduino IDE.
Serwer mDNS
Ta funkcja jest wywoływana, gdy urządzenie IoT nie może połączyć się z siecią Wi-Fi jako stacją Wi-Fi i zamiast tego stało się punktem dostępu Wi-Fi, podobnym do domowego routera Wi-Fi. W przypadku takiego routera zazwyczaj łączysz się z nim, wpisując adres IP podobny do 192.168.1.1 (zwykle wydrukowany na etykiecie umieszczonej na pudełku) bezpośrednio w pasku adresu przeglądarki, po czym otrzymujesz stronę logowania do wprowadzenia nazwę użytkownika i hasło umożliwiające konfigurację urządzenia. W przypadku ESP8266 w trybie AP (tryb punktu dostępowego) urządzenie domyślnie korzysta z adresu IP 192.168.4.1, jednak przy uruchomionym serwerze mDNS wystarczy wpisać przyjazną dla człowieka nazwę „MAINSCON.local” w pasku adresu przeglądarki, aby wyświetlić 'Strona główna konfiguracji sterownika sieciowego'.
Klient MQTT
Klient MQTT zapewnia wszystkie niezbędne funkcje; połącz się ze swoją siecią IoT brokerem MQTT, zasubskrybuj wybrane tematy i opublikuj ładunki dla danego tematu. Krótko mówiąc, zapewnia podstawową funkcjonalność IoT.
Serwer WWW
Jak wspomniano powyżej, jeśli urządzenie IoT nie może połączyć się z siecią Wi-Fi, której identyfikator SSID, P/W itp. jest zdefiniowany w pliku informacji o zabezpieczeniach przechowywanym w SPIFFS, urządzenie stanie się punktem dostępowym. Po podłączeniu do sieci Wi-Fi dostarczanej przez punkt dostępowy, obecność serwera WWW HTTP pozwala na bezpośrednie połączenie z urządzeniem i zmianę jego konfiguracji za pomocą przeglądarki internetowej HTTP, której celem jest obsługa „Konfiguracji kontrolera głównego Strona internetowa „Home Page”, która również znajduje się w SPIFFS.
Stacja Wi-Fi
Ta funkcja daje urządzeniu IoT możliwość łączenia się z domową siecią Wi-Fi przy użyciu parametrów w pliku informacji bezpieczeństwa, bez tego Twoje urządzenie IoT nie będzie mogło subskrybować/publikować u Brokera MQTT
Punkt dostępu Wi-Fi
Możliwość zostania WiFi Access Point to sposób, w jaki urządzenie IoT pozwala na łączenie się z nim i dokonywanie zmian konfiguracyjnych za pośrednictwem stacji WiFi i przeglądarki (np. Safari na Apple iPad). Ten punkt dostępu rozgłasza identyfikator SSID = „MAINSCON” + ostatnie 6 cyfr adresu MAC urządzenia IoT. Hasło do tej zamkniętej sieci nosi urojoną nazwę „PASSWORD”.
Krok 6: Przegląd oprogramowania
Wstęp Aby pomyślnie skompilować ten kod źródłowy, będziesz potrzebować następujących dodatkowych bibliotek;
PubSubClient.h
- Autor: Nick O'Leary
- Cel: Umożliwia urządzeniu publikowanie lub subskrybowanie tematów MQTT u danego brokera
- Od:
Odbicie2.h
- Autor: Thomas O Fredericks
- Cel: odskok przełącznika wejściowego w oprogramowaniu;
- Od:
Przegląd kodu
Oprogramowanie korzysta z maszyny stanowej, jak pokazano na rys. 1 powyżej (pełna kopia źródła podanego poniżej). Istnieje 5 głównych stanów w następujący sposób;
-
W TYM
Ten stan inicjalizacji jest pierwszym stanem wprowadzonym po włączeniu zasilania
-
NOCONFIG
Ten stan jest wprowadzany, jeśli po włączeniu zostanie wykryty nieprawidłowy lub brakujący plik secvals.txt
-
OCZEKUJĄCY NW
Ten stan jest przejściowy, wprowadzony, gdy nie ma połączenia z siecią Wi-Fi
-
OCZEKUJĄCE MQTT
Ten stan jest przejściowy, wprowadzony po nawiązaniu połączenia z siecią Wi-Fi i gdy w tej sieci nie ma połączenia z brokerem MQTT
-
AKTYWNY
Jest to normalny stan operacyjny wprowadzony po ustanowieniu połączenia sieci WiFi i połączenia z brokerem MQTT. W tym stanie kontroler sieciowy będzie publikował informacje u brokera MQTT i odbierał polecenia za pośrednictwem subskrybowanych tematów
Zdarzenia sterujące przejściami między stanami są opisane na rys. 1 powyżej. Przejścia między stanami są również regulowane przez następujące parametry SecVals;
- Adres IP pierwszego brokera MQTT. W postaci dziesiętnej z kropkami AAA. BBB. CCC. DDD
- Drugi port brokerski MQTT. W postaci liczb całkowitych.
- Trzecie połączenie MQTT Broker próbuje nawiązać przed przełączeniem z trybu STA do trybu AP. W postaci liczb całkowitych.
- SSID czwartej sieci WiFi. W dowolnym tekście.
- 5. Hasło do sieci WiFi. W dowolnym tekście.
Jak wspomniano powyżej, jeśli urządzenie IoT nie może połączyć się jako stacja WiFi z siecią WiFi, której SSID i P/W są zdefiniowane w secvals.txt przechowywanym w SPIFFS, urządzenie stanie się punktem dostępowym. Po podłączeniu do tego punktu dostępowego, wyświetli "Strona główna konfiguracji kontrolera sieci", jak pokazano powyżej na Rys. 2 (poprzez wpisanie "MAINSCON.local" lub 192.168.4.1 w pasku adresu przeglądarki). Ta strona główna umożliwia rekonfigurację sterownika sieciowego za pomocą przeglądarki
Konwencja nazewnictwa tematów MQTT
Na rysunku 3 powyżej przedstawiono konwencję nazewnictwa używaną dla tematów MQTT i jest ona zgodna z wzorcem użytym w moim wcześniejszym Instructable (tutaj Krok 5).
Tematy MQTT używane przez to urządzenie IoT
Dla jasności udokumentowałem (rys. 4) tematy i powiązane sekwencje komunikatów, które to urządzenie publikuje/subskrybuje. Zdjęcie przedstawia również interakcję z białym przyciskiem sterującym na zewnątrz obudowy (choć jak na ironię przycisk jest pokazany na czerwono).
Dostęp do zdalnej konfiguracji w stanie AKTYWNY
Po połączeniu z Brokerem MQTT możliwe jest zdalną rekonfigurację parametrów bezpieczeństwa dla urządzenia za pośrednictwem publikacji tematycznych MQTT. Powiązany plik secvals.txt ma ujawniony dostęp tylko do zapisu.
Debugowanie użytkownika
Podczas sekwencji rozruchowej dioda urządzenia Sonoff daje następujące informacje zwrotne dotyczące debugowania, chociaż należy zauważyć, że aby to zobaczyć, musisz zdjąć pokrywę i odsłonić obwody, więc jest to zalecane tylko podczas opracowywania kodu i zasilania urządzenia z dostawą 3v3;
- 1 krótki błysk: brak pliku konfiguracyjnego znajdującego się w SPIFFS (secvals.txt),
- 2 krótkie mignięcia: urządzenie IoT próbuje połączyć się z siecią Wi-Fi,
- Ciągłe podświetlenie: urządzenie Sonoff IoT próbuje połączyć się z brokerem MQTT,
- Off: Urządzenie jest aktywne i połączone z brokerem MQTT.
Uwaga 1: „Strona główna konfiguracji kontrolera głównego” nie korzysta z bezpiecznych gniazd i dlatego polega na tym, że sieć jest bezpieczna.
Uwaga 2: Aby zaprogramować wiele urządzeń IoT, ciąg MQTT będzie wymagał edycji przed pobraniem do każdego urządzenia. Dzieje się tak, ponieważ numer identyfikacyjny kontrolera sieciowego został osadzony w ciągu tematu MQTT. tj. w opublikowanym oprogramowaniu wybrałem wartość 100: 'WFD/MainsCont/100/Relay/Command/1' i dla moich 2 urządzeń są one ponumerowane odpowiednio 1 i 2.
- „RDW/Ster. Zasil./1/Przekaźnik/Polecenie/1”
- „WFD/Sieć Ciągła/2/Przekaźnik/Polecenie/1”
Uwaga 3: Dla kompletności w stanie AKTYWNYM oprogramowanie IoT umożliwia sterowanie diodą LED Sonoff i publikowanie stanu przycisku ponownego flashowania. Chociaż mają one wartość tylko podczas procesu debugowania, ponieważ żadne z nich nie są widoczne dla użytkownika podczas normalnej pracy.
Krok 7: Konfiguracja OpenHAB
Do celów testowych postanowiłem teoretycznie rozmieścić dwa kontrolery sieciowe w „salonie” mojego domu. Ta strona OpenHAB jest dostępna za pośrednictwem strony głównej witryny, jak na rys. 1.
Zmodyfikowałem konfigurację OpenHAB.sitemap podaną w moim wcześniejszym Instructable (tutaj) i dodałem indywidualne wpisy dla „Kontrolera głównego 1” i „Kontrolera głównego 2” (rysunek 2 powyżej). Dodałem również wpisy (Living Room Mains Cont. 1 & 2), aby wyświetlić trendy RSSI mierzone w odbiorniku dwóch nowych urządzeń IoT (rys. 3).
Na koniec dodałem wpisy do plików.rules i.items, aby umożliwić dynamiczną synchronizację stanu Sonoff i aktualizację/animację mojej słabej próby grafiki przełącznika (przełącznik zamyka się, gdy jest aktywny i otwiera się, gdy jest nieaktywny). Rysunek 2 pokazuje przykład MC1 aktywny i MC2 nieaktywny.
Uwaga 1: Jeśli nie jesteś pewien, jak korzystać z OpenHAB, zobacz tutaj „Ustawianie i konfigurowanie OpenHAB”. Część 6: IoT, automatyka domowa”
Uwaga 2: Kopia zmodyfikowanej mapy witryny, plików reguł i elementów, ikon itp. znajduje się w pliku zip poniżej.
Uwaga 3: RSSI = Wskazanie siły odbieranego sygnału. Jest to miara tego, jak dobrze urządzenie IoT może widzieć Twoją sieć Wi-Fi.
Krok 8: Testowanie urządzenia IoT
Zgodnie z opisem w Instruktażowym czujniku temperatury i wilgotności IoT WiFi. Część: 8 IoT, Automatyka domowa Krok 7, wstępne testowanie urządzenia IoT zostało przeprowadzone przez połączenie MQTT za pośrednictwem MQTT Spy (jak na schemacie blokowym systemu, ilustr. 1 powyżej), monitorowanie wyjścia led, wejścia przycisków (zarówno przycisk ponownego flashowania Sonoff, jak i biały przycisk zewnętrzny) i debuguj ruch na interfejsie szeregowym. Pozwoliło mi to na przećwiczenie wszystkich dostępnych subskrybowanych tematów i sprawdzenie opublikowanych odpowiedzi. Chociaż ponownie, odbywało się to ręcznie i było czasochłonne, chociaż umożliwiło 100% pokrycie wiadomości/publikacji tematycznych.
Ponieważ główna maszyna stanu oprogramowania (krok 6 powyżej) została odziedziczona z wcześniejszej instrukcji (część: 8) poza sprawdzaniem poprawności, oprogramowanie mogło połączyć się z WiFi N/W i MQTT Broker, założono, że działa to poprawnie.
Pełne testy na poziomie systemu zostały następnie zakończone przy użyciu kontrolera sieci i infrastruktury IoT (ponownie rys 1), tym razem przy użyciu OpenHAB do sterowania interakcją z urządzeniem IoT. Sprzęt IoT i konfigurację fikcyjnego obciążenia można zobaczyć na zdjęciu 2 powyżej.
Film przedstawia pełne szczegóły testów systemu i wyraźnie pokazuje synchronizację utrzymywaną między urządzeniami OpenHAB (PC/Chrome i iPad/OpenHAB APP) w czasie rzeczywistym. Pokazuje również komunikaty na żywo do sterowników głównych za pośrednictwem MQTTSpy (patrz tutaj, aby uzyskać więcej informacji na temat konfigurowania brokera MQTT. Część 2: IoT, automatyka domowa) oraz dziennik systemowy OpenHAB z ogonem z serwera raspberry pi przez połączenie PuTTY SSH (patrz tutaj, aby uzyskać więcej informacji szczegóły Konfiguracja i konfiguracja OpenHAB Część 6: IoT, automatyka domowa).
Uwaga: Ruch debugowania został skompilowany do ostatecznej wersji oprogramowania.
Krok 9: Wniosek
Ogólny
Projekt był stosunkowo łatwy do ukończenia i działał dobrze. Wbudowane oprogramowanie było proste w produkcji, ponieważ stanowiło okrojoną wersję kodu używanego w czujnikach temperatury i wilgotności z części 8 tej serii.
Początkowo zamierzałem nabyć tylko białe części składowe wyłącznie ze względu na ich walory estetyczne. Osiągnąłem to we wszystkich, ale przycisk sterowania, spróbuj, jak mogłem, nie byłem w stanie uzyskać dobrego / taniego całkowicie białego przycisku.
Urządzenie Sonoff 10A
Poniżej wymieniłem, co według mnie było rozsądnymi zaletami i wadami urządzenia Sonoff
Plusy
- Tani.
- Dobre wsparcie społeczności.
- Można przeprogramować za pomocą Arduino IDE.
Cons
- Cienka obudowa.
- Minimalne I/O (wyprowadzone do użytecznych złączy).
- Nagrzewa się w stanie spoczynku.
- Ma tylko 1 MB wbudowanej pamięci flash SPI.
- Czy PITA do przeprogramowania po podłączeniu na miejscu.
- Podczas integracji nowego kodu z testowaniem Sonoff zamknięcie przekaźnika było problematyczne, biorąc pod uwagę, że przekaźnik ma napięcie 5V, a zasilanie zastosowane do programowania Sonoffa to 3v3. Aktywacja przekaźnika jest tylko wyczuwalna dla ucha.
Obawy
- Nie przełącza linii neutralnej. Wykorzystuje przekaźnik SPST.
- Nie jest połączony.
- Słabe odciążenie kabla.
- Płytka nie jest zabezpieczona w obudowie Sonoff.
Komentarz do projektu inżynierskiego
Biorąc pod uwagę, że to urządzenie IoT miało być używane do przełączania pod napięciem brytyjskiej sieci zasilającej (240VAC RMS), postępowałem zgodnie z dobrymi praktykami projektowania mechanicznego i elektrycznego i upewniłem się, że ryzyko porażenia zostało zminimalizowane przez nie wystawianie żadnych materiałów przewodzących prąd elektryczny, nad specyfikacją wszystkich komponentów, obniżeniem wartości znamionowych obciążenie wyjścia, zastosowanie zabezpieczenia bezpiecznikowego zarówno do sterownika sieci, jak i podsystemu sprzężonego optycznie, włączenie dobrego nieprzerwanego uziemienia i zastosowanie izolacji optycznej/galwanicznej.
Możliwa poprawa
Z perspektywy czasu przydatne byłoby włączenie wizualnej sygnalizacji, że wyjście sterownika sieciowego jest aktywne (LED lub Neon). Chociaż nie jest to problem w codziennym użytkowaniu, biorąc pod uwagę, że standardową praktyką jest izolowanie obciążenia od zasilania przed przeprowadzeniem jakiejkolwiek konserwacji, lub proste naciśnięcie przycisku sterowania lokalnego spowoduje przełączenie wyjścia w przypadku, gdy lampa może się zaświecić po podłączeniu.
Ostatnia uwaga
Jeśli chcesz zobaczyć dwa bardzo słabe przykłady radzenia sobie z energią elektryczną, sprawdź poniższe linki. Ich nagrody Darwina pojawią się wkrótce, jestem tego całkiem pewien;
- Przedłużacz Mad Scientist
- Opinia społeczności 03 - Obawy dotyczące bezpieczeństwa zasilania!
Krok 10: Użyte referencje
Użyłem następujących źródeł, aby połączyć ten Instruktaż;
PubSubClient.h
- Autor: Nick O'Leary
- Cel: Umożliwia urządzeniu publikowanie lub subskrybowanie tematów MQTT u danego brokera
- Od:
Odbicie2.h
- Autor: Thomas O Fredericks
- Cel: odskok przełącznika wejściowego w oprogramowaniu;
- Od:
SPIFF
https://esp8266.github.io/Arduino/versions/2.0.0/do…
Aktualizacja lampy błyskowej Sonoff
- https://www.andremiller.net/content/upgrading-sonof…
- https://tech.scargill.net/32mb-esp01/
- https://www.andremiller.net/content/upgrading-sonof…
Schemat obwodu Sonoff
https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf
Moduł USB UART (inaczej FTDI)
https://www.ebay.co.uk/itm/6Pin-USB-2-0-to-TTL-UART-Module-Converter-CP2102-STC-Replace-FT232-CF-/272249732398?epid=503069058&hash=item3f63593d2e:g:QVUAAOSw71BXP92B
Nagrody Darwina (lekka ulga)
https://www.darwinawards.com/
Arkusz danych izolatora optycznego TIL111
Zalecana:
Automatyka domowa nowej generacji za pomocą Eagle Cad (część 1 - PCB): 14 kroków
Automatyka domowa nowej generacji przy użyciu Eagle Cad (część 1 - PCB): Wprowadzenie: Dlaczego mówię o jej następnej generacji: ponieważ używa niektórych komponentów, które są znacznie lepsze niż tradycyjne urządzenia automatyki domowej. Może sterować urządzeniami za pomocą: Panelu dotykowego poleceń głosowych Google na urządzeniu Sterowanie z aplikacji
Automatyka domowa sterowana przez Internet/chmurę za pomocą Esp8266 (aREST, MQTT, IoT): 7 kroków (ze zdjęciami)
Automatyka domowa sterowana przez Internet/chmurę za pomocą Esp8266 (aREST, MQTT, IoT): WSZYSTKIE zasługi dla http://arest.io/ za usługę w chmurze!!IoT jest obecnie najbardziej dyskutowanym tematem na świecie! Serwery i usługi w chmurze, które to umożliwiają, są atrakcją dzisiejszego świata… WYKLUCZENIE BARIER ODLEGŁOŚCI było i jest
Automatyka domowa za pomocą głosu i wycinków Matrix Raspberry Pi (część 2): 8 kroków
Automatyka domowa przy użyciu głosu i wycinków Raspberry Pi Matrix (część 2): Aktualizacja automatyki domowej przy użyciu głosu i wycinków Raspberry Pi Matrix. W tym PWM służy do sterowania zewnętrznymi diodami LED i serwomotorem Wszystkie szczegóły podane w części 1 https://www.instructables.com/id/Controlling-Light
Retro synteza mowy. Część: 12 IoT, automatyka domowa: 12 kroków (ze zdjęciami)
Retro synteza mowy. Część: 12 IoT, automatyka domowa: Ten artykuł jest dwunastym z serii instrukcji dotyczących automatyki domowej, dokumentujących, jak stworzyć i zintegrować urządzenie do retrospekcji mowy IoT z istniejącym systemem automatyki domowej, w tym wszystkie niezbędne funkcje oprogramowania, aby umożliwić t
Czujnik temperatury i wilgotności WiFi IoT. Część: 8 IoT, automatyka domowa: 9 kroków
Czujnik temperatury i wilgotności WiFi IoT. Część: 8 IoT, Automatyka domowa: WstępTen artykuł dokumentuje praktyczne wzmocnienie i dalszy rozwój wcześniejszego Instructable: „Pimping” pierwszego urządzenia IoT WiFi. Część 4: IoT, automatyka domowa, w tym wszystkie niezbędne funkcje oprogramowania, aby umożliwić sukces