Błąd wskazań czujnika deszczu
Zauważyłem dziś różnicę po między tym co widać na serwerze a tym co widać w aplikacji na telefonie , tzn w aplikacji pokazuje 100x mniej , może to jest przyczyną że zerują mi się pomiary z deszczomierza bo double się przepełnia . Może zaskoczę was pytaniem , ale jaka jest maksymalna wartość dla zmiennej double w esp8266 , bo znalazłem w sieci niby zajmuje 8 bajtów, liczbę całkowitą bym sobie wyliczył ale jak to jest ze zmiennoprzecinkową. Przepraszam ale brakuje mi wiedzy ... podstawowej
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
double jest zapisywany inaczej niż liczby całkowite. Z reguły jest tam jakaś część opisująca liczbę, oraz wykładnik opisujący przez ile ją trezba pomnożyć. Np. coś w stylu "2,323523 * 10^13" - przy czym tylko to 2,32... i 13 są zapisane, a reszta jest wyliczana.
W praktyce double może zapisać ogromną liczbę, ale wtedy tracisz precyzję i jeśli dodajesz liczbę mniejszą niż aktualna precyzja, to takie dodawanie przestaje działać.
W praktyce double może zapisać ogromną liczbę, ale wtedy tracisz precyzję i jeśli dodajesz liczbę mniejszą niż aktualna precyzja, to takie dodawanie przestaje działać.
Widzimy się na Supla Offline Party vol. 2
Moja funkcja deszczomierza wygląda tak :klew pisze: ↑wt cze 30, 2020 8:36 am double jest zapisywany inaczej niż liczby całkowite. Z reguły jest tam jakaś część opisująca liczbę, oraz wykładnik opisujący przez ile ją trezba pomnożyć. Np. coś w stylu "2,323523 * 10^13" - przy czym tylko to 2,32... i 13 są zapisane, a reszta jest wyliczana.
W praktyce double może zapisać ogromną liczbę, ale wtedy tracisz precyzję i jeśli dodajesz liczbę mniejszą niż aktualna precyzja, to takie dodawanie przestaje działać.
Kod: Zaznacz cały
void RainCount() { // z przerwania
unsigned long curtime = millis();
// Make sure we don't record bounces
if ((curtime - tiptime) < interval) {
return;
}
// How long since the last tip?
tiptime = curtime;
rain += rain_gauge_cup_capacity;
}
double get_rain(int channelNumber, double t) {
//double t = -275;
t = rain;
Serial.print("Opad deszczu :");Serial.println(rain);
return t;
}
i gdy pada desczyk to pokazują sie jakies wartości które rosną aby za chwile spaść prawie do zera i tak w kółko. Nie mam pomysłu co może ją resetować.
I jeszcze jedna rzecz , mianowicie sam licznik dziwnie działa, jest ustawiony jako
Kod: Zaznacz cały
attachInterrupt(digitalPinToInterrupt(RainImpuls), RainCount,FALLING);
Gdy czas LOW jest krótki to jest ok ale gdy LOW i HIGH jest podobny to funkcja się wywołuje przy każdej zmianie , dlaczego ?
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
Wracając do opisanego przez Ciebie problemu z pierwszego posta - na serwerze (w sensie "w cloud"?) widzisz inną wartość niż na tel. Różnica jest 100x.
Taki błąd raczej nie wynika z urządzenia z czujnikiem deszczu. Apka na telefonie dostaje dane od serwera, więc one powinny się zgadzać.
Pokaż screen z clouda i apki oraz napisz jaki typ kanału do tego używasz (termometr?)
Taki błąd raczej nie wynika z urządzenia z czujnikiem deszczu. Apka na telefonie dostaje dane od serwera, więc one powinny się zgadzać.
Pokaż screen z clouda i apki oraz napisz jaki typ kanału do tego używasz (termometr?)
Widzimy się na Supla Offline Party vol. 2
Pomyliłem się nie 100 a 1000 , to tak jakby jedno pokazywało w litrach a drugie w m3.klew pisze: ↑wt cze 30, 2020 10:33 am Wracając do opisanego przez Ciebie problemu z pierwszego posta - na serwerze (w sensie "w cloud"?) widzisz inną wartość niż na tel. Różnica jest 100x.
Taki błąd raczej nie wynika z urządzenia z czujnikiem deszczu. Apka na telefonie dostaje dane od serwera, więc one powinny się zgadzać.
Pokaż screen z clouda i apki oraz napisz jaki typ kanału do tego używasz (termometr?)
Używam kanału rain ze starej bibliotecki Primary GUI V2 stworzonego na bazie termometru. Sorki za duże zdjęcia ale zrobione z telefonu
- Załączniki
-
- 2DF0746E-C82D-4A3D-AA02-622B0623D0A0.png (64.05 KiB) Przejrzano 2313 razy
-
- 01E125C8-4BE3-4035-A4D1-61B796B0113D.png (118.91 KiB) Przejrzano 2313 razy
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
W aplikacjach wartość jest dzielona przez 1000. Web tego nie robi stąd różnica. Trzeba to uporządkować.
To pewnie jest błąd w cloud przy przeliczaniu jednostek.
Tak się zastanawiam, czy nie lepiej byłoby to zrobić na kanale licznika impulsów? Wtedy byłaby historia pomiarów dostępna. Na urządzeniu liczyłbyś tylko impulsy z deszczomierza. Przeliczenie na l/m2 ustawiałbyś w cloud.
Tak się zastanawiam, czy nie lepiej byłoby to zrobić na kanale licznika impulsów? Wtedy byłaby historia pomiarów dostępna. Na urządzeniu liczyłbyś tylko impulsy z deszczomierza. Przeliczenie na l/m2 ustawiałbyś w cloud.
Widzimy się na Supla Offline Party vol. 2
To by się wiązało z przejściem na nową bibliotekę i cały program stacji przepisać od nowa a Wy tam tak "obiektujecie" że mało co ogarniamklew pisze: ↑wt cze 30, 2020 11:37 am To pewnie jest błąd w cloud przy przeliczaniu jednostek.
Tak się zastanawiam, czy nie lepiej byłoby to zrobić na kanale licznika impulsów? Wtedy byłaby historia pomiarów dostępna. Na urządzeniu liczyłbyś tylko impulsy z deszczomierza. Przeliczenie na l/m2 ustawiałbyś w cloud.
W elektronice jak nie wiadomo o co chodzi to zwykle chodzi o zasilanie
Wezmę udział w Supla Offline Party 2024
Wezmę udział w Supla Offline Party 2024
@pzygmunt z tego co pamiętam jak robilem deszczomierz i przerabialem kod to na konsoli pokazywalo poprawnie czyli np 12l/m, w apce tez. Nie bylo wtedy wskazania wartości na serwerze i byla tylko ikona. Wiec wg mnie na Cloud jest cos nie tak, to raczej serwer mnozy x1000 i to wyświetla
jak coś nie działa to włącz zasilanie.....
Więc wychodzi na to że program jest dobry?shimano73 pisze: ↑wt cze 30, 2020 11:58 amTo by się wiązało z przejściem na nową bibliotekę i cały program stacji przepisać od nowa a Wy tam tak "obiektujecie" że mało co ogarniamklew pisze: ↑wt cze 30, 2020 11:37 am To pewnie jest błąd w cloud przy przeliczaniu jednostek.
Tak się zastanawiam, czy nie lepiej byłoby to zrobić na kanale licznika impulsów? Wtedy byłaby historia pomiarów dostępna. Na urządzeniu liczyłbyś tylko impulsy z deszczomierza. Przeliczenie na l/m2 ustawiałbyś w cloud.