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: 9 kroków
Anonim
Czujnik temperatury i wilgotności WiFi IoT. Część: 8 IoT, automatyka domowa
Czujnik temperatury i wilgotności WiFi IoT. Część: 8 IoT, automatyka domowa

Preambuła

Ten artykuł dokumentuje praktyczne wzmocnienie i dalszy rozwój wcześniejszego Instructable: „Pimping” swojego pierwszego urządzenia IoT WiFi. Część 4: IoT, automatyka domowa, w tym wszystkie niezbędne funkcje oprogramowania, aby umożliwić pomyślne wdrożenie w domowym środowisku domowym.

Wstęp

Jak wspomniano powyżej, ten Instruktaż opisuje połączenie wcześniejszego przykładu IoT z niezawodnym projektem systemu, pozwalającym na pomyślną obsługę praktycznych przypadków użycia, takich jak; Katastrofalna utrata zasilania, awaria brokera MQTT, awaria WiFi N/W, zdalna rekonfiguracja czujnika, konfigurowalna strategia raportowania w celu zmniejszenia ruchu w sieci i kalibracja czujnika na zamówienie.

W sumie utworzono 6 wyłączonych urządzeń (patrz zdjęcie 1 powyżej) i rozprowadzono w moim domu, tworząc moją pierwszą sieć czujników IoT.

Instructable widzi również przegląd konwencji nazewnictwa MQTT, stosowanej w początkowej serii IoT Home Automation, ustępując miejsca bardziej zrównoważonej, praktycznej strukturze umożliwiającej prostsze debugowanie ruchu IoT w środowisku wielu urządzeń IoT.

Poniżej znajdują się pełne szczegóły konstrukcyjne czujnika IoT, w tym; konstrukcja, kod źródłowy, strategia testowania i konfiguracje OpenHAB.

Jakich części potrzebuję?

  1. 1 szt. ESP8266-01,
  2. 2 kondensatory elektrolityczne 1uF,
  3. 3 oporniki 10K,
  4. 1 szt. rezystor 330R,
  5. 1 szt. 3mm śr. PROWADZONY,
  6. 1 szt. LD1117-33v, 3v3 LDO VReg. (tu Farnell),
  7. 1 szt. Czujnik temperatury/wilgotności DHT22,
  8. 1 szt. Podwójne 4-drożne złącze 0,1",
  9. 1 szt. Obudowa plastikowa CAMDENBOSS RX2008/S-5, skrzynka doniczkowa, ABS, 38 mm, 23 mm (tu Farnell),
  10. 1 szt. Złącze zasilania DC, Wtyk, 1 A, 2 mm, Montaż panelowy (Farnell tutaj),
  11. 1 szt. TO-220 Radiator 24,4 °C/W (tu Farnell),
  12. Różne rurki termokurczliwe (żółte, tutaj Ebay),
  13. Kabel taśmowy IDC o różnych długościach,
  14. Pasta do radiatora,
  15. Veroboard,
  16. Programator ESP8266-01. Spójrz tutaj; Praktyczna konstrukcja obwodu z płytką paskową, krok 9 i dalej.

Jakiego oprogramowania potrzebuję?

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

Jakich narzędzi potrzebuję?

  1. lutownica,
  2. Wiertła i różne bity,
  3. Pliki,
  4. Brzeszczot,
  5. Solidne imadło,
  6. Opalarka,
  7. DMM.

Jakich umiejętności potrzebuję?

  1. Minimalna znajomość elektroniki,
  2. Znajomość Arduino i jego IDE,
  3. Podstawowe umiejętności produkcyjne (lutowanie, piłowanie, piłowanie, wiercenie itp.),
  4. Trochę Cierpliwości,
  5. Trochę zrozumienia sieci domowej.

Omówione tematy

  1. Przegląd obwodów
  2. Przegląd systemu oprogramowania
  3. Przegląd oprogramowania
  4. Kalibracja czujnika
  5. Konwencja nazewnictwa tematów MQTT
  6. Konfiguracja OpenHAB
  7. Testowanie projektu
  8. Wniosek
  9. Użyte referencje

