DIY: Bezprzewodowy czujnik temperatury oraz wilgotności za mniej niż 20zł

Czujnik temperatury i wilgotności to podstawowe urządzenie w każdym smartHouse. Znając temperaturę w pomieszczeniach możemy odpowiednio sterować ogrzewaniem, klimatyzacją, czy regulować wilgotność w łazience.

Analizując dane historyczne możemy dostrzec, że w pomieszczeniach jest za ciepło kiedy jesteśmy poza domem, np. w pracy. To znowu pozwala nam odpowiednio zmodyfikować nasz system ogrzewania i może przy okazji zaoszczędzić PLN. W podobny sposób możemy reagować na zmieniającą się wilgotność. Niekorzystna wilgotność dla człowieka jest wtedy, kiedy jej wartość nie mieści się w zakresie 30-60%.

Poniżej amatorska wersja, zbudowana z praktycznie gotowych komponentów, wymagająca niewiele zabawy z lutownicą. Urządzonko zbudowane jest na popularnym chip’ie WiFI ESP8266, czujniku temperatury i wilgotności DHT22, zasilana ładowarką USB 5V oraz wgranym AFE Firmware T2.

Oprogramowanie w takim zestawie umożliwia:

  • odczyt temperatury i wilgotności w zdefiniowanych interwałach czasowych,
  • przesyłanie danych przez protokół MQTT do naszego systemu do automatyki lub
  • odczyt temperatury / wilgotności na żądania protokołem MQTT lub HTTP do formatu JSON
Części do zbudowania takiego czujnika

Wymagane elementy do zbudowania takiego czujnika. Wszystkie zakupione na aliExpress w Chinach. Ceny z grudnia 2017

  • ESP8266 D1 Mini (z goldpin’ami): $2,55
  • Czujnik DH22: $2,45
  • Rezystor 10k: $0,004
  • 2x płytki do prototypownia (PCB) 3x7cm – $0,52
  • Kilka drucików

Wszystkie elementy do zbudowania czujnika temperatury oraz wilgotności WiFI

Razem: $5,52 jakieś 18zł

Do dzieła

Zaczynam od końca, żeby było wiadomo do czego zmierzamy.

  • Mamy dwie płytki PCB do prototypowania, złożone razem z niewielką przerwą między nimi ok 2mm. Między nimi znajdują się kabelki łączące poszczególne elementy razem
  • Płytki połączone są przylutowanymi do nich goldpin’ami, które wchodziły w skład zakupionego ESP8266 D1 Mini

Dwie płytki PCB do prototypownia, z ok 2 mm przerwą między nimi

  • Z jednej strony mamy ESP8266, z wyjściem USB do podawania zasilania, z drugiej strony jest czujnik DH22, a między nimi rezystor 4,7k

ESP8266, rezystor 4,7k oraz czujnik DH22

W szczegółach:

  • W ESP8266 identyfikujemy: 3.3V, GND, GPIO14 – do nich podepniemy czujnik DH22. Oczywiście również można użyć innego GPIO zamiast 14stego.

 

ESP8266 D1 Mini

Schemat ESP8266 D1 Mini

 

  • ESP8266 łączymy do PCB za pomocą goldpin’ów. Na każdym rogu ESP będzie montowany jeden, żeby ESP8266 stabilnie był przymocowany do płytki PCB

ESP8266 z Goldpinami – rozmieszenie

 

Płytki PCB z rozmieszczonymi goldpin’ami

 

Płytka PCB z umieszczonym ESP

 

Termometr WiFI

Przylutowany ESP8266. Goldpiny powinny wystawać wystarczająco, aby można było do nich przylutować drugą płytkę PCB z 2mm przerwą między nimi

 

  • W czujniku DH22 będą wykorzystane tylko 3 nóżki. Trzecia nóżka, nie będzie używana.
Czujnik DHT

Czujnik DHT

 

Czujnik DH22 umieszczony na płytce PCB

 

Czujnik DH22 przylutowany

 

  • Nóżkę 1 łączymy z 3.3V, nóżkę 2 z GPIO14, nóżkę 4 z GND w ESP8266
  • Rezystor 4,7k będzie łączony między połączenie/ kabelek 3.3v, a GPIO14 idące do drugiej nóżki w DH22.
  • Łączymy wszystko razem.

Końcówki z rezystora przylutowane bezpośrednio do pierwszej i drugiej nóżki czujnika DH22

 

Drut (pomarańczowy) przylutowany między GND z ESP, a GND w czujniku DH22

 

Drut (zielony) przylutowany między 5V z ESP a drutu wychodzącego z rezystora, który idzie do pierwszej nóżki czujnika DH22

 

Drut od ESP GPIO14 przylutowany do drugiej końcówki rezystora 4,7k

  • Sprawdzamy 2x zanim podłączymy zasilanie, czy nie ma zwarcia między drucikami, połączeniami, itp
