DS18B20

User avatar
klew
Posts: 11107
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

MaG wrote: Thu Nov 30, 2023 12:28 pm To nie jest tak jak piszesz
To jest tak jak piszę, tylko zrozumiałeś to inaczej niż napiasłem :P
Ja pisałem do krycha88, jak to jest zrobione w supla-device.
Implementacja DS-ów w GG jest odrębna i Ty testujesz i opisujesz to co robi krycha88 w GG, a ja pisałem, jak to było zrobione gdzieś indziej :)

(odnośnie czasu 750 ms/0,9s/1s - to pisałem z pamięci, także tutaj 100% racji)
MaG
Posts: 65
Joined: Wed Oct 25, 2023 10:08 pm

Post

OK, to może źle zrozumiałem.

Przetestowałem, jest lepiej, ale jeszcze nie jest idealnie :)

Coś nie tak jest z czasami.
po inicie jest start pomiaru, następnie po czasie jeden odczyt, i to jest OK
Niestety z czasami pomiędzy startem pomiaru a odczytem coś się dzieje.
kolejne czasy (kolejne pomiary od restartu procka)
1,58s
0,767s
1,52s
2,27s
3,02s
3,76s
4,52s
5,27s
itd... Każdy następny czas zwiększa się o ok. 0,75s
i później jest efekt taki, że odczyt jest po ok 10s od startu...
Tak wyszło, ale chyba nie to miałeś na myśli :)

Proponuję ustalić czas pomiędzy startem pomiaru a odczytem na ok 900ms.
Niby max czas to 750ms, ale nie do końca wiadomo jak się zachowują chińskie podróbki, a próba odczytu w trakcie pomiaru kończy się dużym błędem pomiarowym.

Pozdrawiam
You do not have the required permissions to view the files attached to this post.
krycha88
Posts: 5465
Joined: Fri Nov 16, 2018 7:25 am

Post

MaG wrote: Thu Nov 30, 2023 9:51 pm OK, to może źle zrozumiałem.

Przetestowałem, jest lepiej, ale jeszcze nie jest idealnie :)

Coś nie tak jest z czasami.
po inicie jest start pomiaru, następnie po czasie jeden odczyt, i to jest OK
Niestety z czasami pomiędzy startem pomiaru a odczytem coś się dzieje.
kolejne czasy (kolejne pomiary od restartu procka)
1,58s
0,767s
1,52s
2,27s
3,02s
3,76s
4,52s
5,27s
itd... Każdy następny czas zwiększa się o ok. 0,75s
i później jest efekt taki, że odczyt jest po ok 10s od startu...
Tak wyszło, ale chyba nie to miałeś na myśli :)

Proponuję ustalić czas pomiędzy startem pomiaru a odczytem na ok 900ms.
Niby max czas to 750ms, ale nie do końca wiadomo jak się zachowują chińskie podróbki, a próba odczytu w trakcie pomiaru kończy się dużym błędem pomiarowym.

Pozdrawiam
Wprowadziłem bardzo proste zabezpieczenie przed rosynchronizowaniem tych czasów.
https://gui-generic-builder.supla.io/
MaG
Posts: 65
Joined: Wed Oct 25, 2023 10:08 pm

Post

Jeszcze nie testowałem, ale to nie było rozsynchronizowanie. Tam ewidentnie był błąd z ustawanie czau.
o nie działo się w dłuższym okresie czasu. To było co pomiar...
MaG
Posts: 65
Joined: Wed Oct 25, 2023 10:08 pm

Post

Jest OK. Wprawdzie pierwszy odczyt (pierwszy po resecie, zaraz po inicie) jest po 1,58sec ale kolejne są po 0,766sec
Ale czas opóźnienia jest już stabilny.

Zerknij proszę jeszcze przy okazji na ten pierwszy czas i wydłuż opóźnienie z 0,77sec na 0,9 (tak dla bezpieczeństwa) i będzie idealnie.

