DS18B20

daw34
Posts: 132
Joined: Sun Aug 08, 2021 11:12 am

Post

krycha88 wrote: Mon Nov 27, 2023 9:01 pm A może te piny przechodzą przez jakiś już rezystor? Weź użyj innego sprzętu np. nodemcu do testów a później szukaj problemu na płytce ;)
Testowałem to oczywiste 2x wemos (odczyt ok ale z 10k rezystorem) 2x sonoff touch 3CH 1x sonoff touch 1CH ( tutaj też tylko 10k i w dodatku dziwne odczyty zbyt wysokie ale podejrzewam że 4 cm od otwartej obudowy to za blisko ESP zbyt się grzać musi :shock: )jutro sprawdzę na nodemcu a dlatego pytałem czy ktoś już tak miał.

Dzięki wszystkim za pomoc.
MaG
Posts: 59
Joined: Wed Oct 25, 2023 10:08 pm

Post

@ krycha88

Dzisiaj grzebałem coś przy DS i znalazłem przypadkiem kolejny problem.
Sprzęt ESP-01s i praca w Deep Sleep i tylko 1 DS (zasilanie z linii), soft 7.7.10
Układ działa poprawnie, mierzy temperaturę i wysyła.
Problem pojawia się w trybie Deep Sleep.
Wybudza się, inicjalizuje DS (wyszukuje na magistrali, sprawdza jego zasilanie, odczytuje EEPROM i tyle), wysyła na serwer.
Nie na w ogóle rozkazu startu pomiaru i ponownie się usypia.
Wysyła ostatnią zmierzoną temperaturę.

Problem jest w tym, że po inicjalizacji (w trybie bez Deep Sleep) rozkaz pomiaru nie następuje zaraz po inicjializacji (jak było w poprzednich softach) tylko dopiero po ok 8sec pracy.
O ile przy normalnej pracy nie ma to większego znaczenia, to przy pracy z Deep Sleep już duże. Procesor robi init, czyta EEPROM i idzie w Sleep.

W załączniku przebiegi z analizatora.
You do not have the required permissions to view the files attached to this post.
MaG
Posts: 59
Joined: Wed Oct 25, 2023 10:08 pm

Post

A tu przebiegi gdy pracowało to poprawnie (tyle że tu zasilanie 3 przewodowe (soft 7.6.12), bo na tym sfcie były jeszcze problemy z zasilaniem z linii)
Tu jest rozkaz pomiaru (44H) zaraz po inicie i następnie sprawdza czy zakończył się pomiar (tego nie ma przy zasilaniu 2p) i odczyt jak skończy
You do not have the required permissions to view the files attached to this post.
krycha88
Posts: 5417
Joined: Fri Nov 16, 2018 7:25 am

Post

MaG wrote: Tue Nov 28, 2023 9:47 pm @ krycha88

Dzisiaj grzebałem coś przy DS i znalazłem przypadkiem kolejny problem.
Sprzęt ESP-01s i praca w Deep Sleep i tylko 1 DS (zasilanie z linii), soft 7.7.10
Układ działa poprawnie, mierzy temperaturę i wysyła.
Problem pojawia się w trybie Deep Sleep.
Wybudza się, inicjalizuje DS (wyszukuje na magistrali, sprawdza jego zasilanie, odczytuje EEPROM i tyle), wysyła na serwer.
Nie na w ogóle rozkazu startu pomiaru i ponownie się usypia.
Wysyła ostatnią zmierzoną temperaturę.

Problem jest w tym, że po inicjalizacji (w trybie bez Deep Sleep) rozkaz pomiaru nie następuje zaraz po inicjializacji (jak było w poprzednich softach) tylko dopiero po ok 8sec pracy.
O ile przy normalnej pracy nie ma to większego znaczenia, to przy pracy z Deep Sleep już duże. Procesor robi init, czyta EEPROM i idzie w Sleep.

W załączniku przebiegi z analizatora.
Wrzuciłem poprawkę do wersji 7.7.12
https://gui-generic-builder.supla.io/
MaG
Posts: 59
Joined: Wed Oct 25, 2023 10:08 pm

Post

Jest lepiej, ale jeszcze są niedociągnięcia.
Już mierzy w trybie sleep.
Tera jest init DS, i od razu start pomiaru, następnie po ok 0,9s odczyt pomiaru i drugi odczyt tego samego pomiaru (zupełnie niepotrzebny) po ok 4sec.
Jak układ pracuje bez trybu Sleep to wygląda to dokładnie tak samo, i tak się powtarza.
Za każdym startem pomiaru są 2 odczyty.

To wydłuża czas pomiaru w sleep i zjada niepotrzebnie baterię
You do not have the required permissions to view the files attached to this post.
krycha88
Posts: 5417
Joined: Fri Nov 16, 2018 7:25 am

