Kurs ESP8266: Obsługa czujnika DS18B20

4. Podstawowe funkcje

Pierwszą funkcją od jakiej zaczniemy to :

zamiast t, możemy podstawić inną zmienną. funkcja require() żąda odczytu z modułu (czyt. biblioteki). W naszym przypadku, odnosimy się do biblioteki ds18b20. Zatem żądanie odczytu przypisujemy do zmiennej t.

t.setup() określa, na którym pinie będzie podłączony czujnik DS18B20, w naszym przypadku będzie do gpio3

Tak właściwie to wszystko, teraz możemy dokonać odczytu danych z czujnika. Są na to dwa sposoby:

Pierwszy:

Domyślnie jest to dla podłączonego tylko jednego czujnika i domyślną jednostką pomiaru są stopnie Celsjusza. W momencie, gdy chcemy skorzystać z większej ilości czujników, albo chcemy odczytywać inną jednostkę to musimy zastosować drugi sposób:

Jeżeli chcemy się dowiedzieć, ile jest podłączonych czujników to korzystamy z funkcji poniżej:

To już wszystkie udostępnione funkcje tej biblioteki. Nie jest ich dużo, ale moim zdaniem czujnik nie jest skomplikowany i oprócz pomiaru temperatury nic więcej nie robi także funkcji jest wystarczająca ilość.

5. Przykład 1.: Odczyt temperatury z dwóch czujników po UART

przyklad1-schemat

 

Po lewej stronie przykład połączenia dla ESP-01, a po prawej dla NodeMCU v1/2. Na samym początku wgrywamy bibliotekę dla czujnika. Teraz przechodzimy do programu głównego:

W pierwszej linii programu żądamy odczytu z modułu ds18b20, w następnej przypisujemy pin3 jako GPIO0. Teraz przypisujemy pinowi 3 odczyt z czujnika i zaczynamy funkcję odczyt().

zmiennej addrs, przypisujemy odczyt adresu czujnika. W kolejnej linii sprawdzamy czy wartość tej zmiennej jest różna od nil. Jeżeli tak to zwraca ilość podłączonych czujników. W linii poniżej wykonujemy wysłania na UART wartości z czujnika, zaznaczając, że ma być to wartość w stopniach Celsjusza. Kolejna linia sprawdza, czy ilość podłączonych czujników jest większa/równa 2. Jeżeli tak to dokonujemy odczytu temperatury z drugiego czujnika i wysyłamy na UART. Kończymy funkcję linią end, a sam program kończymy timerem, który to będzie powtarzał program co 1,5 sekundy. Po wgraniu programu powinniśmy otrzymać takie odczyty z UART:

przyklad1-efekt-koncowy

6. Przykład 2.: Odczyt temperatury z dwóch czujników przez serwer WWW

Schemat jest taki sam jak dla przykładu powyżej.

Na samym początku definiujemy pod jakim portem będzie funkcjonował serwer oraz z jakiego pinu będziemy korzystać do podłączenie czujnika. Teraz konfigurujemy połączenie z siecią Wi-Fi. W funkcji sprawdz(), sprawdzamy co 5 sekund ile czujników jest podłączonych do ESP8266, co w przyszłości wykorzystamy do wyświetlania po stronie serwera odpowiedniej ilości czujników. Po tej funkcji konfigurujemy nasz serwer, a następnie dodajemy parę prostych linijek wyświetlających nagłówek strony, odczyt z czujnika 1 oraz opcjonalnie odczyt z drugiego czujnika, jeżeli ilość czujników jest większa/równa 2. Następnie zamykamy połączenie. Po wgraniu programu powinniśmy otrzymać taki efekt jak na filmie poniżej:

7. Podsumowanie

Po tej części kursu, odczyt temperatury z czujnika nie powinien sprawiać Ci większych problemów. Ponadto, będziesz umiał/a wysyłać dane z czujnika na specjalnie postawiony serwer WWW :)

Materiały do tej części kursu:

Download-icon

 


Jeżeli chcesz być informowany na bieżąco o nowościach ze strony to kliknij ?Lubię to!? bądź subskrybuj naszą stronę, aby otrzymywać na adres e-mail nowości ze strony. Jeżeli masz jakieś pytania to śmiało zadawaj je na forum ; )