Menu główne

Aktualności:

I już Święta

Termometr ESP Tutorial

Zaczęty przez Jaś, Lip 26, 2024, 02:54 PM

Poprzedni wątek - Następny wątek

Jaś

Cześć!

W związku z dużym zainteresowaniem (i sporą ilością pytań na PW) termometrami na ESP8266 postanowiłem napisać kawałek tutorial'a jak zbudować sobie taki termometr w domowym zaciszu. Poniżej instrukcja jak zrobić termometr z wyświetlaniem na LCD i podglądem przez przeglądarkę w sieci lokalnej WIFI

Mam nadzieję, że nie narażę się tym tematem kolegom którzy "komercyjnie" robią sterowniki- informacje zawarte w tym poście są ogólnodostępne, ja tu ameryki nie odkrywam, chcę tylko zebrać wszystko w jedną całość tak żeby koledzy z odrobiną chęci i minimalnymi zdolnościami manualnymi mogli sobie coś takiego zrobić.


Ja w swoim urządzeniu użyłem lutownicy jednak można wszystko zrobić "na pająku" bez lutowania, faktem jest, że można to zrobić estetyczniej i zapewne lepiej, ale proszę powstrzymać się przed komentarzami dot. mojego wykonania- to instrukcja, nie oferta sprzedaży, jak ktoś przywiązuje większą wagę do estetyki chwała mu za to- będę kibicował, dla mnie urządzenie ma działać.

Zaczynamy od potrzebnych zakupów:

ESP8266 (w zasadzie każde wydanie które ma co najmniej 3 GPIO- I2C i 1Wire)- ja użyłem WEMOS'a
LCD z ekspanderem na I2C (ja użyłem 4x20- więcej informacji na nim się umieści)
DS18B20, gilza KO do sondy, kawałek przewodu LUB jak ktoś woli gotowa sonda DS18B20- w dalszej części napiszę dlaczego uważam, że lepiej zrobić sondę samemu.
rezystor 4k7
przewody do połączenia (goldpin żeńskie)
złącza kompletne (gniazdo + wtyczka) na przewód do sond- ja użyłem popularnych złącz DC 5.5x2,5


Zaczynamy!
Po zakupie ESP ukłąd przychodzi "goły", trzeba na nim zainstalować firmware ESPEasy, nie będę rozpisywał się jak to zrobić bo w internecie jest wiele instrukcji jak wgrać ten soft (nawet w formie filmów), np:
https://www.google.pl/search?client=ope ... 8&oe=UTF-8

Po instalacji podłącz się ESP do swojej sieci WIFI- przyda Ci się to!

Po zainstalowaniu i skonfigurowaniu IP/połączenia WiFi w ESPEasy proponuję zacząć od podłączenia LCD:
Podłącz ekspander LCD zgodnie z opisem (GND,VCC,SCL,SDA) do ESP, ustawienia magistrali sprawdzisz w zakładce "Hardware":
hardware.pngWejdź przez przeglądarkę na ESP-> zakładka DEVICES-> przy Task'u 1 kliknij "EDIT"
Devices.pngpojawi się okno ustawień, wybierz z listy rozwijanej "Display - LCD2004", ustaw adres I2C (0x27 jest chyba domyślny, jeśli nie zadziała trzeba pokombinować) włącz checkbox "Enabled" i wybierz z listy rozwijanej ilość linii.
Pojawią się linie na których już możesz coś wpisać (ja postanowiłem, że moje ESP się ze mną przywita), po kliknięciu "Submit" i odczekaniu czasu opóźnienia pojawi się pierwszy napis.
LCD.png
hello.JPG
Podłączenie DS18B20:
Przygotuj okablowanie do podłączenia, ja stosuję od zawsze połączenie DS'ów w trybie pasożytniczym (2 przewodowym), nie wiem czy jest to lepsze/gorsze z punktu widzenia elektroniki, wiem, że mogę sondę połączyć ze sterownikiem/układem przewodem dwu-żyłowym, łatwiej dobrać kabel, złączki itp.


Wstawię schemat z internetu, mam nadzieję, że nikt nie będzie miał pretensji:
parasite.jpgŻeby się nie męczyć z resystorem na pająku przylutowałem go na stałe do nóżek ESP, dolutowałem dodatkową nogę do GND bo będzie za chwilę potrzebna po połączenia sondy termometru:
IMG_2124 (1).JPG
wemos1.JPG

Ustawienie sondy w ESPEasy:
Ponownie zakładka "Devices", przy drugim tasku edit, wybierz "Environment - DS18b20", wybierz port pod który podłączony jest DS, kliknij Submit, po odświeżeniu jeśli wszystko jest dobrze podłączone pod listą rozwijaną z numerami portów powinieneś na liście "Device Adress" widzieć adresy czujników DS na magistrali 1Wire, wybierz właściwy adres, wpisz nazwę w polu "Name" np. Głowica, zmień rozdzielczość z 9 na 12 Bit, opóźnienie zmień na 1s, zaznacz checkbox "enabled", na koniec zostaje kliknięcie "Submit".
DS.pngPo ponownym wejściu w zakładkę "Dewices" powinieneś już widzieć temperaturę z czujnika, na tej stronie sama się nie odświeża ale zaraz do tego "dojdziemy".

