Termometr ESP Tutorial
: sobota, 12 sty 2019, 00:20
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":
Wejdź przez przeglądarkę na ESP-> zakładka DEVICES-> przy Task'u 1 kliknij "EDIT"
pojawi 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.
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:
Ż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:
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".
Po 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:
i mam taki efekt:
Jeś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:
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:
Moż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:
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ł
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"
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.
poniżej foto:
3) Zaciskam gilzę na przewodzie zaciskarką elektryczną, dobrze sprawdza się zaciskarka do BNC, daje takie ładne wykończenie, po elektrycznej nie będzie "profesjonalnego i ładnego zaciśnięcia":
4) na koniec wystarczy dolutować złącze do sondy:
Teraz już tylko gniazdo i podłączenie do ESP. Ja wybrałem 5.5x2.5 dlatego, że jest to tanie i dostępne, będę miał jeden długi kabel na którym w odpowiednich miejscach założę gniazda i wepnę się sondami, do tego gniazdo w obudowie do którego podłączę całą linię z DS'ami.
Prawie na koniec foto mojego pająka na którym robiłem tą instrukcję:
Obudowa... 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
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":
Wejdź przez przeglądarkę na ESP-> zakładka DEVICES-> przy Task'u 1 kliknij "EDIT"
pojawi 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.
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:
Ż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:
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".
Po 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:
i mam taki efekt:
Jeś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>
<br><br>
<center><b><i>" Moj termometr ESP !!! "</i></b></center>
<br><br>
<table cellpadding="0" cellspacing="3">
<tr>
<td>GLOWICA : [Glowica#Temperature] *C</td>
</tr>
</body>
</html>
Strona powinna wyglądać tak:
Moż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>
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ł
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"
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.
poniżej foto:
3) Zaciskam gilzę na przewodzie zaciskarką elektryczną, dobrze sprawdza się zaciskarka do BNC, daje takie ładne wykończenie, po elektrycznej nie będzie "profesjonalnego i ładnego zaciśnięcia":
4) na koniec wystarczy dolutować złącze do sondy:
Teraz już tylko gniazdo i podłączenie do ESP. Ja wybrałem 5.5x2.5 dlatego, że jest to tanie i dostępne, będę miał jeden długi kabel na którym w odpowiednich miejscach założę gniazda i wepnę się sondami, do tego gniazdo w obudowie do którego podłączę całą linię z DS'ami.
Prawie na koniec foto mojego pająka na którym robiłem tą instrukcję:
Obudowa... 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