Linki do serii

Do części 7: Kontroler świateł do nauki (przerobiony). Część 7: IoT, automatyka domowa

Do części 9: Kontroler sieci IoT. Część 9: 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

Rysunek 1 powyżej pokazuje projekt pełnego obwodu czujnika IoT.

Sercem urządzenia IoT jest ESP8266-01, który jest podłączony do czujnika temperatury/wilgotności DHT22 przez rezystor podciągający 10K do GPIO2. Zewnętrzne napięcie 5 V jest dostarczane z zasilaczem impulsowym i podawane do urządzenia przez gniazdo do montażu na panelu 2 mm DC i regulowane lokalnie za pomocą regulatora napięcia LD1117-33v, 3v3 LDO zamontowanego na zewnętrznym radiatorze za pomocą śruby z łbem stożkowym ściętym BZP M3 i nakrętki.

Konstrukcja zawiera 3mm czerwoną diodę LED podłączoną do GPIO0, która służy do lokalnego wskazywania stanu urządzenia IoT podczas uruchamiania lub dowolnego późniejszego stanu błędu. Może być również używany do identyfikacji urządzenia poprzez ręczną aktywację przez interfejs openHAB.

Cała konstrukcja idealnie pasuje do skrzynki do zalewania z ABS, jak pokazano powyżej na zdjęciu 2, i została ułożona specjalnie, aby zapewnić, że czujnik znajduje się jak najdalej od regulatora, aby zapobiec obciążeniu spowodowanemu miejscowymi efektami ogrzewania (zdjęcie 7 powyżej).

Płytka drukowana jest pojedynczym kawałkiem veroboard, przyciętym do kształtu i dopasowanym do obudowy (rysunek 3 powyżej). Ta płytka jest mocowana na miejscu za pomocą nylonowej śruby z łbem stożkowym M3 i dwóch nakrętek, które pasują do spodu czujnika, co pozwala na umieszczenie go na płaskiej powierzchni.

Zdjęcia 4…6 pokazują różne stany konstrukcji.

Krok 2: Przegląd systemu oprogramowania

Przegląd systemu oprogramowania
Przegląd systemu oprogramowania
Przegląd systemu oprogramowania
Przegląd systemu oprogramowania

To urządzenie do pomiaru temperatury i wilgotności IoT zawiera sześć kluczowych komponentów oprogramowania, jak pokazano na rysunku 1 powyżej.

SPIFF

Jest to wbudowany system SPI Flash Filing i służy do przechowywania następujących informacji (patrz rysunek 2 powyżej);

  • Ikony i „Strona główna konfiguracji czujnika” html: Obsługiwane przez urządzenie IoT, gdy nie może połączyć się z siecią IoT WiFi (zwykle z powodu nieprawidłowych informacji o zabezpieczeniach) i zapewnia użytkownikowi możliwość zdalnej konfiguracji czujnika bez potrzeby aby przeprogramować lub wgrać nową zawartość 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 czujnika” są zapisywane w tym pliku („secvals.txt”).
  • Informacje o kalibracji: Informacje zawarte w tym pliku ('calvals.txt') służą do kalibracji wbudowanego czujnika temperatury/wilgotności, jeśli jest to konieczne. Stałe kalibracji można zapisywać na urządzeniu IoT tylko za pomocą poleceń MQTT od brokera MQTT.

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ę „SENSORSVR.local” w pasku adresu przeglądarki, aby wyświetlić 'Strona główna konfiguracji czujnika'.

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 dostarczonej przez punkt dostępowy, obecność serwera WWW HTTP umożliwia bezpośrednie połączenie z urządzeniem i zmianę jego konfiguracji za pomocą przeglądarki internetowej HTTP, której celem jest obsługa „Konfiguracji czujnika” Strona internetowa „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 = „SENSOR” + ostatnie 6 cyfr adresu MAC urządzenia IoT. Hasło do tej zamkniętej sieci nosi urojoną nazwę „PASSWORD”