Wyświetlenie temperatury na LCD.
Wejdź w konfigurację LCD w zakładce Devices, w dowolnej linii wpisz komendę [Glowica#Temperature] gdzie zamiast "Glowica" wpisz nazwę jaką ustawiłeś dla danego termometru, ja zrobiłem to tak:
lcd2.png
i mam taki efekt:
IMG_2132.pngJeśli chcesz dodatkowe termometry do wykonaj te kroki dla każdego nowego termometru pamiętając żeby wpisywać unikalną nazwę dla każdego z nich!


Teraz pokażę jak zrobić w przeglądarce podgląd temperatur, jeśli wszystko pójdzie dobrze na każdym urządzeniu które jest podłączone do sieci WiFi będziesz mógł podglądać temperatury Online!

W programie notepad++ lub w notatniku (ja polecam notepad++) utwórz plik "termometry.esp", koniecznie z takim rozszerzeniem, nazwa oczywiście dowolna jednaj ja będę taką dalej się posługiwał. W pliku umieść ten kod:
Kod: Zaznacz cały

<meta name="viewport" content="width=width=device-width, initial-scale=1">
<STYLE>
* {font-family:sans-serif; font-size:14pt;}
.button {margin:3px; padding:3px 8px; background-color:#07D; color:#FFF; text-decoration:none; border-radius:3px}
</STYLE>
<html>
<head>
    <meta http-equiv="refresh" content="2">
</head>
<body>



<center>" Moj termometr ESP !!! "</center>



<table  cellpadding="0" cellspacing="3">



<tr>
<td>GLOWICA : [Glowica#Temperature] *C</td>
</tr>

</body>
</html>
zapisz i wgraj do ESP: Zakładka "Tools", przycisk "load" w sekcji "settings", wybierz plik i kliknij upload, po załadowaniu w przeglądarce uruchom plik wpisując <adres IP ESP>/temperatury.esp powinna się uruchomić strona taka jak u mnie, strona będzie się odświeżała automatycznie co 2 sekundy (parametr do ustawienia w linii <meta http-equiv="refresh" content="2"> pliku esp).

Strona powinna wyglądać tak:
www.pngMożna ją dowolnie upiększać z odrobiną wiedzy o HTML ale ja na takim widoku zakończę.


Żeby dodać kolejne temperatury trzeba powielić wpis w pliku :
<tr>
<td>GLOWICA : [Glowica#Temperature] *C</td>
</tr>


np:
Kod: Zaznacz cały

<tr>
<td>GLOWICA : [Glowica#Temperature] *C</td>
</tr>
<tr>
<td>Wypellnienie : [Wypelnienie#Temperature] *C</td>
</tr>
<tr>
<td>KEG : [KEG#Temperature] *C</td>
</tr>
Pamiętając, że pobieramy dane z ESP tak jak w przypadku LCD czyli [NAZWA DS#Temperature]

I już! powtarzając kroki dla kilku termometrów spokojnie da się zrobić fajne narzędzie z podglądem online zasilane każdą ładowarką telefoniczną którą ma się w domu lub da się kupić z a tzw 5 zł :D


I już prawie koniec... Ale jeszcze dla najbardziej wytrwałych napiszę kilka słów o sondach.
Osobiście nie jestem przekonany do gotowych sond, kupując gotowca nie wiadomo z czego i jak jest to zrobione, poniżej w kilku punktach pokażę jak zrobić sondy- jeśli użyjesz dobrych/oryginalnych czujników (najlepiej od Polskiego dobrego dystrybutora) i dobrej jakości pasty termoprzewodzącej zrobisz sondy przy których te gotowce "nawet nie leżały" :D

Co potrzebujesz:
Czujniki DS18B20
Gilzy 6mm KO do czujników
przewód do zrobienia sondy- najlepiej jak będzie na wcisk wchodził w gilzę lub z lekkim luzem- ja użyłem chińskiego kabla USB bo taki mi pasował.
zaciskarka do przewodów (kombinerkami lub imadełkiem też pewnie się da)

Jak ja to robię:

1) lutuję czujnik DS do przewodów- już na tym etapie łączę nogi czujnika tak żeby pracował w trybie pazożytniczym i podłączam do dwóch żył przewodu (nie pokażę foto bo słabo wyszło, a już jest sonda zrobiona)

2) do gilzy za pomocą najgrubszej igły z apteki wstrzykuje na końcówkę pastę termoprzewodzącą- nie żałuję pasty, nie przewodzi prądu więc nic elektrycznie nie zbroi. Pasty używam dużo żeby zatopić całą główkę DSa w paście, uważam, że jeśli złoży się sondę bez wypełnienia termoprzewodzącego to będzie między czujnikiem a ścianką gilzy powietrze, a jak wiadomo powietrze jest świetnym izolatorem i czas reakcji naszej sondy radykalnie się wydłuży. Używam pasty Revoltec'a, według mnie jest to jedna z najlepszych past na rynku- wiem co mówię, zajmowałem się naprawą płyt głównych laptopów 6 lat, najlepiej w moich testach revoltec wypadł. Dodatkowa zaleta tej pasty to małe strzykaweczki, jedna wystarcza mi na dwie sondy.




Prawie na koniec foto mojego pająka na którym robiłem tą instrukcję:

IMG_2130.jpgObudowa... Oczywiście to moja bolączka i nie mam jakiegoś gotowego rozwiązania, planuję wydrukować 3d coś- jest teraz wielu "drukarzy 3D" na allegro, może coś się znajdzie.



Brawo- dotrwałeś do końca! mam nadzieję, że się nikt nie zanudził i ktoś coś wyniesie z tego posta....
Jak będą problemy służę pomocą- mam ograniczone zasoby czasowe ale prędzej czy później odpowiem na mail/pytanie.


pozdrawiam

Zmywak

Wielki  za chęci i złożenie tego wszystkiego do kupy, jak tylko ogarnę co trzeba biorę się za budowę takiego termometru. Dzięki wielkie .

Jaś

Powodzenia :)

To bardzo proste więc na pewno się uda!

Wrony

Dzięki, czy udało by się coś skompletować u jednego sprzedawcy? Druga sprawa czy uda mi de to skonfigurować aby działało z aplikacją aabartek ze sklepu play? Głównie zależy mi na kontrolowaniu temperatury na telefonie. W domu mam wifi więc wystarczy że będzie działało w obrębie tej sieci.

Jaś

Dzięki, czy udało by się coś skompletować u jednego sprzedawcy? Druga sprawa czy uda mi de to skonfigurować aby działało z aplikacją aabartek ze sklepu play? Głównie zależy mi na kontrolowaniu temperatury na telefonie. W domu mam wifi więc wystarczy że będzie działało w obrębie tej sieci.

Wilno

Cześć!
Myślę, że da się skompletować u jednego sprzedawcy, w najgorszym wypadku będziesz musiał przylutować konwerter I2C do LCD bo nie wszyscy maja ,w zestawie' LCD + I2C politowane.

Do do aplikacji to nie wiem, sam nie myślę nawet używać aplikacji z neta do prowadzenia procesu, nie wiadomo co ta aplikacja do sieci wysyła i kto monitoruje jej pobranie.
W moim wywodzie jest przykład jak przez WWW się dostać do ESP, pobaw się tym, nie pożałujesz, jako wartość dodana jest opcja podglądu parametrów na każdym urządzeniu w obrębie sieci bez konfiguracji itp- pewnie na TV tez się da jak jest ,SMART'.


Pozdrawiam!

Jaś

To powinno grać ze sobą :)

Zamawiaj- będziesz Pan zadowolony :D

kiwitom

A jak masz rozwiązane zasilanie? Zwyczajny zasilacz 5v czy może jakieś zasilanie bezprzewodowe?

Atomowy_ziomal

A ja bym chciał jakiś kawałek kodu który by mi sprawdzał stan logiczny na jednym z pinów, da się coś takiego wyprodukować?

Jaś

Ma sprawdzić stan i wyświetlić po WWW czy wykonać jakąś funkcje? Tj. Chcesz sprawdzać stan czy kawałek logiki wprowadzić?

pokrec

Sprawdzić czy D8 (pin15) jest 1 czy 0.
Chociaż jak byś miał pomysł na jakąś logikę (alarm) to też by było ciekawe.

gary1984

Przemku kawał dobrej roboty odwaliłeś. Oby więcej takich czarodziejów na naszym forum
Mimo tego, że jestem "analogowy" i przekaźniki nie mają przede mną tajemnic to za taki tutorial kciuki w górę powinny się liczyć razy dwa. Ktoś zapyta dlaczego?
Ano dlatego, że wiedzą którą posiadasz potrafisz się dzielić ... I chwała Ci za to

Jeden z lepszych tutoriali na stronach w sieci jakie widziałem.

Jaś

Jak tylko znajdę chwile czasu to zaktualizuje ten ,tutorial' właśnie o buzzer w fotrmie alarmu- też taką opcje chcę zrobić u siebie.

Jaś

dzięki za słowa uznania, to żadna kosmiczna technologia i tak jak pisałem Ameryki tu nie odkrywam wiec uznaje Teojego posta za przesadzonego choć nie ukrywam, ze bardzo miłego :D


Ps. Jak tylko czas mi na to pozwoli to będą aktualizacje min. o alarm na przekaźniku czy buzzerze.

Dawid

Dzięki wielkie  a słowa uznania nie są przesadzone.
Projekt jest chyba rozwojowy, a gdyby pokusić się zrobić to na płytce? Co ty na to?

Tags: