Wpis z mikrobloga

Mam problem z ogrzewaczem wody, który naprawiam. Wykorzystuję ESP8266 do sterowanie trzema grzałkami 400V (przy użyciu 3 SSR-ów). Do odczytu temperatury wykorzystuję sensor DS18B20. Problemem jest natomiast czujnik temperatury DS18B20, który "wstrzymuje" działanie ESP8266 w celu odczytu temperatury (na ok. 100ms). Czas ten jest dość duży i uniemożliwia mi częstsze włączanie/wyłączanie SSR-ów w celu lepszej kontroli temperatury grzałek. Z innego posta otrzymałem informację, że można odczytywać temperaturę ze scratchpada, a nie czekać na sam odczyt (co podobno jest o wiele szybsze). Jednak wciąż nie wiem czy to zadziała i jak taki kod zbudować. Rozmyślam też czy nie dobrym wyjściem jest wybór ESP32 (dwa rdzenie - jeden do SSR-ów, drugi do temperatury).
Ktoś może mi doradzi jak to lepiej rozwiązać?

#ogrzewaniedomu #modernizacja #technologia #nodemcu #esp32 #forbot #botland #esp #arduino #programowanie #mikrokontrolery #elektroda #esp8266 #dom #hydraulika #ogrzewanie #grzaniewody #podgrzewacze #woda #lazienka #dom #majsterkowanie #elektronika #elektryka #naprawa
  • 29
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

  • 0
@CherenkowP: gdzie napisałem, że zbiornik? Cały czas piszę, że czujnik temperatury (również fabryczny) był na rurce miedzianej. W "zbiorniku" to co najwyżej są grzałki i nic więcej.
I tak, no mierzy mi wymieszaną ciesz :P I wtedy robię pomiar, if-y modyfikują czas włączeń/wyłączeń tak jak robi to PID (trochę wolniej), ale działa. DS mam legitny, mam zaufany sklep :D
A co do szybkości regulacji, tutaj nic nie zyskam, bo i
  • Odpowiedz
@MisiekD tak zrozumiałem "temperaturę wymieszanej cieczy", stąd na myśl wpadł zbiornik, sorka. No w sumie to co piszesz jest spójne, powinno działać. Nic tylko zwrocić uwagę na bezpieczeństwo i składać. Ten ESP ma jakiegoś watchdoga? Coś co go zresetuje jak wykryje, że się zawiesi. To jednak z człowiekiem pracuje, zabezpieczenie ciśnieniowo termiczne chroni przed ekstremum, ale pomiędzy 40-100*C dużo można szkód narobić.
  • Odpowiedz
via Android
  • 0
@CherenkowP Działać to już działa, tylko brakowało mi wartości pośrednich (blokował czas odczytu na 100ms) ;)
Czy ma watchdoga, tego nie wiem. Innego zabezpieczenia nie ma, ale póki pracuję z ESP to nigdy nie miałem żadnej zwiechy. Pętle zawsze są stabione u mnie.
Innego zabezpieczenia nie ma, ale no nawet fabryczne modele żadnego innego zabezpieczenia nie mają niż ciśnieniowo-temperaturowy. Często pada elektronika, a zwłaszcza triaki. A wtedy grzałki gotują wodę po
  • Odpowiedz
@MisiekD: Regulacje załączania grzałek jeśli robisz dopasowanie do sinusoidy by sterować wypełnieniem rób na przerwaniach. wtedy oczekiwanie programu na cokolwiek nie będzie Ci nis psuło. A jeśli nie to steruj mocą na zasadzie 3 grzałki 2 grzałki 1 grzałka 0 grzałek wtedy 100ms nie będzie robiło różnicy.
  • Odpowiedz
  • 0
@houk: W jakim sensie na przerwaniach? Mógłbyś rozjaśnić?
Co do sterowania pojedynczymi grzałkami, również o tym rozmyślałem, ale złączyłem SSR-y równolegle jednak. I działają całkiem dobrze, nie trzeba nic zmieniać. Ponadto, mój program jest autonomiczny, sam się reguluje odpowiednio do ustawionej temperatury.
  • Odpowiedz
  • 0
@houk: kurde... Ale mnie teraz oświeciłeś z tymi przerwaniami :/
A powiedz mi, jak np. wykonuję komendę float temperaturaC_DS18B20 = sensors.getTempCByIndex(0);, która potrzebuje 30ms na działanie i dokładnie w trakcie tych 30ms (np. po 15ms) ESP8266 napotka interrupta z jakiegoś pinu, to co się wtedy z tą komendą dzieje? Po wykonaniu funkcji z interrupta dokładnie wie jak wrócić do kodu i go kontynuuje czy kończy tą komendę (sensors.getTempCByIndex(0);
  • Odpowiedz
  • 0
@MisiekD wszystko co jest na stosie cpu spada i idzie przerwanie potem wraca na stos co przerwane
przerabiałem przerwania od impulsu prz3jscia simusoidy przez zero w sciemiaczaczu do świateł na triaku. bardzo dobrze to działa. np przerwanie wyzwala Timer a Timer wyzwala zamknięcie triaka. czas Timera to wypełnienie.
  • Odpowiedz