Krok 3: 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:

DHT.h

  • Autor: Adafruit
  • Cel: Biblioteka dla czujnika temperatury/wilgotności DHT
  • 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, jak poniżej;

  • 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 funkcjonalność czujnika temperatury i wilgotności jest publikowana w brokerze MQTT

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 IoT stanie się punktem dostępowym. Po podłączeniu do tego punktu dostępowego, wyświetli się „Strona główna konfiguracji czujnika”, jak pokazano powyżej na rys. 2 (poprzez wpisanie „SENSORSVR.local” lub 192.168.4.1 w pasku adresu przeglądarki). Ta strona główna umożliwia rekonfigurację czujnika za pomocą przeglądarki

Dostęp zdalny w stanie AKTYWNY

Po połączeniu z brokerem MQTT możliwe jest również ponowne kalibrowanie i rekonfiguracja urządzenia za pośrednictwem publikacji tematycznych MQTT. Plik calvals.txt ma dostęp R/W, a secvals.txt ma dostęp tylko do zapisu.

Debugowanie użytkownika

Podczas sekwencji rozruchowej dioda LED urządzenia IoT daje następujące informacje zwrotne dotyczące debugowania:

  • 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 IoT próbuje połączyć się z brokerem MQTT
  • Wyłączony: Urządzenie jest aktywne
  • Uwaga 1: „Strona główna konfiguracji czujnika” nie korzysta z bezpiecznych gniazd i dlatego polega na tym, że sieć jest bezpieczna.
  • Uwaga 2: Aby zaprogramować każde urządzenie IoT, ciąg MQTT będzie wymagał edycji przed pobraniem. Dzieje się tak, ponieważ numer czujnika został osadzony w ciągu tematu MQTT. tj. „WFD/THSen/100/HumdStatus/1” dla moich 6 urządzeń mają odpowiednio numery 1…6.

Krok 4: Kalibracja czujnika

Kalibracja czujnika
Kalibracja czujnika
Kalibracja czujnika
Kalibracja czujnika

Po włączeniu urządzenia IoT w ramach sekwencji rozruchowej z SPIFFS odczytywany jest plik o nazwie „cavals.txt”. Zawartość tego pliku to stałe kalibracyjne, jak wskazano powyżej na rys. 1. Te stałe kalibracyjne są używane do dostosowania odczytów uzyskanych z czujnika w celu dostosowania ich do urządzenia odniesienia. Istnieje jeszcze jedna wartość, która definiuje strategię raportowania dla urządzenia i jest opisana poniżej wraz z procedurą kalibracji czujników.

Strategia raportowaniaTen parametr określa sposób raportowania przez czujnik zdalny wszelkich lokalnych zmian parametrów otoczenia. Jeśli zostanie wybrana wartość 0, zdalny czujnik będzie publikował wszelkie zmiany, jakie widzi w wartościach temperatury lub wilgotności za każdym razem, gdy czujnik jest odczytywany (około co 10 sekund). Każda inna wartość opóźni publikację zmiany o 1…60 minut. Modyfikacja tego parametru pozwala na optymalizację ruchu sieciowego MQTT.

Kalibracja temperatury

Aby skalibrować czujniki zostały one umieszczone w bliskiej fizycznej odległości od siebie, jak pokazano powyżej na rys. 2. Obok nich umieściłem multimetr cyfrowy z dołączoną skalibrowaną termoparą (Fluke 87 V), a następnie monitorowałem wyjścia z każdego urządzenia za pomocą temperatury OpenHAB stronę trendów w ciągu dnia, aby uzyskać dobre wahania temperatury. Zanotowałem zarówno statyczne przesunięcie (podwyższone zero „C”), jak i szybkość zmian każdego urządzenia (wzmocnienie lub nachylenie wykresu „M”) w stosunku do wartości pochodzącej z skalibrowanej termopary. Następnie obliczyłem prostą zależność y=mx+c (odkryłem, że jest ona wystarczająco liniowa, aby być bliskim przybliżeniem wykresu linii prostej) i zaprogramowałem wszelkie niezbędne poprawki do stałych kalibracji za pomocą MQTTSpy.