Natomiast znalazłem innego dużego baga... w Deep Sleep.
Nie będę zakładał nowego tematu, chyba że...
Jak nie ma WiFi i nie może się dostać do serwera, układ się nie usypia w ogóle....
Mam takie testowe 4szt ESP-01s z DS18, zasilane z ogniwa 18650
Wybudza się co 10 min i wysyła temperaturę.
Tylko 2 dni temu prze kilka godzin nie było prądu i niestety wszystko zdechło. Co gorsze to zabiło mi 2 nowe ogniwa (rozładowało je do 0V)
Wiem wiem... powinno być zabezpieczenie ogniwa, ale nie było, bo to na szybko do testów.
Ale tak nie powinno być.
Powinien być jakiś czas (powiedzmy 2x dłuższy niż zwykle to jest), po którym bezwzględnie układ się usypia.
Po określonym czasie, wybudza się i próbuje się połączyć.
Tak jak jest to teraz, to nie da się tego używać.
Czy mógł by ktoś na to zerknąć.

Przetestuję jak będzie poprawka.
Pozdrawiam
krycha88
Posts: 5465
Joined: Fri Nov 16, 2018 7:25 am

Post

MaG wrote: Sat Dec 02, 2023 6:28 pm Jest OK. Wprawdzie pierwszy odczyt (pierwszy po resecie, zaraz po inicie) jest po 1,58sec ale kolejne są po 0,766sec
Ale czas opóźnienia jest już stabilny.

Zerknij proszę jeszcze przy okazji na ten pierwszy czas i wydłuż opóźnienie z 0,77sec na 0,9 (tak dla bezpieczeństwa) i będzie idealnie.

Natomiast znalazłem innego dużego baga... w Deep Sleep.
Nie będę zakładał nowego tematu, chyba że...
Jak nie ma WiFi i nie może się dostać do serwera, układ się nie usypia w ogóle....
Mam takie testowe 4szt ESP-01s z DS18, zasilane z ogniwa 18650
Wybudza się co 10 min i wysyła temperaturę.
Tylko 2 dni temu prze kilka godzin nie było prądu i niestety wszystko zdechło. Co gorsze to zabiło mi 2 nowe ogniwa (rozładowało je do 0V)
Wiem wiem... powinno być zabezpieczenie ogniwa, ale nie było, bo to na szybko do testów.
Ale tak nie powinno być.
Powinien być jakiś czas (powiedzmy 2x dłuższy niż zwykle to jest), po którym bezwzględnie układ się usypia.
Po określonym czasie, wybudza się i próbuje się połączyć.
Tak jak jest to teraz, to nie da się tego używać.
Czy mógł by ktoś na to zerknąć.

Przetestuję jak będzie poprawka.
Pozdrawiam
Ja używam metody Supla::Protocol::ProtocolLayer::IsAnyUpdatePending()) do sprawdzenia czy urządzenie można uspać. Nie do końca wiem jakie warunki musi spełnić.
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 11107
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

krycha88 wrote: Sat Dec 02, 2023 9:37 pm
MaG wrote: Sat Dec 02, 2023 6:28 pm Jest OK. Wprawdzie pierwszy odczyt (pierwszy po resecie, zaraz po inicie) jest po 1,58sec ale kolejne są po 0,766sec
Ale czas opóźnienia jest już stabilny.

Zerknij proszę jeszcze przy okazji na ten pierwszy czas i wydłuż opóźnienie z 0,77sec na 0,9 (tak dla bezpieczeństwa) i będzie idealnie.

Natomiast znalazłem innego dużego baga... w Deep Sleep.
Nie będę zakładał nowego tematu, chyba że...
Jak nie ma WiFi i nie może się dostać do serwera, układ się nie usypia w ogóle....
Mam takie testowe 4szt ESP-01s z DS18, zasilane z ogniwa 18650
Wybudza się co 10 min i wysyła temperaturę.
Tylko 2 dni temu prze kilka godzin nie było prądu i niestety wszystko zdechło. Co gorsze to zabiło mi 2 nowe ogniwa (rozładowało je do 0V)
Wiem wiem... powinno być zabezpieczenie ogniwa, ale nie było, bo to na szybko do testów.
Ale tak nie powinno być.
Powinien być jakiś czas (powiedzmy 2x dłuższy niż zwykle to jest), po którym bezwzględnie układ się usypia.
Po określonym czasie, wybudza się i próbuje się połączyć.
Tak jak jest to teraz, to nie da się tego używać.
Czy mógł by ktoś na to zerknąć.

