DS18B20 arduino esp8266

alvaroboven
Posty: 12
Rejestracja: śr lis 06, 2019 8:33 am

sob lis 23, 2019 5:00 pm

Za każdym razem, gdy Internet znika lub zapisać zmiany w supla cloud, przestaje wysyłać mi dane. Z DHT11 i analogiem wszystko idzie dobrze.
Wartość spada do zera. co może się zdarzyć? czy jestem jedyny?
Awatar użytkownika
klew
Posty: 659
Rejestracja: czw cze 27, 2019 12:16 pm

czw lis 28, 2019 9:41 pm

U mnie na Wemos D1 odczyt jest cały czas i nie znika przy tych operacjach.
Rozumiem, że u Ciebie pojawia się wartość "0" na kanale czujnika DS18B20. Ta wartość jest dość nietypowa, bo z tego co pamiętam, DS przy błędzie zwraca -127, a kod przykładów pod Arduino ma ustawione -275 na inne błędne sytuacje.

Wkleisz kod swojej apliakacji? Co aplikacja wysyła na Serial?
Patryk
Posty: 713
Rejestracja: pn sty 07, 2019 7:51 pm

czw lis 28, 2019 10:42 pm

klew pisze:
czw lis 28, 2019 9:41 pm
U mnie na Wemos D1 odczyt jest cały czas i nie znika przy tych operacjach.
Rozumiem, że u Ciebie pojawia się wartość "0" na kanale czujnika DS18B20. Ta wartość jest dość nietypowa, bo z tego co pamiętam, DS przy błędzie zwraca -127, a kod przykładów pod Arduino ma ustawione -275 na inne błędne sytuacje.

Wkleisz kod swojej apliakacji? Co aplikacja wysyła na Serial?
Nie wiem, czy o to chodziło @alvaroboven,
ale taki problem występuje na "oryginalnej" bibliotece SuplaDevice 1.6.1, jeżeli jest podpięte więcej  niż 2 ds-y do jednego esp.
Problem rozwiązuje:
viewtopic.php?p=33218#p33218

Natomiast w softach pisanych pod linuxem  (IOT SDK), dodanie w piku build.sh ostatniej linijki ( z cyfrą 4 lub 8, w zależności od ilości ds-ów):

Kod: Zaznacz cały

FLASH_SIZE="2048" 
FOTA=1 
EXTRA_CCFLAGS="-DSRPC_QUEUE_SIZE=8 -DSRPC_QUEUE_MIN_ALLOC_COUNT=8
Chociaż, tak jak już nie raz pisałem, nie jestem informatykiem i MOGĘ się mylić.
Za co z góry przepraszam.
Awatar użytkownika
klew
Posty: 659
Rejestracja: czw cze 27, 2019 12:16 pm

czw lis 28, 2019 10:47 pm

Patryk pisze:
czw lis 28, 2019 10:42 pm
Nie wiem, czy o to chodziło @alvaroboven,
ale taki problem występuje na "oryginalnej" bibliotece SuplaDevice 1.6.1, jeżeli jest podpięte więcej  niż 2 ds-y do jednego esp.
Problem rozwiązuje:
viewtopic.php?p=33218#p33218
Na boku dostałem informację, że alvaroboven korzysta z aktualnie rozwijanej wersji bibliteki na Arduino. Tam ten problem wielu urządzeń już został usunięty. Choć możliwe, że kompilacje robił na jakiejś starszej wersji, więc jest szansa, że to ten problem.
alvaroboven
Posty: 12
Rejestracja: śr lis 06, 2019 8:33 am

czw lis 28, 2019 10:58 pm

klew pisze:
czw lis 28, 2019 10:47 pm

Na boku dostałem informację, że alvaroboven korzysta z aktualnie rozwijanej wersji bibliteki na Arduino. Tam ten problem wielu urządzeń już został usunięty. Choć możliwe, że kompilacje robił na jakiejś starszej wersji, więc jest szansa, że to ten problem.
Jaka jest najnowsza i najbardziej stabilna wersja? Ponieważ ostatni spowodował problemy z kompilacją
Awatar użytkownika
klew
Posty: 659
Rejestracja: czw cze 27, 2019 12:16 pm

czw lis 28, 2019 11:16 pm

alvaroboven pisze:
czw lis 28, 2019 10:58 pm
klew pisze:
czw lis 28, 2019 10:47 pm