Urządzenia były następnie monitorowane przez kolejne 24 godziny, aby upewnić się, że kalibracja przebiegła pomyślnie. Wskazuje na to, że ślady temperatury na stronie trendów temperatury OpenHAB były prawie jedna na drugiej.

Oczywiście jeśli interesuje Cię tylko przybliżenie temperatury, możesz pozostawić wszystkie wartości kalibracji jako domyślne.

Kalibracja wilgotności

Ponieważ nie mam możliwości dokładnego rejestrowania, a nawet kontrolowania lokalnej wilgotności otoczenia, do kalibracji czujników zastosowałem podobne podejście do powyższego, umieszczając wszystkie urządzenia w bliskiej odległości fizycznej (rys. 2) i po prostu monitorując ich wyjście za pomocą OpenHAB Strona tendencji wilgotności. Następnie wybrałem urządzenie nr 1 jako odniesienie do kalibracji i skalibrowałem wszystkie urządzenia w odniesieniu do tego.

Krok 5: Konwencja nazewnictwa tematów MQTT

Konwencja nazewnictwa tematów MQTT
Konwencja nazewnictwa tematów MQTT
Konwencja nazewnictwa tematów MQTT
Konwencja nazewnictwa tematów MQTT

Po wielu próbach i błędach zdecydowałem się na konwencję nazewnictwa tematu przedstawioną na rys. 1 powyżej.

Mianowicie „AccessMethod/DeviceType/WhichDevice/Action/SubDevice”

Nie jest idealny, ale pozwala na zastosowanie przydatnych filtrów, aby zobaczyć wszystkie wyjścia czujnika dla danej wartości parametrycznej, co pozwala na łatwe porównanie, jak na ryc. 2 powyżej z MQTTSpy. Obsługuje również w miarę rozszerzalne logiczne grupy funkcjonalności w ramach danego urządzenia IoT.

Wdrażając te tematy w oprogramowaniu, użyłem zakodowanych ciągów tematów ze stałymi, osadzonymi identyfikatorami numerycznymi dla każdego urządzenia, w przeciwieństwie do dynamicznego generowania tematów w czasie wykonywania, aby zaoszczędzić na pamięci RAM i utrzymać wysoką wydajność.

Uwaga: Jeśli nie masz pewności, jak korzystać z MQTTSpy, zobacz tutaj „Konfigurowanie brokera MQTT. Część 2: IoT, automatyka domowa”

Krok 6: Konfiguracja OpenHAB

Konfiguracja OpenHAB
Konfiguracja OpenHAB
Konfiguracja OpenHAB
Konfiguracja OpenHAB
Konfiguracja OpenHAB
Konfiguracja OpenHAB

Zmodyfikowałem konfigurację OpenHAB podaną w moim wcześniejszym Instructable (tutaj) i dodałem w poszczególnych wpisach;

  • Garaż,
  • Hala,
  • Salon,
  • Kuchnia
  • Pokój gościnny
  • Główna sypialnia

Na mapie serwisu patrz zdjęcie 1 powyżej.

Do każdego z tych wpisów dodałem indywidualne mapy witryn eksponujące lokalne wartości otoczenia (patrz zdjęcie 2 powyżej);

  • Temperatura
  • Wilgotność
  • Indeks ciepła

Dołączyłem również przełącznik do sterowania lokalną diodą LED zamontowaną w czujniku.

Zdjęcia 3…5 pokazują indywidualne przebiegi na żywo w ciągu 24 godzin dla temperatury, wilgotności i RSSI (wskaźnik siły sygnału odbieranego, w zasadzie miara tego, jak dobrze czujnik widzi sieć Wi-Fi).

