24 augustus met Ruben gemaakt.
+++++++++++++++++++++++++++++++++
/*
* Bas on Tech – DHT11 / DHT22
* Deze les is onderdeel van de lessen op https://arduino-lessen.nl
*
* (c) Copyright 2018 – Bas van Dijk / Bas on Tech
* Deze code en inhoud van de lessen mag zonder schriftelijke toestemming
* niet voor commerciele doeleinden worden gebruikt
*
* YouTube: https://www.youtube.com/c/
* Facebook: https://www.facebook.com/
* Instagram: https://www.instagram.com/
* Twitter: https://twitter.com/BasOnTech
*
* ——————————
*
* PIN AANSLUITINGEN DHT11 & DHT22
*
* Vcc –> 3.3V
* Data –> 12
* NC
* GND –> GND
*
* 4K7 (4700) Ohm weerstand tussen 3.3V en Data pin
*
*/
#include “DHT.h” // Bibliotheek voor DHT sensoren
// Bibliotheek voor communicatie met I2C / TWI apparaten
#include <Wire.h>
// Bibliotheek voor het LCD scherm
#include <LiquidCrystal_I2C.h>
/*
* Stel hier in welke chip en foromaat LCD je hebt
* Gebruik 0x27 als je chip PCF8574 hebt van NXP
* Gebruik 0x3F als je chip PCF8574A hebt van Ti (Texas Instruments)
* De laatste twee getallen geven het formaat van je LCD aan
* bijvoorbeeld 20×4 of 16×2
*
*/
LiquidCrystal_I2C lcd(0x27, 16, 2);
//LiquidCrystal_I2C lcd(0x3F, 16, 2);
#define dhtPin 12 // data pin
/*
* Stel hier in welke DHT chip je gebruikt
*/
#define dhtType DHT11 // DHT 11
//#define dhtType DHT22 // DHT 22 (AM2302), AM2321
//#define dhtType DHT21 // DHT 21 (AM2301)
DHT dht(dhtPin, dhtType); // Initialiseer de DHT bibliotheek
float humidityVal; // luchtvochtigheid
float tempValC; // temperatuur in graden Celcius
float tempValF; // temperatuur in graden Fahrenheit
float heatIndexC; // gevoelstemperatuur in graden Celcius
float heatIndexF; // gevoelstemperatuur in graden Fahrenheit
void setup() {
Serial.begin(9600); // stel de seriële monitor in
dht.begin(); // start het DHT sensor uitlezen
lcd.init(); // initialiseer het LCD scherm
lcd.backlight(); // zet de backlight aan
lcd.clear(); // wis het scherm
lcd.setCursor(0, 0);
lcd.print(“Temp=”);
lcd.setCursor(0, 1);
lcd.print(“Vocht=”);
}
void loop() {
humidityVal = dht.readHumidity(); // vraag de luchtvochtigheid aan de DHT sensor
tempValC = dht.readTemperature(); // vraag de temperatuur in graden Celcius aan de DHT sensor
tempValF = dht.readTemperature(true); // vraag de temperatuur in graden Fahrenheit aan de DHT sensor
// Controleer of alle waarden goed zijn uitgelezen, zo niet probeer het opnieuw
if (isnan(humidityVal) || isnan(tempValC) || isnan(tempValF)) {
Serial.println(“Uitlezen van DHT sensor mislukt!”);
// Beëindig de loop() functie
return;
}
// Bereken de gevoelstemperatuur in graden Celcius
heatIndexC = dht.computeHeatIndex(tempValC, humidityVal, false);
// Bereken de gevoelstemperatuur in graden Fahrenheit
heatIndexF = dht.computeHeatIndex(tempValF, humidityVal);
lcd.setCursor(8, 0);
lcd.print(tempValC);
lcd.setCursor(8, 1);
lcd.print(humidityVal);
// Print alle waarden naar de seriële monitor
// \t print een tab, \n print een nieuwe regel karakter
Serial.print(humidityVal);
Serial.print(“\t”);
Serial.print(tempValC);
Serial.print(“\n”);
delay(2000);
}