Na boku dostałem informację, że alvaroboven korzysta z aktualnie rozwijanej wersji bibliteki na Arduino. Tam ten problem wielu urządzeń już został usunięty. Choć możliwe, że kompilacje robił na jakiejś starszej wersji, więc jest szansa, że to ten problem.
Jaka jest najnowsza i najbardziej stabilna wersja? Ponieważ ostatni spowodował problemy z kompilacją
Ta wersja na https://github.com/SUPLA/arduino/tree/develop jest "stabilna". Jest to wersja rozwojowa, więc może tam się coś wydarzyć, ale u siebie cały czas mam coś na niej włączone i chodzi bez problemów.

Natomiast projekty w Arduino wymagają aktualizacji i zmian pod nową bibliotekę (dlatego masz u siebie błędy kompilacji).
Na chwilę obencą należy wywalić metody/callbacki związane z obsługą wifi z pliku ino, dodać:

Kod: Zaznacz cały

#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");
Oraz wywalić parametr "mac" przekazywany do SuplaDevice.begin(...)

Z tym, że w tej bibliotece niewiele było zmieniane pod kątem obsługi sensorów/termometrów. Jedyna poprawka, która mogłaby tutaj mieć wpływ, to ta, która poprawia zachowanie przy kilku czujnikach.
Wydaje mi się, że poniższa wersja zawiera tą poprawkę oraz powinna jeszcze działać na starych programach do arduino bez zmian w kodzie:
https://github.com/SUPLA/arduino/tree/a ... uplaDevice
alvaroboven
Posty: 12
Rejestracja: śr lis 06, 2019 8:33 am

czw lis 28, 2019 11:49 pm

klew pisze:
czw lis 28, 2019 11:16 pm
alvaroboven pisze:
czw lis 28, 2019 10:58 pm
klew pisze:
czw lis 28, 2019 10:47 pm

Na boku dostałem informację, że alvaroboven korzysta z aktualnie rozwijanej wersji bibliteki na Arduino. Tam ten problem wielu urządzeń już został usunięty. Choć możliwe, że kompilacje robił na jakiejś starszej wersji, więc jest szansa, że to ten problem.
Jaka jest najnowsza i najbardziej stabilna wersja? Ponieważ ostatni spowodował problemy z kompilacją
Ta wersja na https://github.com/SUPLA/arduino/tree/develop jest "stabilna". Jest to wersja rozwojowa, więc może tam się coś wydarzyć, ale u siebie cały czas mam coś na niej włączone i chodzi bez problemów.

Natomiast projekty w Arduino wymagają aktualizacji i zmian pod nową bibliotekę (dlatego masz u siebie błędy kompilacji).
Na chwilę obencą należy wywalić metody/callbacki związane z obsługą wifi z pliku ino, dodać:

Kod: Zaznacz cały

#include <supla/network/esp_wifi.h>
Supla::ESPWifi wifi("your_wifi_ssid", "your_wifi_password");
Oraz wywalić parametr "mac" przekazywany do SuplaDevice.begin(...)

Z tym, że w tej bibliotece niewiele było zmieniane pod kątem obsługi sensorów/termometrów. Jedyna poprawka, która mogłaby tutaj mieć wpływ, to ta, która poprawia zachowanie przy kilku czujnikach.
Wydaje mi się, że poniższa wersja zawiera tą poprawkę oraz powinna jeszcze działać na starych programach do arduino bez zmian w kodzie:
https://github.com/SUPLA/arduino/tree/a ... uplaDevice
Nie mogę zainstalować żadnej zalecanej biblioteki. Gdy robię to ręcznie, kompilacja kończy się niepowodzeniem.

Nie mam czujników podłączonych bezpośrednio do ESP8266, ale do mega arduino. Poprzez protokół I2C wysyłam je do esp8266, tam otrzymuję informacje poprawnie i dopóki nie zmienię czegoś w Supla Cloud lub utracę sygnał Wi-Fi, działa idealnie. Również gdy jest włączony przez długi czas, czasami wartość DS18B20 spada do zera, podczas gdy DHT22 idzie idealnie. :? :?
Awatar użytkownika
klew
Posty: 659
Rejestracja: czw cze 27, 2019 12:16 pm

czw lis 28, 2019 11:57 pm

A odczyty po stronie Arduino są wtedy poprawne?
alvaroboven
Posty: 12
Rejestracja: śr lis 06, 2019 8:33 am

pt lis 29, 2019 12:04 am

Tak, idealnie. Błąd polega na „po prostu” wysłaniu go.
alvaroboven
Posty: 12
Rejestracja: śr lis 06, 2019 8:33 am

pt lis 29, 2019 12:38 am

Odkryłem, że jeśli przypiszę stałą do zmiennych globalnych, problem DS18B20 zostanie rozwiązany. Ale jeśli wstawię tę wartość do void loop (); problem pojawi się ponownie, tymczasem otrzymuję obie wartości dht w pętli void ();
ODPOWIEDZ