DHT22 senzor

Bok,

Igram se sa ESP8266 i Thingspeakom, tu sve radi, podaci se uploadaju na server no ima jedan problem. DHT22 pokazuje postotak relativne vlaznosti zraka 80%, iako drugi referentni senzori pokazuju 55%. Probao sam zakaciti senzor na Raspberry Pi i ista prica. Sluti li netko u cemu bi mogao biti problem? Neispravan senzor?

Hvala!

BladeRunner

Reply to
BladeRunner
Loading thread data ...

I ja se igrah s tim, ali samo sa temperaturnim senzorima i "one wire", uglavnom je bilo velikih odstupanja u temperaturi, a 2 senzora jedan

Reply to
Dakky

Senzori su u 99% slucajeva jako tocni. Problem zna biti da se neki library za komunikaciju s odredjenim senzorom koji je u startu bio predvidjen za ATmega seriju mikrokontrolera pocne koristiti i kao driver za ESP8266 processor koji je 32 bit-ni pa onda moze doci do svakakvih pogresnih 'ocitanja'.

Ovo je primjer drivera za DS1621 temperaturni senzor koji je na AVR mikrokontrolerima radio ispravno ali na ESP8266 nije sve dok nisam autoru library-ja poslao ispravak kojega je nakon toga uvrstio u repozitorij i driver sad radi ispravno i za ESP8266:

formatting link

Problem je bio u tome da autor kada je library pisao nije racunao na to da bi int mogo zauzimati i 32 bita pa je umejsto maske 0xFFFFFF00 koristio masku 0xFF00.

Osim toga se moze vidjeti i da sam u library-ju ispravio i gresku koja je uzrokovala da se je svaka temperatura koja je manja od -1 stupanj ocitala kao 0.5 stupnja veca od stvarne.

Mislim da smo prosle godine raspravljali bas o tome :-)

--
Let There Be Light 
Custom LED driveri prema specifikacijama 
http://tinyurl.com/customleddriver 

Chupo
Reply to
Chupo

A koji si ti referentni i koliko ih ima? Mozda reference ne valjaju?

I koju temperaturu ti pokazuje DHT22 u odnosu na referentne okolo? (rel.vlaga ovisi o temperaturi zraka, a i preciznost je ovisna o temperaturi)

Koliko je udaljen DHT22 od referentnih (pogotovo visinski), i na sto su montirani (razne zone - DHT22 koji visi u zraku ne bude davao isto kao neki sobni naslonjen na hladan zid, npr.)

Kak se ponasa DHT22 i ostali kada im stavis vlage (lonac s vrelom vodom ispod)

A uz sve to, ti svi ebay senzori i nisu bas tak pouzdani izgleda :(

Ne samo da ima primjetnih razlika u mjerenjima (offset), nego i polude:

formatting link

--
Opinions above are GNU-copylefted.
Reply to
Matija Nalis

a ako zakljucis da je senzor strgan, prije nego ga bacis mozes probati ovo:

formatting link

--
Opinions above are GNU-copylefted.
Reply to
Matija Nalis

A koji si ti referentni i koliko ih ima? Mozda reference ne valjaju?

I koju temperaturu ti pokazuje DHT22 u odnosu na referentne okolo? (rel.vlaga ovisi o temperaturi zraka, a i preciznost je ovisna o temperaturi)

Koliko je udaljen DHT22 od referentnih (pogotovo visinski), i na sto su montirani (razne zone - DHT22 koji visi u zraku ne bude davao isto kao neki sobni naslonjen na hladan zid, npr.)

Kak se ponasa DHT22 i ostali kada im stavis vlage (lonac s vrelom vodom ispod)

A uz sve to, ti svi ebay senzori i nisu bas tak pouzdani izgleda :(

Ne samo da ima primjetnih razlika u mjerenjima (offset), nego i polude:

formatting link

--
Opinions above are GNU-copylefted. 

Imam 2 mjeraca temp i vlage, jedan je stand alone sa Sensirion DHT senzorom  
ne znam na pamet kojim, drugi je willhi higrostat koji sam koristio za  
usporedbu. Oba instrumenta su pokazivala relativnu vlaznost s odstupanjem od  
1-2%, dok je DHT pokazivao za 30ak % vise iako su sva 3 senzora bili jedan  
do dugog. 

Siguran sam da je moj DHT poludio, btw., temp. pokazuje dobro, a vlaznost  
preko 80%.  Imam jedno pitanje vezano uz thingspeak. Zasto nakon X sati  
"padne" stream na thingspeak? Isprobavam razlicite verzije koda koje sam  
pronasao na webu s obzirom da nemam pojma o programiranju :) Mozda je do  
code-a... 


Za kraj, definitivno ti DHT senzori ne valjaju nista. Cheap Chinese crap.
Reply to
BladeRunner

Da li to znaci da si eliminirao problem s driverima za razne senzore pisanima za AVR mikrokontrolere u kombinaciji s 32 bitnim processorima ko sta su ESP8266 ili ESP32? Mislim na problem kojega sam opisao u odgovoru Dakky-ju.

--
Let There Be Light 
Custom LED driveri prema specifikacijama 
http://tinyurl.com/customleddriver 

Chupo
Reply to
Chupo

Da li to znaci da si eliminirao problem s driverima za razne senzore pisanima za AVR mikrokontrolere u kombinaciji s 32 bitnim processorima ko sta su ESP8266 ili ESP32? Mislim na problem kojega sam opisao u odgovoru Dakky-ju.

Srecom postoje libraries koje su spremne za rad sa ESP8266.

Nego, imam jedan problemcic, slozio sam si vremensku stanicu s esp i max7219 modulima i stvar funkcionira, no sat pokazuje +1H.

Vjerujem koliko malo se kuzim u kodiranje da je do ovog:

void updateTime() { long curEpoch = localEpoc + ((millis() - localMillisAtUpdate) / 1000); long epoch = round(curEpoch + 3600 * utcOffset + 86400L) % 86400L; h = ((epoch % 86400L) / 3600) % 24; m = (epoch % 3600) / 60; s = epoch % 60; }

s naglaskom na utcOffset + 86400L ?

Inace podatke vuce sa api.openweathermap.org.

Hvala svima na odgovorima btw :)

