niedziela, 23 października 2016

ESP8266 - następca Arduino - cz 2

Nie wszystko z górki .... problemy z biblioteką <DS18B20.h>


Własna płytka adaptera z modułem ESP-07 śmiga aż miło. Na razie tylko z programem bazowym. Po początkowych schodach z zawieszaniem się transmisji WiFi (patrz poprzedni post) ostateczne rozwiązanie w postaci chwilowego uśpienia procesora całkowicie wyeliminowało  problem.
Możemy przejść do eksperymentu nr 2 - instalacji kompletnego programu MIS w ESP8266. Pominę oczywiście charakterystyczne dla Arduino sposoby logowania do WiFi i BLYNK oraz procedury testowania komunikacji. Pozostawię te z programu bazowego dla ESP.

Przekopiowanie całego programu poszło gładko - pierwsza kompilacja - i oczywiście problem. Kompilator wypluwa  serię komunikatów o błędach - dotyczą one problemu ze znalezieniem pliku

C:\Dane\Arduino\esp_new\libraries\DS18B20/DS18B20.h:6:26: fatal error: avr/pgmspace.h: No such file or directory

 #include <avr/pgmspace.h>


Szybka kwerenda po kilku blogach - rzeczywiście jest coś na rzeczy z ze standardową biblioteką Arduino DS18B20.h do obsługi czujnika temperatury. Jednak na każdym proponują inny sposób rozwiązania problemu, który sprowadza się do grzebania w bibliotekach źródłowych Arduino IDE. Nie pałam chęcią mieszania w plikach źródłowych  szczególnie, że jak piszą nie zabezpiecza on przed problemami na przyszłość gdy wgrywa się nowszą wersję IDE.

Pozostaje więc poszukać innej biblioteki do obsługi DS18B20. Pierwsza nawinęła się biblioteka DallasTemperature.h   ktorą zamiast zainstalować w Arduino IDE tradycyjnie dodałem do folderu libraries   w katalogu z programami .ino.

Pierwsze  wrażenie z analizy przykładów nie jest zachęcające - obsługa czujnika wygląda na bardziej złożoną niż w bibliotece DS18B20 wiec trzeba będzie co nieco zmienić w programie. W przykładzie nie widać też nigdzie miejsca do wprowadzenia kodu czujnika - jedyną zmienną jest nr portu z przyłączonym czujnikiem. Czyżby program był genialny i  sam szukał i obsługiwał czujnik bez początkowego wprowadzenia adresu czujnika?

Program DEMO dla Dallas wygląda tak


Na próbę uruchamiam przykład z tej biblioteki na płytce BRAMA3 - tu mam pewność, że czujnik jest sprawny i znam jego kod. A  tak wynik działania programu

 




I pięknie. Pozostaje sprawdzić czy biblioteka jest akceptowana przez kompilator dla płytki ESP
JEST!!!
Problem można uznać za rozwiązany i to z dodatkowymi bonusami. Biblioteka Dallas pozwala
- w pełni kontrolować parametry pomiarowe czujnika i to w układzie z wielokrotnymi czujnikami na tym samym porcie
- sama odszukuje adres czujnika
- działa pod ESP8266
Wchodzi wiec do pakietu stałych bibliotek.

Pozostaje mi tylko obudować moduł ESP dodatkowymi elementami (nadajnik/odbiornik 433 MHz, czujnik DS18B20 i transoptor do sterowania pilotem) i zobaczymy jak ESP poradzi sobie z całym programem inteligentnego domu


Więc czekamy na cd......

Brak komentarzy:

Publikowanie komentarza