Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Przyrządy pomiarowe, ich montaż i zastosowanie odczytów w procesach destylacji. Regulacja procesów.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy

Post autor: rastro »

Co to za kradzież... skoro autor i tak postanowił to rozdawać gratis ;)
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
promocja
Awatar użytkownika

.Gacek
2000
Posty: 2383
Rejestracja: niedziela, 18 paź 2015, 14:00
Krótko o sobie: Marzyciel
Ulubiony Alkohol: Własny.
Lokalizacja: Gorzów Wlkp.
Podziękował: 268 razy
Otrzymał podziękowanie: 338 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: .Gacek »

To ukłon w stronę autora...
Pozdrawiam Gacek.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

Do tego mamy takie piękne polskie słowo "Dziękuję" ;)
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
Awatar użytkownika

maniek2939
150
Posty: 168
Rejestracja: niedziela, 30 gru 2018, 10:57
Podziękował: 2 razy
Otrzymał podziękowanie: 10 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: maniek2939 »

Ze starego blynk będziemy mogli korzystać tylko do końca roku, później już tylko blynk iot

https://blynk.io/blog/meet-the-new-blynk-platform

Wysłane z mojego SM-G960F przy użyciu Tapatalka

Carl
200
Posty: 242
Rejestracja: poniedziałek, 11 lut 2019, 14:03
Podziękował: 8 razy
Otrzymał podziękowanie: 5 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: Carl »

A ktoś mu wyjaśni łopatologicznie jakie będą konsekwencje tych zmian dla użytkowników posiadających termometry lub sterowniki oparte na Blynku?

Wystukane z Tapatalka

moszeusz
200
Posty: 213
Rejestracja: sobota, 23 sie 2014, 14:47
Podziękował: 32 razy
Otrzymał podziękowanie: 23 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: moszeusz »

Will the old platform continue to work?
Currently there is no plan to shut down Blynk legacy platform server. So old apps will continue working, but will no longer be developed or supported. We recommend making the transition to the new iOS & Android apps ASAP to not just take advantage of the new and ever-improving functionality, but also to ensure stable performance of your projects.

Czyli - stary blynk będzie działał, niżej gdzieś napisali, że po jakimś czasie wyłączą możliwość rejestracji nowych użytkowników na starym blynku.

Moskit81
200
Posty: 242
Rejestracja: sobota, 25 maja 2019, 02:06
Podziękował: 17 razy
Otrzymał podziękowanie: 4 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: Moskit81 »

Chłopaki nie próżnują sterownik się rozwija. Pierwszy raz gotowałem z kontrolą temperatury w płaszczu. Sterownik nie pozwałał przekroczyć temperatury w płaszczu na poziomie 110°C. Jak nie miałem te opcji a płaszcz spory bo 50l oleju, duża bezwładność około 2min, to przy rozgrzewaniu dochodziło go kipienia oparów przez głowicę, teraz tego nie ma. Dla ludzi z płaszczem wodnym to chyba duża zaleta bo nie wybije zaworu bezpieczeństwa. Kolor żółty temp płaszcza widać jak ładnie oscyluje.Obrazek
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Zacni Koledzy ! Występuje u mnie ciekawy problem . Na teście raz na kilka lub kilkadziesiąt godzin występuje "AWARIA", a wykres pokazuje że jedna z czujek (dowolna) rejestruje gwałtowny spadek temperatury o ok. 5 stopni, taki pik w dół.
Czujki wymienione na MAXIM INTEGRATED (dawniej TEXAS I), zasilanie nowe, kable krótkie - skrętka, ESP32 WROOM na ESP32 Lite, rezystor podciągający z 4k7 na 2k35.
Już nie ma czego wymieniać . I smętnie patrzę na testy.
Jakieś sugestie ?
Piszę starannie po Polsku. O ile daję radę.

MastaMari
150
Posty: 168
Rejestracja: poniedziałek, 10 lut 2020, 21:47
Podziękował: 3 razy
Otrzymał podziękowanie: 15 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: MastaMari »

Ostatnio miałem podobne problemy z występowaniem "AWARA" która zaczęła sie w połowie procesu.

Po krótkich oględzinach wyszło na to ze ES 16a/c na którym miałem podłączoną grzałkę na regulatorze prądu i właśnie moduł termometru zaczął robić minimalne zwarcie co skutkowało skokami napięcia jak i okresowym wywalaniem losowego błędu DS18B20. Po zmianę umiejscowienia modułu sterującego na inna fazę problem znikł.

Ale !! nie dało mi to spokoju poprzez mało precyzyjny komunikat "AWARIA" który tyczy sie wszystkich czujników, zmieniłem minimalnie kod w swoim sterowniku z zbiorczego:

Kod: Zaznacz cały

 if
 (
   (temp_zbiornik <= 0) || (temp_zbiornik >= 110)
 || (temp_bufor <= 0) || (temp_bufor >= 110)
 || (temp_10p <= 0) || (temp_10p >= 110)
 || (temp_OLM <= 0) || (temp_OLM >= 110)
 || (temp_UFO <= 0) || (temp_UFO >= 110)
 || (temp_woda <= 0) || (temp_woda >= 110)
  )
 {
   awaria = 1;
  praca = 0;
 }
 if (awaria == 1 && x == 0)
 {
  led3.on();
  Blynk.notify("AWARIA!  Błąd pomiaru temperatury!!!");
  x = 1;
 }
   
