Opiszę z czym mam problem:
mam pomiary temperatur zrobione na ESP Easy ESP8266 D1 + czujniki temperatur na Dallas DS18B20. W sumie takich czujników do tego ESP mam podłączonych 12 szt i jeden ESP obsługuje mi 12 pomiarów, drugi kolejne 4 pomiary.
Wszystko fanie chodziło dokąd nie uruchomiłem falownika Anenji 6,2kW wtedy pomiary mi znikły wszystkie z obydwu tych ESP8266 są zera albo wartość nieznana albo ESP nie widzi czujników DS18B20.
Po analizie doszedłem do wniosku że to ten falownik zakłóca, nie żeby ten konkretny ale wcześniej - dawniej miałem inny falownik i były podobne problemy, czyli wygląda na to że praca przetwornicy falownika powoduje zakłócenia pomiarów temperatur w tych czujnikach. Ewidentnie to stwierdziłem bo tak się dzieje zwłaszcza jak się załączy akumulatory i zacznie pracować druga przetwornica falownika.
Dodatkowo mierząc te czujniki temperatur (bo myślałem że padły - już tak kiedyś też miałem ) zwykłym multimetrem kiedy falownik pracuje, na pomiarze pomiędzy nóżkami 2 i 3 czujnika DS18B20 czyli Data i VCC przy odłączonym całkowicie czujniku ale na kablu około kilku metrów słychać ciche ‘tyrkotanie’ w mierniku na zakresie do pomiarów diod, jak się falownik wyłączy to ‘tyrkotanie’ ustępuje, więc widać ewidentnie że falownik sieje jakimiś zakłóceniami wkoło. Wszystko jest blisko siebie falownik i te ESP, czujniki trochę dalej ale kable już nie. Czujniki sprawdziłem są dobre i działają na innym ESP oczywiście przy wyłączonym falowniku, w momencie jak go załączę to zaczynają szaleć głównie nie są wykrywane i nie ma nic na liście ESP oczywiście pomiarów też
Teraz moje pytanie czy miał ktoś podobny problem i ewentualnie jak sobie z tym poradzić ?
Tylko propozycje, bo musisz sam przeeksperymentować, ale okablowanie czujników wymieniłbym na ekranowane (przynajmniej przewód data), ewentualnie na ekranowaną skrętkę (w jednej parze data i GND a drugiej Vcc i GND, a ekran osobno jednostronnie dołączony do masy lub uziemienia jeśli masz możliwość).
i/lub
Jeśli masz oryginalne Dallasy lub inne dostosowane do pracy 5V to użyj zasilania 5V i konwertera poziomów logicznych. Ale skoro zakłócenia się indukują na mierzalnym poziomie to raczej samo zwiększenie napięcia nie wystarczy.
dallasy DS18B20 są na 3,3V
będę oczywiście eksperymentował i z kablami, ale myślałem o jakimś filtrze w postaci kondensatora czy coś podobnego, może ktoś już przerabiał ten temat i ma wypracowane jakieś rozwiązanie.
jeszcze takie pytanie poboczne, do jakiej wartości opornika podciągającego można zejść bezpiecznie, bo w DS18B20 jest to wartość 4,7k zalecana przez producenta, a stosując 12 tych czujników na jednej linii musiałem obniżyć wartość tego opornika do 2,4k żeby odczytywało wszystkie poprawnie bo przy 4,7k nie chciało czytać, więc pytanie do jakiej wartości można zejść z tym opornikiem.
Oryginalne “dallasy” (produkowane przez Dallas Semiconductor) DS1820 i DS18B20 były dedykowane do logiki TTL i zasilania 5V.
Obecne oryginalne wypusty Analog (dawniej Maxim, a jeszcze dawniej Dallas Semi)
unowocześniono i mogą pracować z logiką LVTTL i zasilaniem 3.3V, ale zachowano ich kompatybilność z 5V i TTL, więc… możesz zrobić modyfikację którą sugerowałem. https://www.analog.com/media/en/technical-documentation/data-sheets/ds18b20.pdf
Ba, wersja wyłącznie na 3.3V wypuszczona za czasów Maxim ma inny symbol modelu MAX31820, a co do chińskich odpowiedników (podróbek, bo odpowiedniki powinny mieć inne oznaczenie modelu i datasheet’y do znalezienia) nie wiem - może być różnie, ale czemu nie spróbować?
Ja jednak za kluczową uważam wymianę okablowania, możesz odsprzęgać zasilanie dolutowując na każdym dallasie kondensatorki 10-100nF (+ ewentualnie elektrolity rzędu 10-50uF) na pinach zasilania, ale do linii danych w 1-wire nie wolno niczego dokładać (w szczególności dodatkowej pojemności).
W kwestiach praktycznych - jeśli pullup masz za słaby, to wykorzystaj większą ilość magistral 1-wire (w ESP są one programowe, nie ma ani jednego wbudowanego kontrolera 1-wire).
Jeśli nie chcesz modyfikować ilości magistral możesz użyć specjalizowanego kontrolera 1-wire https://www.analog.com/en/products/ds2484.html
poszedłem nieco inną drogą i na razie jest sukces, ale żeby się przekonać że jest ok to musi to trochę popracować bo nie jest to wszystko takie jednoznaczne
Ponieważ miałem też problem z tymi 12 czujnikami to odpaliłem inną płytkę ESP8266 i podłączyłem je pod nią - też nie działało, zacząłem dodawać po jednym czujniku DS18B20 i po dodaniu 4-tego przestawała działać nie widziała wszystkich czujników więc zmniejszyłem jeszcze opornik podciągający z 3,9K na 2,4k i dało się dodać wszystkie pozostałe 12 szt i działały. Uruchomiłem teraz falownik i ku mojemu zdziwieniu pomiary były nadal poprawne, natomiast druga płytka z 4 pomiarami straciła pomiary podczas pracy falownika, jak falownik wyłączę to pomiary wracają. Natomiast ta z 12 czujnikami jak już raz straciła pomiary to niezależnie czy falownik pracuje czy nie to pomiary już nie wróciły
Esp ma coś takiego że jak jest problem to jakiekolwiek zmiany nie powodują poprawy dokąd się wszystkiego (urządzeń) nie skasuje i nie skonfiguruje od nowa - już tak kiedyś miałem.
Jak mi już ta nowa płytka zadziałała z tymi 12 czujnikami to przepiąłem te czujniki z nowym opornikiem na starą pytkę ESP i tam nie działa, na testowej działało na starej nie chce, a wszystko jest to samo.
Dlatego na razie odpalam to wszystko na nowej płytce ESP i niech się testuje - wygląda na to że zmiana opornika na 2,4K przy 12 czujnikach powoduje ze nie są one już wrażliwe na zakłócenia od falownika.
Jutro zrobię to samo z drugą płytką ESP dopasuję opornik do tamtych 4 czujników i zobaczymy czy efekt będzie taki sam, czy zacznie pracować poprawnie przy pracy falownika.
Na razie wygląda to obiecująco