DHT22 luchtvochtigheids- en temperatuursensor werkt niet met ESP8266

Hallo,

In onze tuin heb ik dit meetstationnetje staan: Een ESP8266 bordje, met daaraan een SDS011 fijnstofsensor en een DHT22 luchtvochigheids- en temperatuursensor. Ik heb het meetstation gebouwd volgens deze handleiding:

https://luftdaten.info/nl/sensor-bouwen/
(het aansluitschema staat ongeveer halverwege de pagina)

De fijnstofsensor werkt prima (ik vind mijn sensor terug op de kaart van het meetnetwerk van luftdaten.info), maar van de DHT22 krijg ik geen meetgegevens. Beide sensoren zijn aangemeld bij het luftdaten platform.

In eerste instantie had ik de aansluitingen van de DHT22 gesoldeerd. Bij nadere bestudering van de datasheet las ik dat het ding slecht tegen de hoge temperaturen kan die bij solderen gebruikelijk zijn. Ik ben er toen vanuit gegaan dat ik de sensor met solderen verbrand heb. Ik heb nu een nieuwe DHT22 sensor aangesloten, deze keer met jumperkabeltjes. Maar het mag niet baten (het zou toch wel stom toevallig zijn als ik (weer) een kapotte sensor heb).

Heeft iemand hier op het forum dezelfde ervaring en/of heeft iemand suggesties hoe ik dit kan oplossen?

P.S. Ik heb een paar weken geleden een mail met deze vraag gestuurd naar luftdaten.info, maar krijg geen reactie.

Ik heb deze sensor ook wel gebruikt op een RPi, en wilde dat later ook op een ESP12 doen. Dat werkte bij mij niet betrouwbaar. Deed het eerst wel, maar binnen een dag bleef de uitleesfunctie steeds hangen. De sensor gaf toen geen data en dan blijft de functie eeuwig wachten. Wel wat dingen aangepast in de driver, maar dat maakte niks uit. Oorzaak niet gevonden.
Ik heb ipv de DHT22 een BMP280 genomen. Deze doet luchtdruk en temperatuur en werkt bij mij al een paar jaar onafgebroken met een meting per 10 seconden. Er is ook een versie die luchtvochtigheid doet, da's de BME280.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Ik heb er twee lomp en onhandig met een 15 Watt boutje gesoldeerd, niks aan de hand.

Kijk eens of je in de arduino software wat zinnigs in de console ziet.

(Als je die niet hebt geïnstalleerd;
https://thingsboard.io/docs/samples/esp8266/temperature/

Als je niets ziet kan je software van hierboven eens proberen, die geeft wel seriële console output).
Pas wel deze aan:
#define DHTPIN ...

Moet er bij de dht22 geen pullup tussen de +3.3v en de data pin?

An amplifier is just a modulator for a power supply |Toffe Gebruiker

Op 27 maart 2020 09:11:42 schreef Gerwin:
Moet er bij de dht22 geen pullup tussen de +3.3v en de data pin?

Ja, ik heb m al jaren draaien op een Arduino, met 10k pull-up..

Es wäre gut Bücher kaufen, wenn man die Zeit, sie zu lesen, mitkaufen könnte. (Arthur Schopenhauer)
Arco

Special Member

Ik gebruik vaak de SHT21, prima kwaliteit...

https://nl.farnell.com/productimages/standard/en_GB/1855468-40.jpg

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
buckfast_beekeeper

Golden Member

Op de luftdaten bouw pagina staat ook de aansluiting van een BME280. Dat werkt perfect met de luftdaten software. Ik heb dit 5V bordje.

Heb je de DHT22 (die op de luftdaten website niet meer wordt aangeraden) aangemeld in de software?

Ik push ze ook in een eigen database. De resultaten van de laatste 24h (in UTC).

Van Lambiek wordt goede geuze gemaakt.

Op 27 maart 2020 09:11:42 schreef Gerwin:
Moet er bij de dht22 geen pullup tussen de +3.3v en de data pin?

Dat heb ik enkele weken geleden ook gedaan, maar het heeft niet geholpen.

Op 27 maart 2020 10:16:31 schreef buckfast_beekeeper:
Op de luftdaten bouw pagina staat ook de aansluiting van een BME280. Dat werkt perfect met de luftdaten software. Ik heb dit 5V bordje.

Heb je de DHT22 (die op de luftdaten website niet meer wordt aangeraden) aangemeld in de software?

[bijlage]

Ik push ze ook in een eigen database. De resultaten van de laatste 24h (in UTC).

[bijlage]

Is die eerste bijlage een printscreen van het aanmeldproces bij luftdaten? Ik heb de boel rond oktober vorig jaar geïnstalleerd en aangemeld bij luftdaten. Ik kan me eigenlijk niet voorstellen dat ik dat niet aangevinkt zou hebben. Is die pagina nog te benaderen, zodat ik het kan controleren?