Post

MaG wrote: Wed Nov 29, 2023 11:17 pm Jest lepiej, ale jeszcze są niedociągnięcia.
Już mierzy w trybie sleep.
Tera jest init DS, i od razu start pomiaru, następnie po ok 0,9s odczyt pomiaru i drugi odczyt tego samego pomiaru (zupełnie niepotrzebny) po ok 4sec.
Jak układ pracuje bez trybu Sleep to wygląda to dokładnie tak samo, i tak się powtarza.
Za każdym startem pomiaru są 2 odczyty.

To wydłuża czas pomiaru w sleep i zjada niepotrzebnie baterię
drugi pomiar wynika z tego, że ponowne połączenie do wifi trwa więcej niż 5s. Ucięcie tego pomiaru za dużo wg mnie nie da, ale mogę go przestawić na 10s.
https://gui-generic-builder.supla.io/
User avatar
klew
Posts: 9667
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

To zależy od tego jaką masz precyzję ustawioną. Z tego co pamiętam, to na najwyższej, odczyt trawał ponad 1 s.
Ja to dla uproszczenia w implementacji w supla-device zrobiłem tak, że praca była w cyklach:
1. wyślij rozkaz zrobienia pomiarów na wszytkich termometrach
2. poczekaj 5s
3. odczytaj wszystkie termomemtry
4. poczekaj 5s
5. wróć do 1.
Kiedy będzie Supla Offline Party / SOP#2025 ?
MaG
Posts: 59
Joined: Wed Oct 25, 2023 10:08 pm

Post

krycha88 wrote: Thu Nov 30, 2023 9:16 am
MaG wrote: Wed Nov 29, 2023 11:17 pm Jest lepiej, ale jeszcze są niedociągnięcia.
Już mierzy w trybie sleep.
Tera jest init DS, i od razu start pomiaru, następnie po ok 0,9s odczyt pomiaru i drugi odczyt tego samego pomiaru (zupełnie niepotrzebny) po ok 4sec.
Jak układ pracuje bez trybu Sleep to wygląda to dokładnie tak samo, i tak się powtarza.
Za każdym startem pomiaru są 2 odczyty.

To wydłuża czas pomiaru w sleep i zjada niepotrzebnie baterię
drugi pomiar wynika z tego, że ponowne połączenie do wifi trwa więcej niż 5s. Ucięcie tego pomiaru za dużo wg mnie nie da, ale mogę go przestawić na 10s.
Drugi to nie jest pomiar. To jest tylko odczyt tej samej wartości przetwarzania. Nie ma tam startu pomiaru
MaG
Posts: 59
Joined: Wed Oct 25, 2023 10:08 pm

Post

klew wrote: Thu Nov 30, 2023 9:45 am To zależy od tego jaką masz precyzję ustawioną. Z tego co pamiętam, to na najwyższej, odczyt trawał ponad 1 s.
Ja to dla uproszczenia w implementacji w supla-device zrobiłem tak, że praca była w cyklach:
1. wyślij rozkaz zrobienia pomiarów na wszytkich termometrach
2. poczekaj 5s
3. odczytaj wszystkie termomemtry
4. poczekaj 5s
5. wróć do 1.
To nie jest tak jak piszesz
Jeśli chodzi o czas pomiaru to zależy on od precyzji i max to 750ms (ale można przyjąć 900ms czy tam 1s)

Teraz jest
1 wyślij rozkaz zrobienia pomiarów na wszytkich termometrach
2. poczekaj 0,9s
3. odczytaj wszystkie termomemtry
4. poczekaj 4s
5. odczytaj wszystkie termomemtry (powtórnie, zupełnie nie potrzebnie. Czytasz drugi raz tą samą daną)
6. poczekaj 5s
7. wróć do 1.

A powinno być
1 wyślij rozkaz zrobienia pomiarów na wszytkich termometrach
2. poczekaj 0,9s
3. odczytaj wszystkie termomemtry
4. poczekaj 9s
5. wróć do 1.
You do not have the required permissions to view the files attached to this post.
krycha88
Posts: 5417
Joined: Fri Nov 16, 2018 7:25 am

Post

MaG wrote: Thu Nov 30, 2023 12:28 pm A powinno być
1 wyślij rozkaz zrobienia pomiarów na wszytkich termometrach
2. poczekaj 0,9s
3. odczytaj wszystkie termomemtry
4. poczekaj 9s
5. wróć do 1.
Na szybko przerobiłem wg twoich wytycznych :) Odstęp między konwersją a odczytem wszystkich termometrów to 750ms a odstęp między kolejnymi odczytami to 10s.
https://gui-generic-builder.supla.io/

Return to “GUI Generic”