Wgrywanie firmware
  • Pobieramy firmware  AFE Firmware T2
  • Instalujemy, praktycznie tak samo jak w tej instrukcji. W przypadku ESP8266 D1 Mini łączymy się kablem USB do komputera i wciskamy przycisk reset w ESP przed włożeniem kabla do portu USB w komputerze
  • Wgrywamy oprogramowanie
  • Po wgraniu oprogramowania wciskamy ponownie przycisk reset (lub odłączamy kabel USB od komputera, a następnie włączamy go ponownie)
Konfiguracja firmware
  • Podczas pierwszego uruchomienia, urządzenie automatycznie wejdzie w tryb konfiguracji
  • Po ok. 1min od wgrania oprogramowania i wciśnięciu przycisku reset połącz się z siecią WiFi o nazwie AFE-Device, a po podłączeniu się do niej w przeglądarce wejdź na adres: http://192.168.5.1
  • Powinien uruchomić się panel konfiguracyjny
  • W konfiguracji urządzenia wybieramy: czujnik DH22 oraz diodę LED. Przekaźnik oraz przycisk nie powinny być zaznaczone

  • Wybieramy API do sterowania MQTT i/lub HTTP

  • W konfiguracji LED wybieramy: GPIO: 2 (będzie to dioda wbudowana do ESP8266 D1 Mini)

  • W konfiguracji czujnika temperatury:
    • wybieramy GPIO 14 lub inny, do którego podłączony jest czujnik DH22
    • typ czujnika: DH22 (no chyba, że zamiast DH22 podłączony został DH11 lub DH21)
    • ustawiamy częstotliwość odczytu temperatury i wilgotności (jeśli nie używamy MQTT to nie ruszamy tego parametru)

  • Konfigurujemy sieć WiFi, MQTT jeśli wybraliśmy i kończymy konfigurację
Test odczytu danych z czujnika
  • W routerze WiFi możemy sprawdzić, jaki adres IP został przydzielony urządzeniu
  • Odczyt temperatury:
    • http://adres-ip-urzadzenia/?device=dht&name=temperature&command=get
  • Odczyt wilgotności:
    • http://adres-ip-urzadzenia/?device=dht&name=humidity&command=get
  • Odczyt temperatury odczuwalnej:
    • http://adres-ip-urzadzenia/?device=dht&name=heatIndex&command=get

Poniżej wykres temperatury oraz wilgotności z danych zebranych przez to urządzonko z jednej doby.

Wykres pomiaru temperatury oraz wilgotności z czujnika DH22 na ESP8266 i AFE Firmware

Informacje uzupełniające
Udostępnij
  • 1
    Share

adrian

Autor blog'a Smartny Dom

Może Ci się również spodoba

51
Dodaj komentarz

Proszę Zaloguj się aby komentować
21 Wątek skomentowany
30 Odpowiedzi w wątku
5 Obserwujących
 
Komentarz z największa reakcją
Gorący wątek
13 Liczba komentowanych autorów
szpila86lukas121Gerwazykuvusisom Ostatnio komentowani autorzy
  Subskrybuj  
najnowszy najstarszy oceniany
Powiadom o
Radek
Użytkownik
Radek

Też zrobiłem podobny tylko DHT był po drugiej stronie D1.
Teraz muzę wymyślić:
1. Zasilanie bateryjne automatyczne przełączane przy zaniku prądu.
2. Ładne opakowanie które „oddycha” żeby czujnik miał dostęp do świeżego powietrza.

1paul11
Użytkownik
1paul11

Witam mam problem z odczytem temperatury i wilgotności. Układ zwraca mi wartość „nan” zamiast wartości liczbowych czy to temp. wilgot. Co to może być ?

1paul11
Użytkownik
1paul11

Program mam wgrany do :Moduł WiFi ESP8266 Wemos NodeMCU V3 32MB.Wygląda na to że układ nie działa. 

1paul11
Użytkownik
1paul11

tak jak piszesz mam DTH 22

7keys
Użytkownik
7keys

Wszystko pięknie 🙂 Ale „bezprzewodowy” powinno oprócz połączenia bezprzewodowego z serwerem powinno wskazywać też na zasilanie bateryjne 🙂 Przy takim zasilaniu czujniki ustawiasz gdzie chcesz. Przy zastosowaniu akumulatora 18650 i odpowiedniego ustawienia odczytów, baterię wymieniam na „naładowaną” raz na 3-4 miesiące.Wczoraj w ramach testu, zainstalowałem na  moim esp8266 S0-1 AFE DHT. Wszystko jest ok , ale raczej na baterii długo nie pociągnie przy ciągle włączonym wifi w module.Rozumie zamysł AFE i dlaczego tak jest :)Załóżmy jednak sytuację w której dodałbyś taką opcję:1. dodatkowe pole typu ” praca autoniomiczna”a. wybieramy interwał czasu odczytu ( opcja już jest ) np:.ustawiamy co 5… Czytaj więcej »