BladeRunner

Reply to
BladeRunner

Ovo 86400 (sekundi) je 'plus jedan dan' a sat vise je ovo:

3600 * utcOffset

To znaci da variabla utcOffset ne uzima u obzir pomak sata pa treba negdje prije sloziti da se u obzir uzme i to ili jednostavno stavis:

round(curEpoch + 3600 * (utcOffset - 1) + 86400L) % 86400L;

Ako se variabla utcOffset update-a u svakom prolazu kroz petlju onda mozes staviti i:

long epoch = round(curEpoch + 3600 * --utcOffset + 86400L) % 86400L;

Znaci, umjesto utcOffset stavis --utcOffset

Ali ako se ta variabla negdje podesava samo jedanput onda ne mozes koristiti -- jer bi se onda vrijednost te variable stalno mijenjala.

Epoch vrijeme je Unix-ov nacin racunanja vremena gdje se svaki datum gleda kao broj sekundi proteklih od 01.01.1970.

86400 sekundi je jedan dan a 3600 sekundi je jedan sat tako da korekciju sati radis tamo gdje se mnozi s 3600.
--
Let There Be Light 
Custom LED driveri prema specifikacijama 
http://tinyurl.com/customleddriver 

Chupo
Reply to
Chupo

Ovo 86400 (sekundi) je 'plus jedan dan' a sat vise je ovo:

3600 * utcOffset

To znaci da variabla utcOffset ne uzima u obzir pomak sata pa treba negdje prije sloziti da se u obzir uzme i to ili jednostavno stavis:

round(curEpoch + 3600 * (utcOffset - 1) + 86400L) % 86400L;

Ako se variabla utcOffset update-a u svakom prolazu kroz petlju onda mozes staviti i:

long epoch = round(curEpoch + 3600 * --utcOffset + 86400L) % 86400L;

Znaci, umjesto utcOffset stavis --utcOffset

Ali ako se ta variabla negdje podesava samo jedanput onda ne mozes koristiti -- jer bi se onda vrijednost te variable stalno mijenjala.

Epoch vrijeme je Unix-ov nacin racunanja vremena gdje se svaki datum gleda kao broj sekundi proteklih od 01.01.1970.

86400 sekundi je jedan dan a 3600 sekundi je jedan sat tako da korekciju sati radis tamo gdje se mnozi s 3600.
--
Let There Be Light 
Custom LED driveri prema specifikacijama 
http://tinyurl.com/customleddriver 

Chupo 

Hvala na odgovoru
Reply to
BladeRunner

Ovo 86400 (sekundi) je 'plus jedan dan' a sat vise je ovo:

3600 * utcOffset

To znaci da variabla utcOffset ne uzima u obzir pomak sata pa treba negdje prije sloziti da se u obzir uzme i to ili jednostavno stavis:

round(curEpoch + 3600 * (utcOffset - 1) + 86400L) % 86400L;

Ako se variabla utcOffset update-a u svakom prolazu kroz petlju onda mozes staviti i:

long epoch = round(curEpoch + 3600 * --utcOffset + 86400L) % 86400L;

Znaci, umjesto utcOffset stavis --utcOffset

Ali ako se ta variabla negdje podesava samo jedanput onda ne mozes koristiti -- jer bi se onda vrijednost te variable stalno mijenjala.

Epoch vrijeme je Unix-ov nacin racunanja vremena gdje se svaki datum gleda kao broj sekundi proteklih od 01.01.1970.

86400 sekundi je jedan dan a 3600 sekundi je jedan sat tako da korekciju sati radis tamo gdje se mnozi s 3600.
--
Let There Be Light 
Custom LED driveri prema specifikacijama 
http://tinyurl.com/customleddriver 

Chupo 


Chupo ti si genije, imas od mene pivu :) Dao sam si malo truda i sad  
pokazuje vrijeme kako treba. Hvala jos jednom!
Reply to
BladeRunner

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.