Altijd al een temperatuurmeter in je Domotica systeem willen opnemen? Dat kan nu heel gemakkelijk met een ESP8266 WiFi chip en een DHT11/22 temperatuur en humidity sensor!
Keuze module, shield of losse sensor?
De DHT temperatuursensoren zijn verkrijgbaar in vele vormen. Je hebt de DHT11 (blauw) en de DHT22 (wit). De DHT11 is minder nauwkeurig, ongeveer op 2 graden celsius en de DHT22 is op 0,5 graden celcius precies. De sensor is als module, shield of als losse sensor te koop, de keuze is of je een beetje kunt/wilt solderen of niet.
Bij de losse sensor zul je zelf aan de slag moeten met weerstandjes en headers om deze aan de sensor de solderen. Hierdoor heb je wel de keuze waar je ze plaatst. De losse sensor kun je op deze manier wat makkelijker wegwerken mocht dat nodig zijn.
Let op bij onderstaande aanbiedingen hoeveel stuks er geleverd worden!
Wat je misschien opvalt is dat de losse sensoren 4 pinnen hebben en de modules 3. Dat komt omdat de 4e pin niet nodig is voor gebruik met Arduino of ESP8266.
Hoe sluit ik de temperatuursensor aan?
Je hebt de keuze uit een Arduino of een ESP8266 bordje. Omdat we de sensor in ons domotica systeem willen opnemen is de keuze voor een ESP8266 logisch omdat die WiFi functionaliteit aan boord heeft en zo verbinding kan leggen met het systeem. Gelukkig zijn de bordjes erg eenvoudig in gebruik en ook nog eens spotgoedkoop!
Wemos D1 mini. Arduino met WiFi en Micro USB
Heb je een Wemos of NodeMCU gekocht en wil je eerst wat oefenen? Lees mijn blogpost over de eerste stappen met een ESP8266 of het flashen van ESPeasy op de Wemos D1 mini.
Het aansluiten van de DHT sensor op een ESP8266 is erg eenvoudig. Je hebt nodig:
- Wemos D1 mini,
- 10KΩ weerstand
- DHT sensor
- Breadboard en draad
Maak de onderstaande schakeling:
Klaar!
De sensor werkt op 5V, wat je op de eerste twee pinnen zet. Op pin2 van de DHT sensor sluit je ook een draad aan naar een GPIO poort. Ik heb gekozen voor D4. Dit is in de Arduino software pin 2. Als je de sensor met een andere pin wilt gebruiken kijk dan hieronder welk pinnummer dat is in de software. De laatste pin van de DHT, de GND, sluit je aan op de GND van de Wemos.
Temperaturen uitlezen met Arduino
Sluit de Wemos aan op je PC met een micro USB kabel op een USB poort. We gaan testen of de sensor werkt. Installeer alle benodigde drivers en software zoals je kunt lezen in de startgids ESP8266 in hoofdstukken “Aansluiten en Installeren” en “Arduino IDE”.
Heb je dit gedaan, voeg dan de DHT library toe aan je sketch door Schets -> Bibliotheek gebruiken -> Bibliotheken beheren te kiezen. Zoek op DHT.
Installeer de DHT sensor library van Adafruit.
Kies vervolgens uit de voorbeelden “DHT tester”
Pas de volgende waarden aan op jouw situatie:
#define DHTPIN 2 // what digital pin we're connected to // Uncomment whatever type you're using! //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 //#define DHTTYPE DHT21 // DHT 21 (AM2301)
Geef achter DHTPIN het GPIO poortnummer op. Als je D4 hebt gekozen op een Wemos D1 mini zoals in mijn voorbeeld, kun je dit 2 laten. Heb je een andere pin gekozen, wijzig het dan in het juiste nummer volgens de pinout hierboven.
Als alles juist is aangesloten zul je steeds per regel de temperatuur en luchtvochtigheid zien binnenkomen. Om dit te integreren in Domoticz lees je verder in WiFi Thermometer toevoegen aan Domoticz
In het aansluitschema gebruik je D4 in het programma schrijf je pin 2. Hoe zit dat nu ?
Beste Wim,
In de toelichting onder het schema en boven de pinout staat dit toegelicht:
Op pin2 van de DHT sensor sluit je ook een draad aan naar een GPIO poort. Ik heb gekozen voor D4. Dit is in de Arduino software pin 2. Als je de sensor met een andere pin wilt gebruiken kijk dan hieronder welk pinnummer dat is in de software.
De pinnen hebben een ander nummer in de software dan op de pcb gedrukt staan. Beetje verwarrend maar met de pinout erbij kom je er wel uit!
Groet Wouter
Bedankt, dit werkt bij mijn Wemos D1 mini pro v2.0.0 met DHT22 module (, pinout is nuttig!
N.B. Bij mij duurde het ±40 seconden voordat de DHT22 module data terug gaf, daarvoor kreeg ik “Failed to read from DHT sensor!” Mochten anderen dit hebben: even geduld ?
beste wouter wat gaat er mis
Arduino:1.8.9 (Windows 10), Board:”WeMos D1 R1, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600″
In file included from C:\Users\Arie Megens\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:15:0:
C:\Users\Arie Megens\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Fout bij het compileren voor board WeMos D1 R1
Dit rapport zou meer informatie bevatten met
“Uitgebreide uitvoer weergeven tijden compilatie”
optie aan in Bestand -> Voorkeuren.
met die blink test gaat alles goed
Dag arie,
Heb je de library goed geïnstalleerd? Of te wel staat dht_u. cpp op de juiste locatie?
Voeg de DHT library toe aan je sketch door Schets -> Bibliotheek gebruiken -> Bibliotheken beheren te kiezen. Zoek op DHT.
Wouter
beste wouter
heb dht tester sketch er op gezet en de andere aanwijzingen het zelfde gedaan
maar krijg elke keer het zelfde probleem. weet niet waar ik dht_u. cpp kan vinden.
B,v.d
Arie
Hoi Arie,
Wanneer je de library hebt geïnstalleerd zou die in ‘mijn documenten / arduino / library’ moeten staan. Zie melding vorige post. Staat ie daar niet check dan even waar de ide library’s dan neer zet.
Wouter
Arduino:1.8.10 (Windows 10), Board:”WeMos D1 R1, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600″
Meerdere bibliotheken gevonden voor “DHT.h”
Gebruikt: C:\Users\Arie
In file included from C:\Users\Arie Megens\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.cpp:15:0:
C:\Users\Arie Megens\Documents\Arduino\libraries\DHT_sensor_library\DHT_U.h:36:29: fatal error: Adafruit_Sensor.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Fout bij het compileren voor board WeMos D1 R1
Dit rapport zou meer informatie bevatten met
“Uitgebreide uitvoer weergeven tijden compilatie”
optie aan in Bestand -> Voorkeuren.
dit doet ie bij elk bord
Beste Wouter,
Dank je wel voor de heldere en duidelijke uitleg! Heb hem helemaal gevold maar kom nu twee dingen tegen die ik niet weet:
Heb je uitleg stap voor stap gevolgd, alleen zie ik nergens de temperatuur verschijnen. Jij zegt in je handleiding helemaal onderaan “Als alles juist is aangesloten zul je steeds per regel de temperatuur en luchtvochtigheid zien binnenkomen.” Waar zou ik dit moeten zien?
Vraag twee: wat moet ik allemaal wijzigen in het blokje: moet ik hier dingen weghalen die niet van toepassing zijn? (bijvoorbeeld DHT11, ik gebruik een DHT22)
#define DHTPIN 2 // what digital pin we’re connected to
// Uncomment whatever type you’re using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
Alvast bedankt!
Hartelijke groet,
Bas
Hoi Bas,
De temperatuur verschijnt in de serial monitor van arduino ide. Je kunt de regels met DHTTYPE verwijderen die niet van toepassing zijn.
Als alternatief, wanneer je de data naar domoticz zou willen sturen, kun je ook espeasy flashen. Daar heb ik ook een blog over geschreven.
Succes
Wouter