Discussion:
DHT22 senzor
(prestaro za odgovor)
BladeRunner
2018-11-03 17:49:13 UTC
Permalink
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
Dakky
2018-11-03 17:52:15 UTC
Permalink
Post by BladeRunner
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
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
pored drugog... pa je zakljucak bio da su ti kineski stvarno loši
odnosno loše kalibrirani... uzmeš sredinu pa je valjda točno :D
Chupo
2018-11-03 18:42:18 UTC
Permalink
In article <prkn8c$r7r$***@sunce.iskon.hr>, Dakky <***@hi.t-com.hr>
says...
Post by Dakky
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
pored drugog... pa je zakljucak bio da su ti kineski stvarno loši
odnosno loše kalibrirani... uzmeš sredinu pa je valjda točno :D
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:

http://tinyurl.com/jh7mabh

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
Matija Nalis
2018-11-04 12:08:14 UTC
Permalink
Post by BladeRunner
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?
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:
http://www.kandrsmith.org/RJS/Misc/Hygrometers/dht22_first_failure.html#figure1
--
Opinions above are GNU-copylefted.
Matija Nalis
2018-11-04 12:34:54 UTC
Permalink
Post by BladeRunner
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?
a ako zakljucis da je senzor strgan, prije nego ga bacis mozes probati ovo:
http://www.kandrsmith.org/RJS/Misc/Hygrometers/calib_many_afterbake.html
--
Opinions above are GNU-copylefted.
BladeRunner
2018-11-04 17:23:37 UTC
Permalink
Post by BladeRunner
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?
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:
http://www.kandrsmith.org/RJS/Misc/Hygrometers/dht22_first_failure.html#figure1
--
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.
Chupo
2018-11-04 18:46:29 UTC
Permalink
Post by BladeRunner
Za kraj, definitivno ti DHT senzori ne valjaju nista. Cheap Chinese crap.
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
BladeRunner
2018-11-06 16:04:14 UTC
Permalink
Post by BladeRunner
Za kraj, definitivno ti DHT senzori ne valjaju nista. Cheap Chinese crap.
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
Chupo
2018-11-06 17:10:23 UTC
Permalink
Post by BladeRunner
Nego, imam jedan problemcic, slozio sam si vremensku stanicu s esp i max7219
modulima i stvar funkcionira, no sat pokazuje +1H.
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.
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
BladeRunner
2018-11-07 13:28:24 UTC
Permalink
Post by BladeRunner
Nego, imam jedan problemcic, slozio sam si vremensku stanicu s esp i max7219
modulima i stvar funkcionira, no sat pokazuje +1H.
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.
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
BladeRunner
2018-11-07 15:17:35 UTC
Permalink
Post by BladeRunner
Nego, imam jedan problemcic, slozio sam si vremensku stanicu s esp i max7219
modulima i stvar funkcionira, no sat pokazuje +1H.
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.
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!
Loading...