Overigens: buiten dit projectje heb ik niets met Arduino en dergelijke. Ik wilde gewoon zo'n meetstationnetje in mijn tuin plaatsen en heb naar mijn idee de instructies van lufdaten strikt opgevolgd. En dan zou het wat mij betreft gewoon moeten werken... Ik zie het eerlijk gezegd niet zo zitten om te gaan zitten programmeren in Arduino, tenzij het heel eenvoudig te doen is. Bovendien, het programmeren hebben ze daar in duitsland (of elders) gedaan. Ik hoefde het programma alleen maar in mijn ESP8266 te laden.

Op 27 maart 2020 19:34:38 schreef SRBlab:
Dat heb ik enkele weken geleden ook gedaan, maar het heeft niet geholpen.

Dat doet denken dat het niet uitmaakt of ie er zit, maar die pull-up MOET er zitten anders werkt het niet. Het is geen optioneel component. 10k wordt veel gebruikt, maar je kunt eens wat experimenteren met lagere waardes, bv een 2k2 of 4k7. Wie weet.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
Shiptronic

Overleden

Waarom moet die er zitten? is dat niet softwarematig mogelijk een pullup aan te zetten?

Wie de vraag stelt, zal met het antwoord moeten leren leven.
Arco

Special Member

Interne pull-ups zijn vaak niet sterk genoeg (meestal equivalent van 50...100k, da's heel weinig)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

@ship, bij I2C gebruik je toch ook niet de interne pulls? Die zijn hooguit bedoeld om een min of meer statisch signaal omhoog te trekken, bv voor een schakelaar. Niet voor signalen van een paar kHz.
Die ene pin is eigenlijk gewoon I2C maar dan zonder SCL.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
buckfast_beekeeper

Golden Member

Op 27 maart 2020 19:41:27 schreef SRBlab:
[...]

Is die eerste bijlage een printscreen van het aanmeldproces bij luftdaten? Ik heb de boel rond oktober vorig jaar geïnstalleerd en aangemeld bij luftdaten. Ik kan me eigenlijk niet voorstellen dat ik dat niet aangevinkt zou hebben. Is die pagina nog te benaderen, zodat ik het kan controleren?

Overigens: buiten dit projectje heb ik niets met Arduino en dergelijke. Ik wilde gewoon zo'n meetstationnetje in mijn tuin plaatsen en heb naar mijn idee de instructies van lufdaten strikt opgevolgd. En dan zou het wat mij betreft gewoon moeten werken... Ik zie het eerlijk gezegd niet zo zitten om te gaan zitten programmeren in Arduino, tenzij het heel eenvoudig te doen is. Bovendien, het programmeren hebben ze daar in duitsland (of elders) gedaan. Ik hoefde het programma alleen maar in mijn ESP8266 te laden.

Open de webinterface van je sensor. Ergens bereikbaar op je home net door 192.168.x.x in te vullen. Die x zou je zelf moeten weten. Je komt dan in het home scherm. Daar is een balkje met de tekst "configuratie". Klik daar op en kijk of alles is aangevinkt wat aangevinkt moet zijn. DHT22 is niet standaard aangevinkt. De SDS011 wel als ik het me goed herinner.

@flipflop: van deze stations zijn er 10-tallen gebouwd. In de bouwbeschrijving wordt niet gesproken van pull-up of pull-down. Mocht dit problemen geven was dit al lang aangepast. Vermoedelijk zijn de interne pull-ups idd geactiveerd.

Van Lambiek wordt goede geuze gemaakt.
Arco

Special Member

In de bouwbeschrijving wordt niet gesproken van pull-up of pull-down. Mocht dit problemen geven was dit al lang aangepast.

Dat iets toevallig werkt zegt niet dat het ook aan te raden is.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

Bij mij werken er 3 op nodemcu clones zónder pullups

Shiptronic

Overleden

Zo te lezen heet TS idd alles zo inelkaar gezet, en niet op de webinteface de sensor aangevinkt.

Die pullup geloof ik wel,, tis een beproeft product. maar een vinkje zetten kan je snel over het hoofd zien.

[Bericht gewijzigd door Shiptronic op vrijdag 27 maart 2020 22:04:06 (37%)

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Op 27 maart 2020 21:54:25 schreef K7Jz:
Bij mij werken er 3 op nodemcu clones zónder pullups

Ok, laat ik op je woord geloven. Nu ben ik wel benieuwd naar de sourcecode waar die pull-up wordt aangezet eigenlijk. Heb je die?

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein
buckfast_beekeeper

Golden Member

Uit de source code, hier te vinden. Vanaf regel 24.

c code:

void DHT::begin(void) {
  // set up the pins!
  pinMode(_pin, INPUT_PULLUP);
  // Using this value makes sure that millis() - lastreadtime will be
  // >= MIN_INTERVAL right away. Note that this assignment wraps around,
  // but so will the subtraction.
  _lastreadtime = -MIN_INTERVAL;
  DEBUG_PRINT("Max clock cycles: "); DEBUG_PRINTLN(_maxcycles, DEC);
}

Wil je de rest van de code doorspitten? Kan je hier vinden.

Van Lambiek wordt goede geuze gemaakt.

Op 27 maart 2020 21:33:23 schreef buckfast_beekeeper:
[...]

Open de webinterface van je sensor. Ergens bereikbaar op je home net door 192.168.x.x in te vullen. Die x zou je zelf moeten weten. Je komt dan in het home scherm. Daar is een balkje met de tekst "configuratie". Klik daar op en kijk of alles is aangevinkt wat aangevinkt moet zijn. DHT22 is niet standaard aangevinkt. De SDS011 wel als ik het me goed herinner.

[Bericht gewijzigd door SRBlab op zaterdag 28 maart 2020 11:00:25 (33%)

Help me even. 'webinterface van je sensor', 'home net'; dit soort taal is voor mij geen gesneden koek. Betekent dit dat ik in mijn wifi-router moet gaan zoeken, te benaderen met 192.168.x.x? Of bedoel je met 192.168.x.x het adres van mijn meetstationnetje, te vinden in de wifi-router?

Hoe dan ook, ik zal mijn wifi-router wel moeten benaderen zeker? (en ik ben m'n inloggegevens kwijt. Dat wordt resetten en opnieuw configureren, vrees ik. Gaat lekker zo!)

buckfast_beekeeper

Golden Member

Je hebt je weerstationnetje toch moeten koppelen aan je (wifi) thuis netwerk. Hoe heb je dat gedaan? Je 'normale' thuisnetwerk zit in de normale private nummering. Deze is in de meeste gevallen 192.168.0.x, 192.168.1.x of 192.168.4.x. Je router heeft dan bijvoorbeeld 192.168.0.1 als 'adres'. Alle verbonden apparaten, zowel via ethernet kabel als via wifi krijgt een uniek adres of er is een vast ingesteld. Je zal nu moeten uitzoeken welk het adres is van je weerstationnetje.

Indien je windows gebruikt kan je beginnen uitzoeken. Ga onderaan links naar het vergrootglas. Klik er op. Type onderaan cmd

bovenaan zie je opdrachtprompt verschijnen. Klik daar op. In de opdrachtprompt type je ipconfig /all gevolgd door enter.

zoek nu naar je ethernet of wifi verbinding.

Daar zie je IPv4 Address 192.168.0.31. Dat is het adres van mijn pc. Bij jou gaat dat anders zijn. Ik weet nu dat ik het weerstation moet zoeken in de range 192.168.0.2 en verder. Type nu in dezelfde opdrachtprompt ping 192.168.0.2 (moet wel een ander zijn dan je PC adres) en druk op enter.

Is er geen apparaat met 192.168.0.2 ga je een antwoord krijgen zoals hier boven (ik heb 19 moeten gebruiken omdat alles <19 een vast IP heeft).
Is er een apparaat met het adres dan krijg je het volgende als antwoord

Bij mij zit de sensor op 192.168.0.16. Die antwoord correct. Heb je een apparaat dat correct antwoord, dan type je datzelfde adres in je webbrowser en druk op enter. Dan kom je mogelijk in het openingsscherm van je sensor terecht.
Indien er een toestel is met 192.168.0.2

Van Lambiek wordt goede geuze gemaakt.

Op 28 maart 2020 11:01:00 schreef SRBlab:
Help me even. 'webinterface van je sensor', 'home net'; dit soort taal is voor mij geen gesneden koek. Betekent dit dat ik in mijn wifi-router moet gaan zoeken, te benaderen met 192.168.x.x?
....

Tik op je computer/ windows in 'cmd' dan 'ipconfig'

Je ziet nu iets als 192.168.X.Y. meestal 192.168.1.Y soms ook 192.168.2 of 192.168.100. Etc

Nu even een monikenklus:

Type in je browser:

http://192.168.1.1
http://192.168.1.2
http://192.168.1.3
http://192.168.1.4

... totdat je die lufdaten interface krijgt...

Max 192.168.1.254

Edit: mogelijk wordt je monikkenklus beperkt, type dit in het cmd scherm:

FOR /L %i IN (1,1,254) DO ping -n 1 192.168.1.%i

Alternatief:

ping 192.168.1.255
arp -a

Pas in beide gevallen het 192.168.1. adres aan aan jouw netwerk

Shiptronic

Overleden

Of je installeert : https://www.advanced-ip-scanner.com/nl/ , dan zie je precies wat er in je netwerk zit.

Wie de vraag stelt, zal met het antwoord moeten leren leven.

Misschien mis ik weer iets hoor, maar wie zegt dat zo'n ESP boardje ook een webserver heeft geimplementeerd? Lijkt me in dit geval niet strikt nodig, of eigenlijk best overkill.

@K7Jz, dank voor de link. Dan gebruiken ze de internet pull-up inderdaad. Lijkt mij riskant, maar goed, het werkt meestal blijkbaar.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein