Spisu treści:

Kontroler sieci IoT. Część 9: IoT, automatyka domowa: 10 kroków (ze zdjęciami)
Kontroler sieci IoT. Część 9: IoT, automatyka domowa: 10 kroków (ze zdjęciami)

Wideo: Kontroler sieci IoT. Część 9: IoT, automatyka domowa: 10 kroków (ze zdjęciami)

Wideo: Kontroler sieci IoT. Część 9: IoT, automatyka domowa: 10 kroków (ze zdjęciami)
Wideo: Smart Home NIPPY i Home Assistant ⚡ Jak rozpocząć przygodę!? Pierwszy Tutorial 2024, Listopad
Anonim
Kontroler sieci IoT. Część 9: IoT, automatyka domowa
Kontroler sieci IoT. Część 9: IoT, automatyka domowa

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. 1 z Sonoff 10A tutaj
  2. 1 wyłączony regulator napięcia 7805L 5 v tutaj!
  3. 1 off 240/6VAC 1,5VA Transformator tutaj
  4. 2 kondensatory ceramiczne o pojemności 0,1 tutaj
  5. 1 off 1000uF @ 25v kondensator elektrolityczny tutaj
  6. 1 szt. Prostownik mostkowy 2W01 tutaj
  7. 2 wyłączone rezystory 4K7 tutaj
  8. 1 szt. Rezystor 330R tutaj
  9. 1 przycisk SPST tutaj
  10. 1 szt. Obudowa ABS Mulitcomp BM12W tutaj
  11. 1 szt. Łącznik optyczny TIL111 tutaj
  12. 1 szt. 3-drożna listwa zaciskowa tutaj
  13. 1 szt. 2-drożne kodowane złącze molex tutaj/tutaj
  14. 1 szt. Złącze molex z kodowaniem trójdrożnym tutaj/tutaj
  15. 1 szt. 5-drożne kodowane złącze molex tutaj/tutaj
  16. 1 szt. 5-drożnych szpilek molex tutaj
  17. 1 off Winbond SPI Flash (W25Q32FVSIG) tutaj
  18. 1 szt. Uchwyt bezpiecznika 20mm + nasadka tutaj
  19. 1 szt. 20mm szybki bezpiecznik 500mA tutaj
  20. 2 szt. dławików kablowych z poliamidu tutaj
  21. 1 szt. Wtyczka sieciowa w Wielkiej Brytanii (BS1363/A) tutaj
  22. 1 szt. Gniazdo główne w Wielkiej Brytanii (BS1363/A) tutaj
  23. 7 szt. nylonowych śrub M3 16mm CS (w tym 10 szt. nakrętek) tutaj/tutaj
  24. 2 zniżki na suwaki tutaj
  25. 1 szt. veroboard (skok 0,1") tutaj
  26. 1 szt. Różne długości 22swg ocynowanego drutu miedzianego tutaj
  27. 1 szt. Biały kabel sieciowy 3M UK tutaj
  28. 10 szt. zacisków gniazd Molex tutaj

Programista Sonoff

  1. 1 szt. Regulator napięcia LD33CV 3v3 tutaj
  2. 1 szt. radiatora TO-220 tutaj
  3. 1 pasta do radiatora tutaj
  4. 1 off 10uF @ 16v kondensator elektrolityczny tutaj
  5. 1 z 0,1 kondensatora ceramicznego tutaj
  6. 1 off przycisk SPDT tutaj
  7. 1 wyłączony rezystor 4K7 tutaj
  8. 1 szt. 2-drożne kodowane złącze molex tutaj/tutaj
  9. 1 szt. Złącze molex z kodowaniem trójdrożnym tutaj/tutaj
  10. 5 zacisków gniazd Molex tutaj
  11. 1 szt. 6-drożne gniazdo molex tutaj
  12. 1 przycisk SPST tutaj
  13. 1 gniazdo zasilacza 2,1 mm tutaj
  14. 1 szt. veroboard (skok 0,1") tutaj
  15. 1 szt. adaptera USB na port szeregowy (FTDI) tutaj

Jakiego oprogramowania potrzebuję?

  1. Arduino IDE 1.6.9 tutaj
  2. Arduino IDE skonfigurowane do programowania ESP8266. Spójrz tutaj; Konfigurowanie Arduino IDE do programowania ESP8266-01

Jakich narzędzi potrzebuję?

  1. lutownica,
  2. Wiertarka i różne wiertła (w tym stopniowany wycinak otworów do przepustów kablowych i przycisk sterujący),
  3. Wkrętaki (różne),
  4. Klucze nastawne (dwuczęściowe, szerokość szczęk >25mm, do dławnic kablowych),
  5. Pliki (różne),
  6. Solidne imadło,
  7. Opalarka,
  8. DMM (najlepiej CAT IV).

Jakich umiejętności potrzebuję?

  1. Dobra znajomość elektroniki i bezpieczeństwa elektrycznego / projektowania / okablowania domowego itp.,
  2. Znajomość Arduino i jego IDE,
  3. Dobre umiejętności produkcyjne (lutowanie, piłowanie, wiercenie itp.),
  4. Trochę Cierpliwości,
  5. 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 obwodu
Przegląd obwodu
Przegląd obwodu
Przegląd obwodu
Przegląd obwodu
Przegląd obwodu
Przegląd obwodu
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

Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
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

Szczegóły budowy i montażu
Szczegóły budowy i montażu
Szczegóły budowy i montażu
Szczegóły budowy i montażu
Szczegóły budowy i montażu
Szczegóły budowy i montażu
Szczegóły budowy i montażu
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

Adapter do programowania Sonoff
Adapter do programowania Sonoff
Adapter do programowania Sonoff
Adapter do programowania Sonoff
Adapter do programowania Sonoff
Adapter do programowania Sonoff
Adapter do programowania Sonoff
Adapter do programowania Sonoff

Podczas ponownego programowania Sonoff 10A za pośrednictwem Arduino IDE należy wziąć pod uwagę dwa aspekty;

  1. Konfigurowanie Arduino IDE do programowania ESP8266,
  2. 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)

  1. Najpierw upewnij się, że Sonoff nie jest zasilany z zewnętrznego źródła zasilania,
  2. Naciśnij i przytrzymaj przycisk na urządzeniu Sonoff. (rys. 1 powyżej, zaznaczony przycisk ponownego flashowania),
  3. Podłącz zewnętrzne zasilanie DC 3v3 do pinu 1. (rys. 2 powyżej),
  4. Zwolnij przycisk Sonoff,
  5. 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:

  1. Naciśnij i przytrzymaj przycisk ponownego flashowania na Sonoff,
  2. Impulsuj zasilanie 3v3, naciskając na chwilę S2,
  3. Zwolnij przycisk ponownego błysku,
  4. 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

Przegląd systemu oprogramowania
Przegląd systemu oprogramowania
Przegląd systemu oprogramowania
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

Przegląd oprogramowania
Przegląd oprogramowania
Przegląd oprogramowania
Przegląd oprogramowania
Przegląd oprogramowania
Przegląd oprogramowania
Przegląd oprogramowania
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

Konfiguracja OpenHAB
Konfiguracja OpenHAB
Konfiguracja OpenHAB
Konfiguracja OpenHAB
Konfiguracja OpenHAB
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

Image
Image
Testowanie urządzenia IoT
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: