ESP32 czy potrzebny egzorcysta? - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: ESP32 czy potrzebny egzorcysta? (/watek-esp32-czy-potrzebny-egzorcysta) |
ESP32 czy potrzebny egzorcysta? - knugi - 17-09-2021 Witam, Zrobiłem układ OneWire na Mega2560 z którego składał się 6x DS18B20. Wszystko pięknie działało, miałem dodać tylko WiFi w niedalekiej przyszłości. Lecz przyszłość przyszła szybciej, bo burza uszkodziła zasilacz oraz wszystkie czujniki. Więc już chcąc zrobić na gotowo projekt, kupiłem ESP32 zrobiłem specjalną płytkę, przez którą mam wszystkie podłączenia przewodowe i niby wszystko jest ok, ale na wyświetlaczach nie odświeża temperatury tylko pokazuje pierwszą odczytaną po starcie. Schemat podłączenia wygląda mniej więcej tak jak w załączniku. Dodam tylko, że jak zasilam ESP z USB laptopa, a całą płytkę z zasilacza to normalnie odświeża, takie cyrki dzieją się gdy zasilam go z zasilacza sieciowego. Podmieniałem już chyba 3 zasilacze i nic to nie dało. Jeżeli ktoś ma jakiś pomysł jakie siły nieczyste tutaj panują proszę o podzielenie się opinią a może akurat pomoże Pozdrawiam, Patryk. A i zapomniałbym. Kod: Cytat:#include <Arduino.h> RE: ESP32 czy potrzebny egzorcysta? - kaczakat - 17-09-2021 DS18B20 działają świetnie zasilane z 3.3V (choć nie testowałem dużych odległości), a ten sam poziom logiczny zapewnia większą skuteczność komunikacji między elementami na płytce. Może dodaj konwertery logiki tam gdzie zasilasz urządzenia jednak z 5V, do DS są wymagane dwukierunkowe. Można też wszystko zrobić używając jakiegoś AVR i tylko przesłać przez UART dane do ESP32 by ten to udostępniał dalej po WIFI. Zobacz też, czy gdy nie uruchamiasz WIFI w ESP32 wszystko działa OK, jeśli tak to jednak zasilanie, dodatkowe kondensatory przy VCC mogą pomóc. RE: ESP32 czy potrzebny egzorcysta? - knugi - 18-09-2021 (17-09-2021, 20:03)kaczakat napisał(a): DS18B20 działają świetnie zasilane z 3.3V (choć nie testowałem dużych odległości), a ten sam poziom logiczny zapewnia większą skuteczność komunikacji między elementami na płytce. Może dodaj konwertery logiki tam gdzie zasilasz urządzenia jednak z 5V, do DS są wymagane dwukierunkowe.Waga sieci onewire ma blisko 200m. Nie zależy mi na szybkości odczytów. W tej chwili z kodu mam wyrzucone wifi (zakomentowane). Szczerze o kondensatorze też myślałem lecz nie wiem jakiego użyć. Przy mierzeniu napięć zaobserwowałem że z USB daje równe 5.00V a zasilacze jeden 5.5V drugi 5.36 trzeci 5.13V może to też mieć jakiś wpływ? RE: ESP32 czy potrzebny egzorcysta? - Jarewa0606 - 18-09-2021 Nie ma wpływu, na płytce jest stabilizator LDO 3.3V dopiero potem zasila esp32 bardziej byś napisał ile te zasilacze mają mocy bo to jest ważne.. for(byte i=0;i<SENSORS_NUM;i++){ temperature[i] = sensors.readTemperature(FA(adress[i])); //Serial.println(String(i)+": "+String(temperature[i])); delay(0); } //for(byte i=0;i<6;i++){ // float t = random(20,32) + random(10)/10.0; // Serial.println(String(i)+": "+String(t)); // temperature[i] = t; //} zobacz czy to delay pomogło bo ten for blokuje rdzeń na około 8s.... RE: ESP32 czy potrzebny egzorcysta? - knugi - 18-09-2021 Wszystkie zasilacze mają 2A. Zaraz zobaczę czy pomoże RE: ESP32 czy potrzebny egzorcysta? - kaczakat - 21-09-2021 Z ESP też mam czasem odczucia, że egzorcysta by się przydał. Oczywiście tym większe kłopoty im większe skróty w programie i na sprzęcie. Niedawno wrzuciłem nowe core, miałem 2.5.2 i przy tych powyżej 3 w ogóle się przestało kompilować. Po prostu przeniosłem zmienne do innej zmiennej poza argument funkcji, dałem jej jeden gotowy string do wysłania i zaczęło kompilować. Wcześniej tak się dało, w nowym już nie. Po wgraniu jednak zaczął się sypać po ruszeniu suwakami obsługującymi kod programu z przeglądarki WWW. Przy okazji wgrałem nowszą bibliotekę do websockets i znowu zabawa, bo inne rzeczy nie działają. W końcu wróciłem do poprzedniej wersji i zaczęło działać OK. Teraz przetestowałem najnowszą bibliotekę i jednak działa od paru godzin. Może jeszcze skuszę się na nowy core ESP. Z DS też różnie bywa, one mogą mocno przekłamywać wyniki. Kilka termometrów podłączyłem do 3.3V i 4.7k, jeden z nich pokazywał ~90oC w pokoju, reszta normalnie. Okazało się, że zaczął działać normalnie albo na 5V z 4.7k, albo z rezystorem 2.2k na 3V, co jest logiczne gdy napięcie jest niższe. Ale teraz mam wątpliwości czy biblioteka w ogóle sprawdza CRC, czy tak wrzuca te odczyty z dupy. Czujniki zasilane z 5V na ESP8266 pokazują temperatury w cały świat, niby działają, ale co jakiś czas sypią poważnymi błędami. Z drugiej strony poważne różnice można wychwycić, jak zaczną oszukiwać o 20% to będzie trudniej zauważyć, że ten rezystor czy napięcie tu nie pasuje. Kabel USB nawet może mieć znaczenie, te mi padają częściej niż płytki. Ale do brzegu, przy 200m to proponuję zastosować jakiś sprzętowy driver do ONEWIRE. Albo jak działało jako tako z AVR na 5V to wróć do tego i prześlij pomiary przez UART AVR (NANO w zupełności wystarczy) do ESP. Pomiary napięć nic nie dają jeśli robisz to multimetrem, może być spadek do 0V długości kilku ms i tego nie zauważy. Kondensatory mogą być dowolne, od 100n ceramiczne aż po elektrolityczne. Miałem taką płytkę ESP32, która w ogóle nie ruszyła bez kondensatora 100u. RE: ESP32 czy potrzebny egzorcysta? - Old Fony - 28-09-2021 DS iczas Odpowiedzi Prawie wszyscy zapominają, że DS jest bardzo powolny, zanim pierwszy zostanie wyczytany, drugi jest czytany = Błąd w PRG. co wiem ze w Libary niema zadnego spowalniacza (dellay()) w przypadku odczytu wielu innych czujnikow Wtedy zdarza się, że na linii jest korek i wszystko się wali. Zobacz w Danych od DS na potrzebny czas do odczytu jestem przeciwko dellay ale tu jest potrzebne ok 50milisekund co najmniej RE: ESP32 czy potrzebny egzorcysta? - knugi - 05-11-2021 Przepraszam, że tak długo nie było ode mnie odzewu. Miałem inną pracę i powracam do tego projektu. I mam dla was nowe informacje, dalej nie działa. W głównym wątku musiałem się pomylić co do odświeżania po zasileniu z laptopa, bo gdy dziś użyłem tego sposobu to w ogóle nie odświeża w dalszym ciągu nawet po zastosowania filtra CR. Cały układ odświeża temepratury gdy się go zrestartuje (odłączy zasilanie i ponownie się podłączy). Również robiłem debug w kodzie i cały czas mi pokazuje stary odczyt temperatury, czyli jakby ROM go nie nadpisywal i w sensor.readTemperature() pokazuje caly czas tą samą temperaturę. Myślę, że problemem mogą być rezystory które umieściłem w połączeniu do każdej z czujników aby one mogły w ogóle komunikować z moim ESP. Nie pamiętam jakie zastosowałem a teraz jest ciemno i nie mam jak sprawdzić ale myślę że jakieś 100-150oHm. Podmieniłem również całe ESP na nowe lecz to nie przyniosło skutku. Albo może czas konwersji w pliku onewire jest nie taki? //Edit. Wgrałem dla testów kod przykładowy z onewire I mam nowe odczyty. Więc wychodzi wszystko na to, że biblioteki nie są dostosowane do mojego projektu, a cały system który stworzyłem pracuje znakomicie. Dziękuję wszystkim za udział w temacie, Pozdrawiam. Jednak wszystko wina była tego, że nie napisałem jednej linijki sensors.request(); i tyle zachodu o moją małą głupotę. |