Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Fibaro Fibaro
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl

TechEkspert 09 Lip 2017 10:45 6180 40
  • Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl
    W gadżetach elektroda.pl niebawem ponownie pojawi się moduł oparty o ESP8266-12E tym razem będzie to NodeMCU Amica.
    Po umieszczeniu poprzedniej części materiału: Moduł D1 mini - ESP8266 WIFI pojawiły się pytania w jaki sposób podłączyć czujnik temperatury DS18B20 komunikujący z wykorzystaniem cyfrowej magistrali 1-wire. W porównaniu do analogowego TMP36 na magistrali 1-wire może pracować kilka czujników. Warto zwrócić uwagę na długość (pojemność) linii 1-wire i dość długi (750ms) czas odczytu przy maksymalnej (12b) rozdzielczości pomiaru temperatury. Linię magistrali 1-wire podciągniemy do zasilania 3.3V rezystorem 4.7kom.

    Instrukcja użytkowania modułu z LUA znajduje się jako warstwa opisowa na płytce Amica:
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl
    Wykorzystamy aktualną wersję środowiska Arduino 1.8.3 pobraną z www.arduino.cc dokładny opis sposobu przygotowania środowiska Arduino do pracy z ESP8266 oraz kilka przykładowych kodów znajdziecie w poprzedniej części materiału Link.
    Moduł NodeMCU wykorzystuje konwerter USB-UART CP2102 dzięki czemu w Windowsach od 8.1 sprzęt zostanie zainstalowany automatycznie. W skrócie dostosowanie środowiska Arduino do współpracy z NodeMCU Amica wygląda tak:
    -Plik->Preferencje->Dodatkowe adresy URL do menadżera płytek - wklejamy: http://arduino.esp8266.com/stable/package_esp8266com_index.json
    -Narzędzia->Płytka->Menadżer Płytek-> i wyszukujemy "nodemcu" a następnie instalujemy paczkę ESP8266.




    -Po podłączeniu modułu Amica do portu USB w systemie powinien pojawić się nowy port szeregowy.
    -Narzędzia->Płytka->NodeMCU 1.0 oraz Narzędzia->port i wybieramy port com konwertera USB<->UART.
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl
    Biblioteki znacznie ułatwią napisanie kodu:
    Szkic->dołącz bibliotekę->zarządzaj bibliotekami wyszukujemy "ds18b20" oraz wybieramy bibliotekę DallasTemerature https://github.com/milesburton/Arduino-Temperature-Control-Library,, i instalujemy. Podobnie instalujemy bibliotekę "OneWire" https://www.pjrc.com/teensy/td_libs_OneWire.html..
    Biblioteki pozwalają na odczytywanie temperatury z wielu czujników DS18B20 podłączonych do różnych linii 1-wire na różnych pinach modułu lub kilku czujników temperatury na jednej wspólnej magistrali. Warto zajrzeć do przykładowych kodów dołączonych wraz z bibliotekami.

    Termometr przewodowy.
    Na początek spróbujmy odczytać dane z podłączonych czujników DS18B20 i przesłać wyniki poprzez konsolę szeregową, wyniki można obserwować uruchamiając Narzędzia->Monitor portu szeregowego. Kolejne urządzenia znalezione na magistrali 1-wire zostaną powiązane z kolejnymi indeksami. Po uruchomieniu programu w konsoli szeregowej zobaczycie adresy czujników znalezionych na magistrali. We własnym zakresie możecie zmodyfikować kod np. tak aby czujnik o określonym adresie zawsze posiadał stały indeks, wtedy podłączenie nowych czujników nie spowoduje zmiany kolejności odczytywanych danych jednak będzie wymagało wstępnej konfiguracji.

    Sposób podłączenia modułu NodeMCU Amica:
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl
    a tak to wygląda na poprzednio dostępnym module D1 mini (na drugim zdjęciu moduł D1 leży na płytce, nie jest z nią bezpośrednio połączony):
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl

    Przykładowy kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Termometr WiFi ThingSpeak.
    Dodajemy bibliotekę ThingSpeak, wykorzystując kod z poprzedniej części materiału łatwo prześlemy wyniki pomiaru temperatury przez czujniki DS18B20 na pola kanału założonego na https://thingspeak.com . W efekcie będziemy mogli obserwować w przeglądarce internetowej zmiany wartości pomiarów temperatury:
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl

    Przykładowy kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Termometr WiFi Blynk.
    Wykorzystanie Blynk pozwoli na obserwację zmian temperatury w konfigurowalnej aplikacji na smarfton/tablet z Android/iOS. Dodajemy bibliotekę Szkic->dołącz bibliotekę ->zarządzaj bibliotekami wyszukujemy i instalujemy bibliotekę blynk, oraz instalujemy aplikację Blynk na smartfonie, więcej informacji w poprzedniej części materiału. W aplikacji widoczne są dane przesyłane przez ESP8266:
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl

    Przykładowy kod:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    W odróżnieniu do poprzedniego materiału wykorzystujemy tutaj wirtualne linie V1, V2 ... Vx dla kolejnych czujników na magistrali, timer uruchamia co 10s przesyłanie informacji z ESP8266 do blynk, dlatego w aplikacji wybieramy metodę odświeżania "push" gdyż sami decydujemy kiedy zostanie wysłana informacja z modułu.

    Na zakończenie warto powrócić do funkcji oszczędzania energii i wykorzystać przedstawioną ostatnio funkcję:
    ESP.deepSleep(300000000); //300s uśpienia i reset przez RTC
    która znacząco zredukuje moc pobieraną przez ESP8266 a po połączeniu wyprowadzenia D0 z RST pozwoli na zresetowanie modułu przez RTC po zadanym czasie i ponowne wykonanie kodu wysyłającego dane.

    Do czego wykorzystacie moduł NodeMCU Amica z ESP8266?

    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl


    Fajne!
  • Fibaro
  • #2 11 Lip 2017 19:14
    TechEkspert
    Redaktor
  • #3 14 Lip 2017 22:45
    siewcu
    Poziom 32  

    Jaką częstotliwość odświeżania można realnie uzyskać po wifi? Nie będzie to rzeczywisty odczyt co sekundę(przy najwyższej rozdzielczości, która sensu nie ma w moim przypadku), ale zastanawiam się do jakich opóźnień można zejść... Taka myśl mnie naszła, zanim uda się kupić i podłączyć wyświetlacz.

  • Fibaro
  • #4 15 Lip 2017 09:20
    TechEkspert
    Redaktor

    Myślę że po stronie urządzenia częstotliwość odświeżeń pomiaru wyznacza właśnie DS18B20,
    po stronie sieciowej jeżeli dane trafiałby po Wi-Fi poprzez router np. do smartfona i wszytko było w jednej podsieci mówimy pewnie o opóźnieniach rzędu kilku-kilkunastu ms między wysłaniem danych a ich odebraniem,
    jeżeli dane będą wędrować poprzez sieć WAN w zależności od rodzaju łącz i ilości przeskoków może to być kilkadziesiąt do ~100ms,
    natomiast w modelu chmurowym czyli: urządzenie wysyła dane do chmury, chmura przetwarza, urządzenie prezentujące dane odczytuje przetworzone dane podejrzewam że opóźnienie może dochodzić nawet do sekundy (lub kilku), dodatkowo w przypadku darmowych rozwiązań chmurowych należy liczyć się z ograniczeniem częstotliwości przesyłania komunikatów w niektórych przypadkach komunikat można przesyłać nie częściej niż co kilkadziesiąt sekund.
    Wszytko ma swoje wady i zalety, ale ważne że jest wybór i można dopasować do potrzeb.

  • #5 15 Lip 2017 18:17
    siewcu
    Poziom 32  

    Raczej chodzi o połączenie między urządzeniem a telefonem wewnątrz sieci LAN w domu, najchętniej przez router ale i bezpośrednio do urządzenia mogłoby to działać. Potrzebuję po prostu w miarę dokładnego termometru do pomiaru temperatury wody(wyczytałem, że DS18B20 jest wodoodporny), gdzie punktem wyjścia będzie aplikacja z tego tematu, a potem sobie jakoś to rozbuduję, żeby się czegoś nauczyć. Chodzi tylko o to, żeby pomiar był w miarę szybki i w miarę dokładny ;) i rozchodzi się tylko o to, jakie będzie realne opóźnienie, jeśli chciałbym mierzyć temperaturę w czasie rzeczywistym.

    A tak jeszcze dorzucę do końcówki 1 postu... Do czego bym wykorzystał? Pomysłów milion :) Najpierw do tego wyświetlacz, a potem... Sterowniki do ekspresu do kawy(jeden do regulacji temperatury, drugi kompletny), urządzenie do pomiaru czasu przyśpieszenia i przeciążeń oparte na GPS i akcelerometrze(które można podłączyć), gniazdko sterowane wifi... I pewnie o czymś zapomniałem ;)

  • #6 15 Lip 2017 19:06
    TechEkspert
    Redaktor

    @siewcu jeżeli uda się coś zrealizować to warto to zaprezentować na elektroda.pl
    Opóźnienie w sieci LAN będzie minimalne (milisekundy), co do częstotliwości pomiarów szybszy niż DS18B20 może być analogowy odczyt z czujnika np. TMP36 czy LM35.
    Jeżeli całość operacji ma się odbywać z pominięciem internetu to warto zajrzeć tutaj: Arduino + ESP8266 + Czujniki | Wykresy na stronie WWW i podłączyć się do tematu lub go rozwinąć.

  • #7 15 Lip 2017 19:26
    siewcu
    Poziom 32  

    Jeśli się uda to na pewno to zaprezentuję. Wszystko jednak zależy od finansów i ilości wolnego czasu - jak by nie patrzeć, wyświetlacz kosztuje ponad stówę, ceny modułu GPS 10 Hz i akcelerometru też niskie nie są... Jedyne co może być proste to sterowanie przekaźnikiem lub podłączenie termometru do sterowania ekspresem do kawy, jednakże to i tak przydałoby się wyświetlić na wyświetlaczu. Zobaczę jak się rozwinie temat, chcę to wykorzystać do nauki, najpierw dla siebie, w przyszłości może nawet finansowo - choć w to wątpię. Zapomniałem też wspomnieć o urządzeniu pomiarowym do samochodów, które miałoby mierzyć temperatury oleju, płynu chłodniczego, powietrza dolotowego, spalin, do tego ciśnienie oleju i w kolektorze ssącym, może rozbudowany kontroler doładowania i wszystko wyświetlane na LCD - choć z tym mnie ostro fantazja poniosła, bo nawet nie sprawdziłem, czy ta płytka będzie w stanie przetworzyć tyle informacji i obsłużyć aż tyle czujników + wyjście na wyświetlacz i sterowanie zaworem od ciśnienia doładowania(2 piny, cewka) oraz termoparę typu K. Jak to mówią, do odważnych świat należy - jak przyjdzie, trzeba działać :)

  • #8 15 Lip 2017 19:38
    gulson
    Administrator Systemowy

    Niestety po niecałym tygodniu skończyły się zestawy z ESP8266. Pod koniec lipca pojawią się ESP32.
    Zachęcamy do publikowania opinii o zestawie, dajcie też znać jak się sprawdza gratis w postaci linijki PCB.

  • Fibaro
  • #9 17 Lip 2017 20:00
    siewcu
    Poziom 32  

    Czy jest możliwość wrzucenia jakiegoś innego zdjęcia jak jest podłączony czujnik? Kupiłem sobie płytkę prototypową, ale nie do końca wiem jak to podłączyć... I nie wiem czy dobrze widzę tam jakieś tranzystory, zbyt dawno miałem kontakt z elektroniką, żeby złożyć takie coś samemu :(

  • #10 18 Lip 2017 12:54
    deksta84
    Poziom 24  

    Dzisiaj otrzymałem zestaw. Otwory w linijce przydadzą się w poprawianiu pisakiem punktów lutowniczych. Stopniowym kątomierzem można jedynie coś zmierzyć. Noniusz milimetrowy i calowy są całkiem dokładne. Nie zauważyłem znaczących odchyłek przykładając suwmiarkę (dz. 0,05mm) na długości 140mm. Natomiast długopis "suwmiarka", hm, noniusz ruchomy niszczy system połączeń nerwowych :D

  • #11 18 Lip 2017 13:10
    tronics
    Poziom 35  

    Oj tam, mnie długopisy się na tyle często "zawieruszają" że zawsze chętnie przyjmuję nowy ;) Suwmiarka to raczej ozdoba ewentualnie "wskaźnik" bo z pewnością nie "miernik". Linijka fajnie wygląda i jest nawet funkcjonalna :D

  • #12 18 Lip 2017 19:33
    TechEkspert
    Redaktor

    @siewcu te elementy przypominające tranzystor to dodatkowe czujniki DS18B20.
    Jest to pokazanie że na cyfrowej magistrali 1-wire może pracować kilka czujników jednocześnie.
    Jeżeli posiadasz jeden czujnik, który był w zestawie możesz to zignorować.
    Poniżej zdjęcie, które powinno być bardziej czytelne, jest tam podłączony (żółty przewód) jeden czujnik do portu D4 (magistrala 1-wire).
    Czujnik zasilany jest z 3.3V (czerwony przewód), oraz podłączony do GDN (czarny).
    Między 3.3V a wyprowadzenie D4 włączony jest rezystor 4.7kom.
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl

    Jeżeli pojawią się jeszcze jakieś pytania to pisz śmiało.

  • #13 18 Lip 2017 20:23
    siewcu
    Poziom 32  

    Generalnie chodzi o to, że nie miałem nigdy do czynienia z płytką prototypową, podłączyć by dało radę ale zabrakło info, co do czego podłączyć. Gdyby było, że czerwony do 3,3 V, czarny do GND, żółty do D4 + 4,7k ohm między 3,3 V a D4 to by było prościej ogarnąć komuś takiemu jak ja, który z tym nigdy nie miał styczności ;) A od czegoś trzeba zacząć przecież :) Jak załapię bakcyla to pewnie powrzucam jakieś projekty, następna w kolejce(po DS18B20) jest termopara, no ale z tym to do wypłaty trzeba poczekać :(

  • #14 18 Lip 2017 21:12
    tronics
    Poziom 35  

    Termopary tak łatwo nie podłączysz ze względu na nikłą wydajność prądową i wymagania stosunkowo dużej czułości rzędu dziesiątek uV. Lepiej użyć dedykowany układ.

  • #15 18 Lip 2017 21:46
    R-MIK
    Poziom 38  

    Do termopary najwygodniej użyć dedykowanego układu. Niestety trzeba wydać 10..20zł ale w zamian za to zero problemów np kompensacji zimnego końca.

  • #16 18 Lip 2017 22:10
    siewcu
    Poziom 32  

    Nie bezpośrednio przecież ;) Wątpię, że to by się udało, ale można ją bezproblemowo podłączyć przez MAX6675, wygrzebałem w internecie. Chodziło tylko o wyświetlenie wyników na wyświetlaczu, który po wypłacie kupię ;) ale nie bezpośrednie podłączenie termopary do NodeMCU.

    EDIT: A się pochwalę... Skopiowałem kod do Blynk, uruchomiłem - działa! Zmieniłem tylko odświeżanie na dużo szybsze, podgrzałem lekko DS18B20 zapalniczką i ładnie działa :) Na weekend test bojowy w prawie docelowym zastosowaniu tej konfiguracji, czyli pomiar temperatury wody w czajniku :)

  • #17 19 Lip 2017 17:58
    TechEkspert
    Redaktor

    @siewcu cieszę się że udało Ci się uruchomić moduł, dalsze eksperymenty także warto zaprezentować, jeżeli uda się uruchomić coś "produkcyjnego" to można wrzucić np. do DIY lub DIY poczekalnia.

    Jeżeli ktoś uruchomi załączone kody dla większej ilości "równolegle" połączonych DS18B20, to proszę o informację dla ilu czujników (lub na jakiej długości przewodu udało się zachować prawidłowe odczyty). Testowałem na max. 3 czujnikach i dość krótkim ~1m przewodzie.

  • #18 19 Lip 2017 20:43
    siewcu
    Poziom 32  

    Pochwalę się na pewno, póki co brak budżetu na jakieś skomplikowane zabawy - jedyne co znalazłem względnie tanio to wyświetlacz i moduł przekaźnika, ale i tak najpierw muszę się nauczyć i pisać programy, i obsługiwać płytkę prototypową - wczoraj dosyć długo myślałem jak to zrobić ;) No i dokupić przewody, bo nie zauważyłem, że w zestawie nie ma M-Ż...

    A jeszcze jedno, bo nie mogę w necie wykopać - da się do tego podłączyć czujnik z wyjściem napięciowym?

    EDIT: To znalazłem. Pytanie tylko jakie jest maksymalne napięcie wejściowe z tego czujnika - 1 V czy 3,3 V? Były różne wersje z tego co znalazłem.

  • #19 20 Lip 2017 16:43
    zdzisiek1979
    Poziom 36  

    To wszystko dla mnie czarna magia.
    Jaki program pobrać by można było pobawić się tą " płytką ".

    Mam Windows7
    Bardziej lubię bawić się technika analogową a programy kody systemy mnie przerażają.

    Jak by ktoś mógł podać link do programu jaki pobrać to bym był wdzięczny.


    Zaś czytam i motam się.

    Gniazdo mikro USB służy do zasilania i do zaprogramowania? A potem po wszystkim można komunikować się przez WiFi ?

    Sorki ale jestem za głupi na takie technologie :D

  • #20 20 Lip 2017 17:37
    drobok
    Poziom 24  

    @post wyżej, masz arduino ide na https://www.arduino.cc/download_handler.php?f=/arduino-1.8.3-windows.exe w wersji dla windows, a dla innych zakłądka software/i niżej arduino ide

    Też się na w/w układzik załapałem, co prawda myślałem że to sam esp - miła niespodzianka, jakoś nigdy nie byłem przekonany do arduino ;P Ale nikt nie broni się pobawić, potestuje zestaw jak będę miał chwilę ;)

    ps. linijka - bajka ;)

  • #21 20 Lip 2017 17:37
    TechEkspert
    Redaktor

    @zdzisiek1979 do pierwszych prób z płytką możesz wykorzystać zgodnie z opisem w pierwszym poście środowisko arduino: www.arduino.cc
    USB może służyć zarówno do zasilania jak i komunikacji (na płytce znajduje się konwerter USB<->UART i po podłączeniu płytki w systemie pojawi się dodatkowy port COM, poprzez ten port z poziomu środowiska arduino można zaprogramować płytkę a także odbierać komunikaty z programu działającego na ESP8266).
    Realizacja połączenia WiFi jest bardzo prosta z wykorzystaniem gotowych bibliotek a pobór mocy mały.
    Warto spróbować swoich sił i zacząć od nawet bardzo prostych programów aby "poczuć temat".

    @drobok jeżeli Arduino już Ci się znudzi lub będzie ograniczało można potestować LUA na ESP8266.

  • #22 20 Lip 2017 19:09
    siewcu
    Poziom 32  

    zdzisiek1979, bardzo prosta - idąc dwoma opisami z tego forum, zrobiłem sobie "aplikację" na androida/iphone wyświetlającą odczyty z DS18B20, śmigającą po wifi. Aplikacja Arduino, biblioteki podane w dwóch postach, kod na zasadzie kopiuj-wklej i działa :)

  • #23 20 Lip 2017 22:26
    zdzisiek1979
    Poziom 36  

    No to tak panowie.
    Tak zrozumiałem to mniej więcej.
    Zainstalowałem "http://arduino.esp8266.com/stable/package_esp8266com_index.json" ten link w preferencjach do menadżera płytek. Zainstalowałem potem nowe płytki.
    Mam tak.
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl
    Ale nie wiem jaki port wybrać. Nie ma portu USB. Mam porty COM ale nie USB.

    Utknąłem na tym. Nie wiem co dalej ustawić.

    Po podłączeniu kabelkiem USB tylko mignie LED niebieski na module WiFi i nic się nie dzieje z instalowaniem.

  • #24 20 Lip 2017 22:50
    Marek_Ertew
    Poziom 15  

    Lista portów wygląda poprawnie. Win nazywa wszystkie porty szeregowe jako COMxx, poprawnie wykryta przejściówka USB->RS (wbudowana w moduł) dostanie kolejny numer portu COM i tyle.
    Dla porównania na Linuksie porty nazywają się ttyUSBx, ttySx i odpowiednio inaczej dla bluetooth, ...

    Odrębna sprawa czy zainstalowałeś sterowniki do konwertera USB->RS wbudowanego w moduł. Zgodnie z pierwszym postem, powinieneś poszukać sterowników do CP2102, ewentualnie CH340 jeśli taki układ masz na swojej płytce.

  • #25 20 Lip 2017 22:59
    siewcu
    Poziom 32  

    Nie trzeba instalować sterowników. Wejdź sobie w Menedżera Urządzeń, jak będziesz miał odpiętą płytkę i poszukaj sekcji Porty COM i LPT. Jeśli jej nie będzie, lub nie będzie nic(nie pamiętam jak to działa bo zawsze coś tam mam) - lub będzie a kolejne pojawi się po podłączeniu płytki - to to masz wybrać. U siebie mam ustawione tak jak Ty, plus odpowiedni port COM - i programuje bez problemów :)

  • #26 20 Lip 2017 23:52
    zdzisiek1979
    Poziom 36  

    Nic z tego. Nie wykrywa portu wiec zainstalowałem sterownik z tej strony Link rozpakowałem zainstalowałem wersję x64 i nic żaden port nie zainstalował się wszystko mam jak miałem.
    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl
    Niezależnie czy włożę kabel USB czy nie nic to nie zmienia.

  • #27 21 Lip 2017 00:21
    siewcu
    Poziom 32  

    Hm, dziwne. Ja u siebie podłączyłem i ruszyło od razu...

  • #28 21 Lip 2017 00:29
    zdzisiek1979
    Poziom 36  

    Zainstalowałem sterownik i nic się nie wyświetla a komunikat mam że się zainstalował dwa razy spróbowałem i było z instalatorem OK.
    Zresetowałem komputer i nic.

    Dobra zagadka rozwiązana. Kupiłem kabelek mikro USB i tylko podaje zasilanie a nie sygnały. Wewnętrzne piny wiszą w powietrzu przedzwoniłem go i niestety. Zmieniłem kabelek i wszystko się widzi. Jutro idę z reklamacja :D

    Termometr WiFi - ESP8266 + DS18B20 niebawem w gadżetach elektroda.pl

    Ech ... :|

  • #29 22 Lip 2017 18:35
    gulson
    Administrator Systemowy
  • #30 23 Lip 2017 00:13
    zdzisiek1979
    Poziom 36  

    Jestem zadowolony choć technologia mnie przerosła :D
    Ale tak czy siak najbardziej jestem zadowolony z mojego pierwszego gadżetu jaki pozyskałem z e. to znaczy z bluzy :D mam do tej pory.

TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo