Aktualizacja: 2018-03-24

ESP8266 - Termostat

Cele

Celem projektu było stworzenie programu dla ESP8266 który odczytuje temperaturę z czujnika DS18B20 i zależnie od nastaw wprowadzonych przez użytkownika włącza lub wyłącza grzałkę. Urządzenie pełni funkcję termostatu sterowanego przez przeglądarkę internetową i jest podłączone do wybranej sieci WiFi.

Podzespoły urządzenia

Z uwagi na to, że za cel projektu zostało obrane jedynie stworzenie oprogramowania a nie całego układu elektronicznego, został on zbudowany na płytce stykowej. Nie została też podłączona grzałka, a jej funkcję w układzie symbolizuje LED. By sterować np. grzałką w bojlerze lub piecyku należy zamiast LED podłączyć transoptor sterujący triakiem.
Odczyt temperatury dokonywany jest przez układ DS18B20, który występuje również w wersji wodoodpornej. 
Układem sterującym jest ESP8266, w tym przykładzie znajduje się na płytce PCB która zawiera między innymi CP2102 będący mostkiem USB - UART, na płytce znajduje się również stabilizator napięcia i inne - co znacznie upraszcza proces prototypowania. Ten model płytki występuje pod nazwą "NodeMCU v1.0".

 

ESP8266 termostat schemat
Prototyp na płytce stykowej (opracowany w programie Fritzing).

 Szyna danych 1Wire do komunikacji z DS18B20 znajduje się na pinie D1 płytki "NodeMCU v1.0", natomiast stan wysoki (włączający grzałkę) pojawia się na pinie D2.

Wsad dla ESP

Gotowy wsad w postaci pliku "termostat.bin" dla ESP został udostępniony w repozytorium, natomiast sposób jego użycia jest opisany w artykule "Wgrywanie firmware do ESP8266".

Konfiguracja sieci

Po graniu firmware do ESP należy nawiązać z nim połączenie za pośrednictwem portu UART (prędkość: 115200 baud).
Ważnym jest by jako zakończenie linii wybrać "nowa linia", czyli znak "\n" - informuje on ESP o zakończeniu wysyłania instrukcji, bądź ciągu znaków. 

Po wysłaniu znaku "h" (i znaku nowej linii) wyświetlane jest menu:

IP address:
0.0.0.0
s - skanuj sieci
c - konfiguruj siec
o - czytaj konfiguracje
j - polacz z siecia
h - wyswietl to menu

Układ nie jest jeszcze skonfigurowany, należy przeskanować dostępne sieci WiFi (wysyłając znak "s"):

scan start
scan done
5 networks found
1: SPOT-0ED0 (-86)*
2: Live-199 (-50)*
3: Darmowe_WiFi (-49)
4: NoweEnergie (-54)
5: 16_E30BBC (-83)*
 
Lista sieci zawiera SSID, poziom sygnału i informację o zabezpieczeniu ("*").
Kolejnym etapem jest podłączenie do wybranej sieci (w tym przypadku "NoweEnergie" - sieć otwarta).

Konfiguracja następuje po wysłaniu znaku "c". Należy wpisać SSID sieci i podać hasło.

Podłączenie do sieci wykonywane będzie automatycznie po starcie urządzenia. W tej chwili możliwe jest podłączenie po wysłaniu znaku "j":

Connecting to NoweEnergie
***
Connected

Gwiazdki to próby połączenia, jest podejmowane sześć prób.

Interface sterujący

Po wgraniu oprogramowania do ESP8266 i skonfigurowaniu sieci, użytkownik wpisuje w przeglądarce internetowej adres IP przypisany do termostatu. Zostaje wyświetlona strona na której w zakładce "temperatura" wyświetlona jest aktualna temperatura środowiska, zakładka "ustaw" umożliwia podanie oczekiwanej wartości jaka ma zostać utrzymywana przez grzałkę.

ESP8266 termistat interface sterujący
Interface termostatu.

Kod programu

Program został napisany w środowisku Arduino IDE. Kod źródłowy dostępny jest w repozytorium, do jego kompilacji konieczne jest posiadanie bibliotek "OneWire" oraz "DallasTemperature".

Odnośniki

Pliki projektu:

Wyślij komentarz