Rysunek 6 przedstawia przykład długoterminowego trendu wilgotności w okresie tygodnia.

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ę poniżej.

Krok 7: Testowanie projektu

Testowanie projektu
Testowanie projektu
Testowanie projektu
Testowanie projektu

W większości testowałem urządzenie IoT przez połączenie MQTT z MQTT Spy, monitorując wyjście led i debugując ruch na interfejsie szeregowym. Pozwoliło mi to na przećwiczenie wszystkich dostępnych subskrybowanych tematów i sprawdzenie opublikowanych odpowiedzi. Chociaż udało się to osiągnąć ręcznie i czasami było to trochę nużące, umożliwiło to pokrycie 100%.

Jednak główna maszyna stanu okazała się nieco trudna do przetestowania, ponieważ opierała się na obecności lub braku sieci Wi-Fi, do której dostęp wymagał określonych zestawów parametrów. Używanie do tego sieci domowej było po prostu niepraktyczne.

Aby obejść ten problem, stworzyłem własny zestaw fikcyjnych sieci za pomocą ESP8266-01 skonfigurowanych jako punkty dostępowe (rys. 1) z identyfikatorami SSID odpowiednio 'DummyNet1' i 'DummyNet2'. Użycie obwodu na rys. 2 powyżej diody LED wskazywało, czy urządzenie IoT zostało do niego podłączone. Chociaż nie było to idealne rozwiązanie testowe (tj. każda z tych fikcyjnych sieci WiFi nie zawierała serwera MQTT), możliwe było pełne przetestowanie maszyny stanów.

Poniżej zamieszczam kopię kodu źródłowego.

Krok 8: Wniosek

Ogólny

Oprogramowanie w urządzeniach IoT działa niezawodnie od wielu miesięcy, odzyskując zasilanie po przerwach w dostawie prądu (głównie spowodowanych przeze mnie). Ogólnie rzecz biorąc, są to dość solidne urządzenia dające spójne i dokładne dane.

Ulepszenia

Tworząc procedury programowe do odczytu i zapisu do SPIFFS, napisałem kod, który z perspektywy czasu może być nieco bardziej zaawansowany niż zamierzałem, używając wskaźników void, recastingu i wskaźników do wskaźników. Chociaż jest bardzo elastyczny i dobrze wykonuje swoją pracę, następnym razem mogę użyć JSON na wzór ConfigFile.ino, aby trochę uprościć.

  • Rdzeń piasty GIT Arduino

    https://github.com/esp8266/Arduino

  • Źródło ConfigFile.ino

    https://github.com/esp8266/Arduino/tree/master/libraries/esp8266/examples/ConfigFile

Lista życzeń

Zamierzałem użyć klienta mDNS do połączenia z Brokerem, ale biblioteka była zbyt niestabilna. Dlatego konieczne jest określenie adresu IP brokera MQTT w przeciwieństwie do „MQTTSVR.local”. Jeśli biblioteka mDNS stanie się w przyszłości bardziej stabilna, dodam tę możliwość do urządzenia.

Byłoby miło mieć środki zarówno do dokładnego monitorowania, jak i kontrolowania wilgotności otoczenia, aby skalibrować czujniki. Jednak powiedziawszy, wybrana metoda kalibracji daje dobre odczyty względne i wydaje się dość dokładna zgodnie ze specyfikacją w arkuszu danych DHT22.

Wreszcie, biorąc pod uwagę złożoność oprogramowania, okazało się, że pełne testowanie kodu po dużej zmianie stawało się czasochłonne. Możliwe, że rozważę testowanie automatyczne w późniejszym terminie.

Krok 9: Użyte referencje

Użyłem następujących źródeł, aby połączyć ten Instruktaż;

PubSubClient.h

  • Autor: Nick O'Leary
  • Od:

DHT.h

  • Autor: Adafruit
  • Od:

Arkusz danych DHT22