Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
-
- Posty: 175
- 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
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
https://blynk.io/blog/meet-the-new-blynk-platform
Wysłane z mojego SM-G960F przy użyciu Tapatalka
-
- Posty: 213
- Rejestracja: sobota, 23 sie 2014, 14:47
- Podziękował: 33 razy
- Otrzymał podziękowanie: 23 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
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.
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.
-
- 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
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.
-
- 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
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 ?
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ę.
-
- 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
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:
Na pojedyncze odniesienie sie do każdego czujnika i wyświetlenie unikalnego komunikatu np:
Pozwoli mi to w 100% określić który czujnik generuje błąd jeżeli takowy wystąpi.
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;
}
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
}
-
- 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
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.
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ę.
-
Autor tematu - Posty: 951
- Rejestracja: środa, 30 mar 2016, 18:43
- Podziękował: 9 razy
- Otrzymał podziękowanie: 134 razy
-
Autor tematu - 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
Wysłane z mojego SM-A715F przy użyciu Tapatalka
W jaki sposób zasilasz ESP.?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.
Wysłane z mojego SM-A715F przy użyciu Tapatalka
************************************************************************
-
- 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
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
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ę.
-
Autor tematu - Posty: 951
- Rejestracja: środa, 30 mar 2016, 18:43
- Podziękował: 9 razy
- Otrzymał podziękowanie: 134 razy
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
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
- Terry Pratchett
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
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
- Terry Pratchett
-
- 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
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ę
Jedyne co zmieniłem w sofcie to dodanie LCD wg wskazówek Roberta. Na razie usunę
Piszę starannie po Polsku. O ile daję radę.
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
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
- Terry Pratchett
-
- 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
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.
Przyjrzę się instalacji elektrycznej mimo iż zainstalowałem filtr przeciwzakłóceniowy.
Piszę starannie po Polsku. O ile daję radę.
-
- 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
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.
Pozwoli Ci to sprawdzić czy problemem są zakłócenia w sieci energetycznej czy jednak szukać gdzie indziej.
Pozdrawiam Gacek.
-
- 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
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.
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.
-
- 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
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 ?
U mnie nie poszło. MAC adresy się czytają ale rozdzielczość niska , jedna cyfra po kropce i błąd "AWARIA" .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)
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ę.
-
Autor tematu - Posty: 951
- Rejestracja: środa, 30 mar 2016, 18:43
- Podziękował: 9 razy
- Otrzymał podziękowanie: 134 razy
-
- 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
I tak 6 razy. Adresy dobre, aplikcja wyświetla co trzeba][
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.
Kod: Zaznacz cały
DeviceAddress WODAM = { 0x28, 0x88, 0x37, 0x5B, 0x0D, 0x00, 0x00, 0xDC };
Kod: Zaznacz cały
temp_woda = sensors.getTempC(WODAM);
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ę.
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
Wklej większy kawałek kodu...
rozumiem że masz to w funkcji
to powyżej jest bardzo ważne... bo tam idzie do czujnika komenda zlecająca pomiar temperatury
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();
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
- Terry Pratchett
-
- 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
A potem bez zmian - kod z pierwszej strony wątku.
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);
Piszę starannie po Polsku. O ile daję radę.
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
Dziwne, jak rozumiem pojawia się błąd związany z odczytem temperatury:
tylko to ew. trafia na LCD
Kod: Zaznacz cały
if (awaria == 1 && x == 0) {
led3.on();
Blynk.notify("AWARIA! Błąd pomiaru temperatury!!!");
x = 1;
}
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
- Terry Pratchett
-
- 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
Nie, lcd wyświetla ok, system się zatrzymywał - LED AWARIA
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.
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ś !
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);
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;
}
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ę.
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
Te zmienne są zadeklarowane wcześniej:
myk polega na tzw. zasięgach...
jak dasz to:
z float to w funkcji:
definiujesz zmienną lokalną, która przykrywa tą zdefiniowaną wcześniej globalnie... i dlatego temp_10p w funkcji 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: 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);
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;
jak dasz to:
Kod: Zaznacz cały
temp_10p = sensors.getTempC(POLKAM); //???????????????????????????????????????
Kod: Zaznacz cały
void blinkLedWidget()
Kod: Zaznacz cały
void loop()
Takie tam technikalia - gdyby ktoś był zainteresowany.
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
- Terry Pratchett
-
- 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
U siebie definicje adresów DS18B20 mam na samej górze jeszcze przed wywołałem jakiejkolwiek funkcji.
następnie funkcja odczytująca kolejność DS18.
W zbiorczej funkcji wywołuje funkcje (sensor) i tam już mam przypisane odwołania.
u mnie działa wszystko poprawnie, odczyt dsów jest z taka sama częstotliwością.
Kod: Zaznacz cały
DeviceAddress OLMM = {0x28, 0x69, 0x28, 0xB6, 0x33, 0x20, 0x1, 0xB0};
Kod: Zaznacz cały
void sensor()
{
sensors.requestTemperatures();
temp_OLM = sensors.getTempC(OLMM);
}
Kod: Zaznacz cały
if
((temp_OLM <= 0) || (temp_OLM >= 110))
{
awaria = 1;
praca = 0;
Blynk.notify("AWARIA! Błąd pomiaru OLM!!!");
}
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
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
- Terry Pratchett
-
- 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
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 .
Niestety, mnie trzeba wytłumaczyć tak jak chłop tłumaczy krowie na miedzy.MastaMari pisze:U siebie definicje adresów DS18B20 mam na samej górze jeszcze przed wywołałem jakiejkolwiek funkcji.
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ę.
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
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
- Terry Pratchett
-
- Posty: 2603
- Rejestracja: wtorek, 15 sty 2013, 15:29
- Podziękował: 83 razy
- Otrzymał podziękowanie: 301 razy
Re: Termometr i sterowanie kolumny przez smartfona po WiFi - nowa wersja
Post pod poste.... ale @k.kolumb - chyba rozwiązałęm twój problem
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;
}
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
- Terry Pratchett