Przetestuję jak będzie poprawka.
Pozdrawiam
Ja używam metody Supla::Protocol::ProtocolLayer::IsAnyUpdatePending()) do sprawdzenia czy urządzenie można uspać. Nie do końca wiem jakie warunki musi spełnić.
Ta metoda zwraca true gdy jest coś co może być wysłane do serwera.
Gdy nie ma połączenia z serwerem, to będzie cały czas zwracać true.
Powinieneś dodatkowo ustawić jakiś timeout na zestawienie połączenia z serwerem i jeśli się nie uda to uśpić układ
MaG
Posts: 65
Joined: Wed Oct 25, 2023 10:08 pm

Post

Powinieneś dodatkowo ustawić jakiś timeout na zestawienie połączenia z serwerem i jeśli się nie uda to uśpić układ
[/quote]

Dokładnie tak...
krycha88
Posts: 5465
Joined: Fri Nov 16, 2018 7:25 am

Post

MaG wrote: Sat Dec 02, 2023 6:28 pm Jest OK. Wprawdzie pierwszy odczyt (pierwszy po resecie, zaraz po inicie) jest po 1,58sec ale kolejne są po 0,766sec
Ale czas opóźnienia jest już stabilny.

Zerknij proszę jeszcze przy okazji na ten pierwszy czas i wydłuż opóźnienie z 0,77sec na 0,9 (tak dla bezpieczeństwa) i będzie idealnie.

Natomiast znalazłem innego dużego baga... w Deep Sleep.
Nie będę zakładał nowego tematu, chyba że...
Jak nie ma WiFi i nie może się dostać do serwera, układ się nie usypia w ogóle....
Mam takie testowe 4szt ESP-01s z DS18, zasilane z ogniwa 18650
Wybudza się co 10 min i wysyła temperaturę.
Tylko 2 dni temu prze kilka godzin nie było prądu i niestety wszystko zdechło. Co gorsze to zabiło mi 2 nowe ogniwa (rozładowało je do 0V)
Wiem wiem... powinno być zabezpieczenie ogniwa, ale nie było, bo to na szybko do testów.
Ale tak nie powinno być.
Powinien być jakiś czas (powiedzmy 2x dłuższy niż zwykle to jest), po którym bezwzględnie układ się usypia.
Po określonym czasie, wybudza się i próbuje się połączyć.
Tak jak jest to teraz, to nie da się tego używać.
Czy mógł by ktoś na to zerknąć.

Przetestuję jak będzie poprawka.
Pozdrawiam
Wrzuciłem poprawki. Timeout dla deep sleep wynosi teraz 10s, a usypianie 5s.
https://gui-generic-builder.supla.io/
MaG
Posts: 65
Joined: Wed Oct 25, 2023 10:08 pm

Post

Usypia się niezależnie od tego czy jest WiFi czy nie,
Ale nie łączy się z serwerem

Coś nie tak z czasami jest.

W załączniku fotki prądu pobieranego przez ESP
jeden z softem 7.7.15 ( tu się łączy z serwerem) i u mnie trwa to ok 10sec. Czasem ten czas jest dłuższy nawet o 3sec.
Drugi z softem 7.7.16 (tu się nie łączy z serwerem). Tu czas ok 8sec i chyba nie zdąży się połączyć z serwerem, bo status jest rozłączony.

Trzeba czas uzależnić od tego czy jest połączenie z serwerem czy nie i od tego momentu trzeba liczyć czas time out
Bo w rożnych sytuacjach może być różny czas łączenia z serwerem
You do not have the required permissions to view the files attached to this post.

Return to “GUI Generic”