Na pojedyncze odniesienie sie do każdego czujnika i wyświetlenie unikalnego komunikatu np:

Kod: Zaznacz cały

if
    ((temp_bufor <= 0) || (temp_bufor >= 110))
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru BUFOR!!!");
    }
    if
    ((temp_zbiornik <= 0) || (temp_zbiornik >= 110))
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru KEG!!!");
      
      itd
    }
Pozwoli mi to w 100% określić który czujnik generuje błąd jeżeli takowy wystąpi.
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Ja też wiem który czujnik generuje błąd. Z wykresu. Ale niewiele to daje bo DS18 mam dobre.
Nawet mam zainstalowany filtr wyłapujący zakłócenia sieciowe.
I te skoki wg wykresu wynoszą -5 stopni.
Bez obciążenia też się chrzani.
Piszę starannie po Polsku. O ile daję radę.
Awatar użytkownika

Autor tematu
robert4you
950
Posty: 951
Rejestracja: środa, 30 mar 2016, 18:43
Podziękował: 9 razy
Otrzymał podziękowanie: 134 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: robert4you »

Wskazania wykresu niestety mogą wprowadzać w błąd. To taka wada onewire.

Wysłane z mojego SM-A715F przy użyciu Tapatalka
************************************************************************
Awatar użytkownika

Autor tematu
robert4you
950
Posty: 951
Rejestracja: środa, 30 mar 2016, 18:43
Podziękował: 9 razy
Otrzymał podziękowanie: 134 razy
Re: RE: Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: robert4you »

k.kolumb pisze:Ja też wiem który czujnik generuje błąd. Z wykresu. Ale niewiele to daje bo DS18 mam dobre.
Nawet mam zainstalowany filtr wyłapujący zakłócenia sieciowe.
I te skoki wg wykresu wynoszą -5 stopni.
Bez obciążenia też się chrzani.
W jaki sposób zasilasz ESP.?

Wysłane z mojego SM-A715F przy użyciu Tapatalka
************************************************************************
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Najpierw jest filtr, potem zasilacz 230/12 Mean Well , potem 12/3V dla ESP i 12/5V dla LCD. Wszystkie elementy wymienione...

filtr :https://allegro.pl/oferta/378-filtr-sieciowy-przeciwzakloceniowy-emi-4a-9816894548?snapshot=MjAyMS0wNy0yNVQxNjo1ODowNC44MTdaO2J1eWVyO2MzNmZiMzdhNTcxYTRlNTUxMWNhNGM3OGE2OWE0ZGMwOGZiNGZhZTU0NjJkYWNlNThjZmFjM2Y5ZWViY2UyMjM%3D
zasilacz 230/12 : https://allegro.pl/oferta/zasilacz-din-12v-1-25a-15w-mean-well-hdr-15-12-8698376022?snapshot=MjAyMS0wNy0yNVQxNjo1ODowNC44MTdaO2J1eWVyOzU1NjI3OThmMzg1N2NhNTk4MGQzMDExZTQyMGY1MjAyYjBjNzA3Y2Q0ZDE3MTNmMGY4MWVhOTMyM2E3MDdkMDY%3D
zasilacze 12/3 i 12/5 : https://allegro.pl/oferta/356-lm317-regulowany-zasilacz-stabilizator-napieci-9382408462?snapshot=MjAyMS0wNy0yNVQxNjo1ODowNC44MTdaO2J1eWVyO2IyM2EyNTgzZTc4NDhjMjE2NzU3N2VlMDUxODEzNzQ2NzJjMWM1MDc1OGFmYzQyNjMyZjFjYTcxMDQ4NWUxYTg%3D
Ostatnio zmieniony piątek, 12 lis 2021, 08:21 przez Qba, łącznie zmieniany 2 razy.
Piszę starannie po Polsku. O ile daję radę.
Awatar użytkownika

Autor tematu
robert4you
950
Posty: 951
Rejestracja: środa, 30 mar 2016, 18:43
Podziękował: 9 razy
Otrzymał podziękowanie: 134 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: robert4you »

Stawiam że problem jest w zasilaniu. Zasil ESP ładowarka od telefonu przez USB. A resztę zostaw normalnie

Wysłane z mojego SM-A715F przy użyciu Tapatalka
************************************************************************
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Zrobiłem jak radzisz. Niestety, 3 godziny i znowu AWARIA. Ręce opadają i nie tylko.
Piszę starannie po Polsku. O ile daję radę.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

A ten odczyt z DS'a w tych bibliotekach jest z korekcją, bo może coś sieje i transmisja onewire ma błędy. Tylko dziwne że to takie powtarzalne...
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Na moment odłączyłem czujkę Woda żeby coś obejrzeć. Awaria, ok ale na wykresie pik na OLM. Nic już nie rozumiem. Może zmniejszę ilość czujek do 4. Coś tu się nie wyrabia.
Piszę starannie po Polsku. O ile daję radę.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