zbigg
Użytkownik
zbigg

Czolem, witam Szanownych uzytkownikow !

Odrazu pytania-moze trywialne:
1. czy w/w zmiesciloby sie do takiego Salusa?
https://onninen.pl/pl-PL/regulator-temperatury-dobowy-mechaniczny-przewodowy-rt100-rt100-salus,HAO933
2. Jesli w/w TAK=> czy mozna w miare prosto ogarnac aplikacje na Androida do wysterowania zdalnego takich pokojowych Salusów, bez koniecznosci juz wtedy ‚zmechanizowania’ analogowego potencjometru?
3. Czy ktos sie orientuje o mozliwosci zczytania danych z zespolu pompowego/sterownika solarów Viesmanna?

marcinl
Użytkownik
marcinl

Witam. Chcę przetestować ten pomysł w warunkach przemysłowych i tak:
1. Generowanie się wykresu – potrzebny jest dodatkowy program czy jak to działa?
2. Alarmy o wartościach maksymalnych np deklaruje że przy 25 stopniach ma pojawić się alarm na ekranie.
3. Podłączenie 17 czujników temperatury do jednej sieci i generowanie 17 wykresów na telewizorze 42 cale – nie powinno stanowić problemów? Jak to zrobić ?

Pozdrawiam

isom
Użytkownik
isom

Dodane przez: marcinlWitam. Mam problem, nodecu firmware programmer nie wykrywa mi portu com do wgrania firmware… 🙁

Nie wiem do jakiego modułu i czym chcesz wgrać firmware, ale jeśli to wemos D1 to potrzebny jest sterownik CH340 .Tu masz link jak to zrobić http://itserwer.pl/index.php?option=com_content&view=article&id=70:instalacja-sterwonika-dla-ch340&catid=41:ch340&Itemid=72

marcinl
Użytkownik
marcinl

Działa 🙂
Ps. Kluczem do sukcesu jest właściwy przewód USB 😉

kuvus
Użytkownik
kuvus

Istnieje możliwość podłączenia 2 czujników do jednego ESP?

Gerwazy
Użytkownik
Gerwazy

Witam kolegów na forum.Od niedawna próbuję się wdrożyć w tematykę domu inteligentnego. Artykuły tu zawarte wydają mi się jednymi z ciekawszych, jakie znalazłem.Po postawieniu i RPi i podłączeniu 7 czujek temperatury 1wire zapragnąłem podłączyć inne pokoje w opisany powyżej sposób. Wertując YT napotkałem kanał kolegi Szmalu, gdzie idzie o krok dalej i wpina to w czujkę BDL2-WP12G. Chcę to zrobić z wykorzystaniem DHT22 (w drodze z Chin z ESP8266 D1 mini). Niestety elektronika nie jest moją mocną stroną… Załączam jego schemat. No i pytanie: czy używając DHT22 robię tak jak na schemacie (kondensator), czy tak jak u Was z wykorzystaniem rezystora? Zasilam… Czytaj więcej »

lukas121
Użytkownik
lukas121

Musisz zrobić jak na schemacie, masz tam stabilizator z 12V na 3V do zasilania ESP D1. DTH22 zasilasz z 3V i tam dajesz rezystor miedzy wyjście a zasilanie 3V. Możesz kupić dedykowaną płytkę z DTH do esp D1.

isom
Użytkownik
isom

@gerwazy po pierwsze na tym schemacie napięcie zasilania 12V jest dlatego , że czujnik PIR  BOSH wymaga takiego napięcia.To co jest z kondensatorem to stabilizator obniżający to 12V do poziomu 3,3 V , które zasila wemosa i czujnik wilgotności, który pracuje wykorzystując magistralę I2C .Ty jeżeli chcesz podłączyć do wemosa  DHT 22, to wykorzystujesz tylko jedno GPIO w wemos ,  analogicznie jak robiłeś z 1wire zasilić możesz DHT 22 tymi 3,3V lub zastosować stabilizator 5V i wtedy zasilasz wemosa tam gdzie jest 5V i czujnik DHT też.Rezystor 4,7k stosujesz tak samo jak przy 1wire, a kondensator przy stabilizatorze nie zaszkodzi… Czytaj więcej »

szpila86
Użytkownik
szpila86

Hejczy byłaby możliwość podłączenia czujnika bmp280 zamiast DHT?

isom
Użytkownik
isom

Podłączyć możesz , ale działać nie będzie , czujnik BMP działa po I2C a DHT nie . Do tego BMP Adrian jeszcze nie napisał softu

szpila86
Użytkownik
szpila86

Co to za język? C? LUA? 

isom
Użytkownik
isom

Tu masz wszystko https://www.smartnydom.pl/srodowisko-programistyczne-afe-firmware/