Obstawiam że nie, te piki są regularne w sensie błąd jest stały czy raczej taki z dupy wzięty. masz rezystor ~4k7 podciągający linię data do zasilania?
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Nie ma regularności. Układ chodzi tydzień i jest ok, potem sypią się awarie. Albo awarie co kilka godzin po włączeniu. Rezystor oczywiście jest, aktualnie 2k35, przedtem 4k7.
Jedyne co zmieniłem w sofcie to dodanie LCD wg wskazówek Roberta. Na razie usunę
Piszę starannie po Polsku. O ile daję radę.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

Obstawiam że LCD nie jest powodem błędów. To wygląda na jakieś zakłócenia wyłapywane przez kable. W tym naszym hobby na 100% sieją regulatory fazowe - grupowe raczej nie powinny siać. Może sprawdź czy awarie występują po odłączeniu regulatora mocy grzania.
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Mam jeden SSR i dwa klasyczne przekaźniki (cewka 12V, styki 230v/30A) ale to wszystko na testach nie działa.
Przyjrzę się instalacji elektrycznej mimo iż zainstalowałem filtr przeciwzakłóceniowy.
Piszę starannie po Polsku. O ile daję radę.
Awatar użytkownika

.Gacek
2000
Posty: 2383
Rejestracja: niedziela, 18 paź 2015, 14:00
Krótko o sobie: Marzyciel
Ulubiony Alkohol: Własny.
Lokalizacja: Gorzów Wlkp.
Podziękował: 268 razy
Otrzymał podziękowanie: 338 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: .Gacek »

Kolego w takim razie spróbuj zasilić układ z power banku. Ja mam u siebie taki najtańszy z sieciówki 4800mAh i cały proces bez problemu wytrzymuje.
Pozwoli Ci to sprawdzić czy problemem są zakłócenia w sieci energetycznej czy jednak szukać gdzie indziej.
Pozdrawiam Gacek.
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Power bank nie zapewnia napięcia 12V. Ale pomysł jest. Akumulator.
Na razie wyłączyłem zamrażarkę, taką w wieku podeszłym i patrzę co będzie. 24 godziny i cisza.
Piszę starannie po Polsku. O ile daję radę.

MastaMari
150
Posty: 168
Rejestracja: poniedziałek, 10 lut 2020, 21:47
Podziękował: 3 razy
Otrzymał podziękowanie: 15 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: MastaMari »

Chciał bym wrócić uwagę ze biblioteka OneWire dziala na zasadzie ze najniższy nr czujnika jest pierwszy w kolejce, używając funkcji sensors.getTempCByIndex wymuszamy ich kolejność co w efekcie jakiegokolwiek błędu czujnika skraca kolejne o 1 i zmienia ich kolejność na wykresie, stad wykrywalność trefnego DS jest ciężka.

ja u siebie wykorzystuje bibliotekę OneWire lecz odczytałem kody DSów i sztywno wprowadziłem je do kodu, w tym momencie gdy jakiś DS wygeneruje błąd nie mam zmiany kolejki indexowania DSów i na 100% wiem który generuje błędy.

Kod: Zaznacz cały

DeviceAddress OLMM = { nr DS18B20 }

temp_OLM = sensors.getTempC(OLMM)
Ostatnio zmieniony niedziela, 8 sie 2021, 17:29 przez MastaMari, łącznie zmieniany 1 raz.
Awatar użytkownika

drgranatt
1800
Posty: 1843
Rejestracja: poniedziałek, 13 lip 2009, 11:04
Krótko o sobie: Jestem fajnym człowiekiem:)
Ulubiony Alkohol: Nemiroff Smorodina
Status Alkoholowy: Popijacz Okazyjny
Lokalizacja: 3-city
Podziękował: 127 razy
Otrzymał podziękowanie: 204 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: drgranatt »

Koledze załączająca się chłodziarka niszczyła przekaźniki SSR w sterowniku piwa.
"最不喜欢的粗鲁所持的以及各种各样的虚伪的混蛋。"
http://alkohole-domowe.com/forum/regulatory-drgranatta-t6000.html
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

MastaMari pisze:
ja u siebie wykorzystuje bibliotekę OneWire lecz odczytałem kody DSów i sztywno wprowadziłem je do kodu, w tym momencie gdy jakiś DS wygeneruje błąd nie mam zmiany kolejki indexowania DSów i na 100% wiem który generuje błędy.

Kod: Zaznacz cały

DeviceAddress OLMM = { nr DS18B20 }

temp_OLM = sensors.getTempC(OLMM)
U mnie nie poszło. MAC adresy się czytają ale rozdzielczość niska , jedna cyfra po kropce i błąd "AWARIA" .
Czy możesz podać numery wersji libów OneWire i Dallas ?

Może jakieś zależności czasowe tu grają, DeviceAddress UFO = {xyz.....} za wolno czyta ?
Ostatnio zmieniony piątek, 27 sie 2021, 11:37 przez k.kolumb, łącznie zmieniany 2 razy.
Piszę starannie po Polsku. O ile daję radę.
Awatar użytkownika

Autor tematu
robert4you
950
Posty: 951
Rejestracja: środa, 30 mar 2016, 18:43
Podziękował: 9 razy
Otrzymał podziękowanie: 134 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: robert4you »

Sposób czytania dallasów nie ma wpływu na
Rozdzielczość.

Wysłane z mojego SM-A715F przy użyciu Tapatalka
************************************************************************
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Kod: Zaznacz cały

DeviceAddress WODAM = { 0x28, 0x88, 0x37, 0x5B, 0x0D, 0x00, 0x00, 0xDC };
I tak 6 razy. Adresy dobre, aplikcja wyświetla co trzeba][

Kod: Zaznacz cały

temp_woda = sensors.getTempC(WODAM);
I tak 6 razy.
To daje taki efekt. Reszta kodu w zasadzie bz. Poza obsługą LCD która od początku nie robi problemu.
Piszę starannie po Polsku. O ile daję radę.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

Wklej większy kawałek kodu...

rozumiem że masz to w funkcji

Kod: Zaznacz cały

void loop() {
DeviceAddress nazwa1 = {....};
DeviceAddress nazwa2 = {....};
..
..
..
sensors.requestTemperatures();
float temp1 = sensors.getTempC(nazwa1);
float temp2 = sensors.getTempC(nazwa2);

}

Kod: Zaznacz cały

sensors.requestTemperatures();
to powyżej jest bardzo ważne... bo tam idzie do czujnika komenda zlecająca pomiar temperatury
Ostatnio zmieniony piątek, 27 sie 2021, 21:18 przez rastro, łącznie zmieniany 1 raz.
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Kod: Zaznacz cały

void blinkLedWidget() //co 1 sek
{ 
     sensors.requestTemperatures();

     /*
     temp_woda = sensors.getTempCByIndex(0);
     temp_OLM = sensors.getTempCByIndex(1); 
     temp_bufor = sensors.getTempCByIndex(2);
     temp_10p = sensors.getTempCByIndex(3);
     temp_zbiornik = sensors.getTempCByIndex(4);
     temp_UFO = sensors.getTempCByIndex(5);
     */
     DeviceAddress WODAM = { 0x28, 0x88, 0x37, 0x5B, 0x0D, 0x00, 0x00, 0xDC };
     DeviceAddress BUFORM = { 0x28, 0x32, 0x6D, 0x04, 0x26, 0x20, 0x01, 0xB4 };
     DeviceAddress OLMM = { 0x28, 0x8C, 0x59, 0x79, 0xA2, 0x00, 0x03, 0x8F };
     DeviceAddress POLKAM = { 0x28, 0x56, 0x9C, 0xFD, 0x25, 0x20, 0x01, 0xC6 };
     DeviceAddress ZBIORNIKM = { 0x28, 0xE1, 0xD6, 0xE4, 0x25, 0x20, 0x01, 0xBB };
     DeviceAddress UFOM = { 0x28, 0x25, 0xE9, 0x5B, 0x0D, 0x00, 0x00, 0x36 };
    
  
     temp_woda = sensors.getTempC(WODAM);
     temp_bufor = sensors.getTempC(BUFORM);
     temp_OLM = sensors.getTempC(OLMM);
     temp_10p = sensors.getTempC(POLKAM);
     temp_zbiornik = sensors.getTempC(ZBIORNIKM);
     temp_UFO = sensors.getTempC(UFOM);
    
      lcd.setCursor(0, 0);  lcd.print("GLO: "); lcd.print(temp_UFO);
      lcd.setCursor(12, 0); lcd.print(WiFi.RSSI()); lcd.print(" dBm");
      lcd.setCursor(0, 1);  lcd.print("10p: "); lcd.print(temp_10p);
      lcd.setCursor(0, 2);  lcd.print("zbi: "); lcd.print(temp_zbiornik);
      lcd.setCursor(11, 2); lcd.print("buf:"); lcd.print(temp_bufor);
      lcd.setCursor(0, 3);  lcd.print("WOD: "); lcd.print(temp_woda);
      lcd.setCursor(11, 3); lcd.print("ssr:"); lcd.print(temp_OLM);
      

A potem bez zmian - kod z pierwszej strony wątku.
Piszę starannie po Polsku. O ile daję radę.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

Dziwne, jak rozumiem pojawia się błąd związany z odczytem temperatury:

Kod: Zaznacz cały

    if (awaria == 1 && x == 0) {
        led3.on();
        Blynk.notify("AWARIA!  Błąd pomiaru temperatury!!!");
        x = 1;
    }
tylko to ew. trafia na LCD
Ostatnio zmieniony sobota, 28 sie 2021, 09:57 przez rastro, łącznie zmieniany 1 raz.
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

Nie, lcd wyświetla ok, system się zatrzymywał - LED AWARIA

Kod: Zaznacz cały

  sensors.requestTemperatures();   //bezpośrednio przed odczytem

   float temp_woda = sensors.getTempC(WODAM);
   float temp_bufor = sensors.getTempC(BUFORM);
   float temp_OLM = sensors.getTempC(OLMM);
          temp_10p = sensors.getTempC(POLKAM);  //???????????????????????????????????????
   float temp_zbiornik = sensors.getTempC(ZBIORNIKM);
   float temp_UFO = sensors.getTempC(UFOM);
Teraz temperatury dobrze się czytają, jest po przecinku (w zasadzie kropce) tyle cyfr ile trzeba.
A dlaczego przed temp_10p nie ma float ? Bo nie można było ustawić alarmu - temperatury dnia, było tylko 0.000
Niestety, metoda poniżej nie działa, chyba się poddam, od razu awaria.

Kod: Zaznacz cały

if
    ((temp_woda<=0)||(temp_woda>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru WODA!!!");
      x=1;
      }
I z Blynk.notify ogólnie jest cóś, nie widziałem ani razu tego typu komunikatu, nawet z kodem oryginalnym. Serwer lokalny.
Ale idzie z tym żyć, ważne że następuje wyłączenie .

@rastro - dzięki wielkie, pomogłeś !
Ostatnio zmieniony sobota, 28 sie 2021, 15:09 przez k.kolumb, łącznie zmieniany 1 raz.
Piszę starannie po Polsku. O ile daję radę.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

Kod: Zaznacz cały

  float temp_woda = sensors.getTempC(WODAM);
   float temp_bufor = sensors.getTempC(BUFORM);
   float temp_OLM = sensors.getTempC(OLMM);
          temp_10p = sensors.getTempC(POLKAM);  //???????????????????????????????????????
   float temp_zbiornik = sensors.getTempC(ZBIORNIKM);
   float temp_UFO = sensors.getTempC(UFOM);
Te zmienne są zadeklarowane wcześniej:

Kod: Zaznacz cały

BlynkTimer timer;

float temp_zbiornik = 0;
float temp_bufor = 0;
float temp_10p = 0;
float temp_OLM = 0;
float temp_UFO = 0;
float temp_woda = 0;
float temp_dnia = 80;
myk polega na tzw. zasięgach...

jak dasz to:

Kod: Zaznacz cały

temp_10p = sensors.getTempC(POLKAM);  //???????????????????????????????????????
z float to w funkcji:

Kod: Zaznacz cały

void blinkLedWidget()
definiujesz zmienną lokalną, która przykrywa tą zdefiniowaną wcześniej globalnie... i dlatego temp_10p w funkcji

Kod: Zaznacz cały

void loop()
będzie miała wciąż wartość zero. w przypadku pozostałych temperatur nie ma to znaczenia ponieważ te temperatury nie wychodzą poza zakres funkcji void blinkLedWidget().

Takie tam technikalia - gdyby ktoś był zainteresowany.
kod_img.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony niedziela, 29 sie 2021, 11:56 przez rastro, łącznie zmieniany 2 razy.
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett

MastaMari
150
Posty: 168
Rejestracja: poniedziałek, 10 lut 2020, 21:47
Podziękował: 3 razy
Otrzymał podziękowanie: 15 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: MastaMari »

U siebie definicje adresów DS18B20 mam na samej górze jeszcze przed wywołałem jakiejkolwiek funkcji.

Kod: Zaznacz cały

DeviceAddress OLMM = {0x28, 0x69, 0x28, 0xB6, 0x33, 0x20, 0x1, 0xB0};
następnie funkcja odczytująca kolejność DS18.

Kod: Zaznacz cały

void sensor()
{
  sensors.requestTemperatures();

  temp_OLM = sensors.getTempC(OLMM);

}
W zbiorczej funkcji wywołuje funkcje (sensor) i tam już mam przypisane odwołania.

Kod: Zaznacz cały

    if
    ((temp_OLM <= 0) || (temp_OLM >= 110))
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru OLM!!!");
    }
u mnie działa wszystko poprawnie, odczyt dsów jest z taka sama częstotliwością.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

Ja ostatnią odpowiedź kolegi @k.kolumb zrozumiałem tak że zamiast temp10p = get...() zrobił tak float temp10p = getTemp...() co całkowicie zmienia dostępność tej informacji w innym miejscu programu. Efekt był taki że warunki sprawdzające w innym miejscu zgłaszały awarię ponieważ temp10p poza funkcją czytającą temperatury miała wartość 0.000. Same deklaracje DeviceAddress nie mają tutaj znaczenia - swoją drogą zamiast wpisywania ich na sztywno skorzystał bym z biblioteki EEPROM.h żeby zapisać adresy i do tego jakaś tablica mapująca - ale to trzeba by było pomyśleć jak to razem złożyć.
Ostatnio zmieniony niedziela, 29 sie 2021, 20:55 przez rastro, łącznie zmieniany 1 raz.
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

MastaMari pisze:U siebie definicje adresów DS18B20 mam na samej górze jeszcze przed wywołałem jakiejkolwiek funkcji.
Niestety, mnie trzeba wytłumaczyć tak jak chłop tłumaczy krowie na miedzy.
Wydaje się że się stosuję do Twoich wskazówek, a ciągle jest coś nie tak. Załączam cały kod może znajdziesz chwilę żeby zerknąć nań w interesującym nas zakresie. Pozdrawiam .

Kod: Zaznacz cały

/*
   ZAPISY DO BLYNK
V1 led1 OK
V2 zapamiętaj temperaturę dnia
V3 temperatura dnia
V4 grzałka 2
V5 grzałka 3

V11 led2 EZ (ARC)
V12 led3 AWARIA
V13 led4 KONIEC

V15 RSSI

V20 SSR_time

V25 EZ_time

V30 praca

V50 zbiornik
V51 bufor
V52 10p
V53 OLM
V54 UFO
V55 woda
*/

//V25.08 data ostatniej modyfikacji

 TaskHandle_t Task1;
//#define BLYNK_PRINT Serial
#include <DallasTemperature.h>
#include <OneWire.h>
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#include <WiFiClient.h>
#include <WiFi.h>
#include <LiquidCrystal_I2C.h>

#define EZPin 12 // EZ
#define RelayPin 14 // grzałka 1
#define RelayPin2 4 // grzałka 2
#define RelayPin3 25 // grzałka 3

#define ONE_WIRE_BUS 5 // temperatura
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 20, 4);

int SSR_time=0;
int EZ_time=0;
int EZ_time2=0;
unsigned long windowStartTime=0;
unsigned long windowStartTime1=0;

char auth[] = "PSgjxPMBqpeMVZ4Umwtureutueriu";
char ssid[] = "eueueue";
char pass[] = "bvbvbvbvb";

WidgetLED led1(V1);//ok
WidgetLED led2(V11);// EZ
WidgetLED led3(V12);//awaria
WidgetLED led4(V13);//koniec

BlynkTimer timer;

float temp_zbiornik = 0;
float temp_bufor = 0;
float temp_10p = 0;
float temp_OLM = 0;
float temp_UFO = 0;
float temp_woda = 0;
float temp_dnia = 80;

int grzalka_2=0;
int grzalka_3=0;

int koniec=0;
int awaria=0;
int praca=0;
int x=0;
int skok=0; // skok na 10p
int EZ=0; // stan EZ
int EZstop;
int a=0;
int b=0;
int c=0;

//**************************************************
BLYNK_WRITE(V20) 
{
 SSR_time = param.asInt();
}
//***************************************************
BLYNK_WRITE(V25) 
{
 EZ_time = param.asInt();
}
//**************************************************
BLYNK_WRITE(V30) 
{
 praca = param.asInt();
}
//*******************************************************
BLYNK_WRITE(V2) 
{
 c = param.asInt();
 if (c==1){Blynk.setProperty(2,"color","#66ff33");Blynk.setProperty(2,"offLabel",temp_10p);temp_dnia=(temp_10p+0.125);}
}
//*******************************************************

BLYNK_WRITE(V4) 
{
 grzalka_2 = param.asInt();
}
//*******************************************************

BLYNK_WRITE(V5) 
{
 grzalka_3 = param.asInt();
}
//*******************************************************


void blinkLedWidget() //co 1 sek
{ 
    
  /*     
     temp_woda = sensors.getTempCByIndex(0);
     temp_OLM = sensors.getTempCByIndex(1); 
     temp_bufor = sensors.getTempCByIndex(2);
     temp_10p = sensors.getTempCByIndex(3);
     temp_zbiornik = sensors.getTempCByIndex(4);
     temp_UFO = sensors.getTempCByIndex(5);
 */   

     DeviceAddress WODAM = { 0x28, 0x88, 0x37, 0x5B, 0x0D, 0x00, 0x00, 0xDC };
     DeviceAddress BUFORM = { 0x28, 0x32, 0x6D, 0x04, 0x26, 0x20, 0x01, 0xB4 };
     DeviceAddress OLMM = { 0x28, 0x8C, 0x59, 0x79, 0xA2, 0x00, 0x03, 0x8F };
     //DeviceAddress OLMM = { 0x28, 0x16, 0x0D, 0x54, 0x0D, 0x00, 0x00, 0xDD };//zapasowy czujnik na radiatorze
     DeviceAddress POLKAM = { 0x28, 0x56, 0x9C, 0xFD, 0x25, 0x20, 0x01, 0xC6 };
     DeviceAddress ZBIORNIKM = { 0x28, 0xE1, 0xD6, 0xE4, 0x25, 0x20, 0x01, 0xBB };
     DeviceAddress UFOM = { 0x28, 0x25, 0xE9, 0x5B, 0x0D, 0x00, 0x00, 0x36 };
    
     sensors.requestTemperatures();

     
   temp_woda = sensors.getTempC(WODAM);
   temp_bufor = sensors.getTempC(BUFORM);
   temp_OLM = sensors.getTempC(OLMM);
   temp_10p = sensors.getTempC(POLKAM);
   temp_zbiornik = sensors.getTempC(ZBIORNIKM);
   temp_UFO = sensors.getTempC(UFOM);
    
 

      lcd.setCursor(0, 0);  lcd.print("GLO: "); lcd.print(temp_UFO);
      lcd.setCursor(12, 0); lcd.print(WiFi.RSSI()); lcd.print(" dBm");
      lcd.setCursor(0, 1);  lcd.print("10p: "); lcd.print(temp_10p);
      lcd.setCursor(0, 2);  lcd.print("zbi: "); lcd.print(temp_zbiornik);
      lcd.setCursor(11, 2); lcd.print("buf:"); lcd.print(temp_bufor);
      lcd.setCursor(0, 3);  lcd.print("WOD: "); lcd.print(temp_woda);
      lcd.setCursor(11, 3); lcd.print("ssr:"); lcd.print(temp_OLM);
      
      
    Blynk.virtualWrite(50,temp_zbiornik);
    Blynk.virtualWrite(51,temp_bufor);
    Blynk.virtualWrite(52,temp_10p);
    Blynk.virtualWrite(53,temp_OLM);
    Blynk.virtualWrite(54,temp_UFO);
    Blynk.virtualWrite(55,temp_woda);
    Blynk.virtualWrite(15,(WiFi.RSSI()));// RSSI value KG

    Blynk.virtualWrite(26,SSR_time);
    Blynk.virtualWrite(11,EZ);
    Blynk.virtualWrite(30,praca);
    if(praca==0){Blynk.setProperty(30,"color","#D3435C");}
    if(praca==1){Blynk.setProperty(30,"color","#66ff33");}

    

//*******************Słabe chłodzenie****************************


if(temp_UFO>=60)
  {
  praca=0;
  led3.on();
  if(a<3)
   {
   Blynk.notify("AWARIA!UFO za gorące!!!STOP!");
   a++;
   }
  }
 

if(temp_woda>=60)
  {
  praca=0;
  led3.on();
  if(b<3)
   {
   Blynk.notify("AWARIA!Woda za gorąca!!! STOP!");
   b++;
   }
  }

 if(temp_UFO<58&&temp_woda<60&&awaria==0){led3.off();}
 if(temp_UFO<58){a=0;}
 if(temp_woda<58){b=0;}

//******************Błąd temperatury**************************************
  /*
    if
    (
    (temp_zbiornik<=0)||(temp_zbiornik>=110)
    ||(temp_bufor<=0)||(temp_bufor>=110)
    ||(temp_10p<=0)||(temp_10p>=110)
    ||(temp_OLM<=0)||(temp_OLM>=110)
    ||(temp_UFO<=0)||(temp_UFO>=110)
    ||(temp_woda<=0)||(temp_woda>=110)
    )
    {
     awaria=1;
     praca=0;
    }
    if(awaria==1&&x==0)
    {
     led3.on();
     Blynk.notify("AWARIA!  Błąd pomiaru temperatury!!!");
     x=1;
    }

 */
 
 if
    ((temp_woda<=0)||(temp_woda>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru WODA!!!");
      x=1;
      }
 

if
    ((temp_bufor<=0)||(temp_bufor>=110))
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru BUFOR!!!");
      x=1;
    }
 
 if
    ((temp_OLM<=0)||(temp_OLM>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru SSR!!!");
     x=1;
    }
 
 if
    ((temp_10p<=0)||(temp_10p>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru 10 POLKA!!!");
     x=1;
    }
 
 if
    ((temp_zbiornik<=0)||(temp_zbiornik>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru ZBIORNIK!!!");
       x=1;      }
    
if
    ((temp_UFO<=0)||(temp_UFO>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru UFO!!!");
     x=1;
    }
  
   if(awaria==1&&x==0)
    {
     led3.on();
     //Blynk.notify("AWARIA!  Błąd pomiaru temperatury!!!");
     x=1;
    }
 
  
  
//****KONIEC PROCESU**************************************************************
   if((temp_zbiornik>=98)&&(temp_bufor>=96)&&(praca==1)&&(koniec==0))
    {
     koniec=1;
     praca=0;
     digitalWrite(RelayPin, LOW);Blynk.virtualWrite(10,0);led4.on();
     Blynk.notify("KONIEC! Temperatura bufora osiągnięta!!!"); 
    }

  if (led1.getValue())
  {
    led1.off();
    //Serial.println("LED on V1: off");
  } 
  else 
  {
    led1.on();
    //Serial.println("LED on V1: on");
  }
}


void setup()
{
  // initialize LCD
  Wire.begin(16, 17);
  lcd.init();             
  lcd.clear();
  lcd.backlight();
      
  xTaskCreatePinnedToCore(Task1code,"Task1",10000,NULL,0,&Task1,0);

  Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 230), 8080);
 
   pinMode(RelayPin, OUTPUT);
   pinMode(RelayPin2, OUTPUT);
   pinMode(RelayPin3, OUTPUT);
   pinMode(EZPin, OUTPUT);
   digitalWrite(RelayPin, LOW);
   digitalWrite(RelayPin2, LOW);
   digitalWrite(RelayPin3, LOW);  
   digitalWrite(EZPin, LOW);

  sensors.setResolution(12);
  sensors.begin();
 //sensors.setWaitForConversion(false);
  
  timer.setInterval(1000L, blinkLedWidget);
 
  windowStartTime = millis();
  windowStartTime1 = millis();

  led1.off();
  led2.off();
  led3.off();
  led4.off();
  Blynk.virtualWrite(30,0);
  Blynk.setProperty(30,"color","#D3435C");
  Blynk.virtualWrite(20,0);
  Blynk.virtualWrite(25,0);
  Blynk.virtualWrite(4,0);
  Blynk.virtualWrite(5,0);
  Blynk.setProperty(2,"offLabel","USTAW ALARM");
  
 
}

void loop()
{

  Blynk.run();
  timer.run();

 //**************skok na 10 półce*******************
  if(temp_10p>temp_dnia&&EZ_time>0&&EZstop==0){digitalWrite(EZPin, LOW); EZstop=1; Blynk.notify("10p skok temperatury!  Odbiór STOP!");}
  if(temp_10p<=(temp_dnia-0.1)&&EZstop==1){EZstop=0; EZ_time -=5;Blynk.notify("KOREKTA 5% ODBIÓR START!");Blynk.virtualWrite(25,EZ_time);}

  
 //*************sterowanie grzałek dodatkowych
  
   if(grzalka_2==1&&praca==1&&koniec==0&&awaria==0){digitalWrite(RelayPin2,HIGH);}
   else {digitalWrite(RelayPin2,LOW);}

   if(grzalka_3==1&&praca==1&&koniec==0&&awaria==0){digitalWrite(RelayPin3,HIGH);}
   else {digitalWrite(RelayPin3,LOW);}

}


void Task1code( void * pvParameters )
{
 // polecenia wykonywane jak w funkcji setup()
   pinMode(RelayPin, OUTPUT);
   pinMode(EZPin, OUTPUT);
   digitalWrite(RelayPin, LOW);  
   digitalWrite(EZPin, LOW);

   windowStartTime = millis();
   windowStartTime1 = millis();

  
  for(;;) 
    {
      // polecenia wykonywane jak w funkcji loop()
       //*****PWM*********************************


  if ((millis() - windowStartTime) >1000)
  { 
    windowStartTime += 1000;
  }
  
  if ((SSR_time*10) < (millis() - windowStartTime))
  {
    digitalWrite(RelayPin, LOW);
  }
  else 
  {
    if (koniec==0 && awaria==0 && praca==1)
    {
    digitalWrite(RelayPin, HIGH);
    }
  }

  //***************EZ**********************************


 if ((millis() - windowStartTime1) >5000)
  { 
    windowStartTime1 += 5000;
  }
  
  if ((EZ_time*50) < (millis() - windowStartTime1))
  {
    digitalWrite(EZPin, LOW);EZ=0;
  }
  else 
  {
   if (koniec==0 && awaria==0 && praca==1 && EZstop==0)
   {
    digitalWrite(EZPin, HIGH);EZ=255;
   }
  }
    }
}
Piszę starannie po Polsku. O ile daję radę.

MastaMari
150
Posty: 168
Rejestracja: poniedziałek, 10 lut 2020, 21:47
Podziękował: 3 razy
Otrzymał podziękowanie: 15 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: MastaMari »

@k.kolumb przenieś definicje adresów DS z funkcji zaraz pod definicje globalne, np pod #include

W tym monecie program co 1s definiuje na nowo DS i następnie czyta ich kody co stanowczo spowalnia proces, to powinno pomoc.

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

To akurat nie ma większego znaczenia, tam pewnie i tak te adresy są gdzieś w stałym miejscu pamięci, a przepisują się tylko wskaźniki.
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett

rastro
2500
Posty: 2557
Rejestracja: wtorek, 15 sty 2013, 15:29
Podziękował: 83 razy
Otrzymał podziękowanie: 297 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: rastro »

Post pod poste.... ale @k.kolumb - chyba rozwiązałęm twój problem ;)

Kod: Zaznacz cały

 if ((temp_OLM<=0)||(temp_OLM>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru SSR!!!");
     x=1;
    }
 
 if ((temp_10p<=0)||(temp_10p>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru 10 POLKA!!!");
     x=1;
    }
 
 if ((temp_zbiornik<=0)||(temp_zbiornik>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru ZBIORNIK!!!");
       x=1;      }
   
if ((temp_UFO<=0)||(temp_UFO>=110));
    {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru UFO!!!");
     x=1;
    }
if warunki w nawiasach klamerka (broń boże nie średnik) bo teraz kod, który jest w klamerkach wykonuje się zawsze niezależnie co w tych if'ach jest

powinno być tak:

Kod: Zaznacz cały

 if ((temp_OLM<=0)||(temp_OLM>=110)) {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru SSR!!!");
     x=1;
    }
 
 if ((temp_10p<=0)||(temp_10p>=110)) {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru 10 POLKA!!!");
     x=1;
    }
 
 if ((temp_zbiornik<=0)||(temp_zbiornik>=110)) {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru ZBIORNIK!!!");
       x=1;      }
   
if ((temp_UFO<=0)||(temp_UFO>=110)) {
      awaria = 1;
      praca = 0;
      Blynk.notify("AWARIA!  Błąd pomiaru UFO!!!");
     x=1;
    }
Ostatnio zmieniony poniedziałek, 30 sie 2021, 13:26 przez rastro, łącznie zmieniany 1 raz.
″Iloraz inteligencji tłumu jest równy IQ najgłupszego jego przedstawiciela podzielonemu przez liczbę uczestników.„
- Terry Pratchett
Awatar użytkownika

k.kolumb
150
Posty: 194
Rejestracja: sobota, 21 cze 2014, 00:39
Krótko o sobie: Jak się do czegoś dorwę to muszę to dokładnie poznać. Np. Ameryka
Ulubiony Alkohol: Talisker
Status Alkoholowy: Popijacz Okazyjny
Podziękował: 82 razy
Otrzymał podziękowanie: 14 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja

Post autor: k.kolumb »

rastro pisze:Post pod poste.... ale @k.kolumb - chyba rozwiązałęm twój problem ;)
I rozwiązałeś ! Bez średnika działa. Dzięki wielkie :respect:
Piszę starannie po Polsku. O ile daję radę.
ODPOWIEDZ

Wróć do „Kontrola procesu destylacji”