Als jij je wel eens afvraagt wat de luchtvochtigheid in jouw huis is dan is dit project voor jou!
Tijdens dit project leer je hoe je een luchtvochtigheidsmeter maakt met behulp van een DHT11 sensor en een 16X2 LCD beeldscherm. Een DHT11 is een sensor die de temperatuur en de luchtvochtigheid meet. Bij het beeldscherm heb je de keuze of je deze er wel of niet aan toe wilt voegen zo nee ga naar stap 2. Als je er wel een beeldscherm aan toe wilt voegen kan je de keuze maken of je deze met of zonder I2C wilt aansluiten. Als je hem zonder I2C wilt aansluiten ga naar stap 4 en als je hem met I2C wilt aansluiten ga naar stap 6.
- Niveau – Beginner 30%
- Tijdsduur – 15 / 20 Min 30%
- Kosten – €42,75 euro compleet 40%
Stap 1: Benodigdheden
Arduino UNO – 1X
Breadboard – 1X
M/M jumper wires -19X
DHT11 – 1X
16X2 LCD – 1X
10K potentiometer – 1X
Stap 2: Bouwen en Bedraden
Stap 3: Programmeren
Nu je het hebt bedraad kan je het gaan programmeren.
Het is een simpele code die ervoor zorgt dat de metingen gelezen kunnen worden en te zien zijn op de seriële monitor.
//hier importeren we de DHT library
#include <DHT.h>
//nu geven we de DHT11 een naam
dht DHT;
//en defineren zijn pin
#define DHT11_PIN 8
void setup()
{
//hier starten we de seriële connectie
Serial.begin(9600);
}
void loop()
{
//hier lezen we de sensor waardes
int chk = DHT.read11(DHT11_PIN);
//en zorgen dat ze in de seriële com te zien zijn
Serial.print(“Humidity: “);
Serial.print(DHT.humidity);
Serial.print(” %, Temp: “);
Serial.print(DHT.temperature – 5);
Serial.println(” Celsius”);
delay(2000);
}
Stap 4: LCD toevoegen
Als je de keuze hebt gemaakt om er een beeldscherm zonder I2C aan toe te voegen volg deze stappen dan. Als je er een beeldscherm aan toe voegt wordt het een standalone apparaat dit zorgt ervoor dat hij niet met een computer verbonden hoeft te zijn.
De aansluitingen voor de LCD zijn: K gaat naar de min, A gaat naar de plus, D7 gaat naar I/O pin 2, D6 gaat naar I/O pin 3, D5 gaat naar I/O pin 4, D4 gaat naar I/O pin 5, E gaat naar I/O pin 6, RW gaat naar de min, RS gaat naar I/O pin 7, VO gaat naar de signaal pin van de pot meter, VDD gaat naar de plus en VSS gaat naar de min.
Bij het aansluiten van de pot meter gaat de meest rechter pin naar de plus, de meest linker pin naar de min en de middelste naar de VO van het LCD beeldscherm.
De reden dat er een pot meter in dit project zit is omdat er anders niks of alleen maar witte blokjes op het beeldscherm te zien zijn. Door aan de potmeter te draaien zal de tekst vanzelf tevoren komen. Blijf dit doen totdat de tekst goed zichtbaar is, de pot meter is namelijk een draaiweerstand. Dit zorgt ervoor dat als je er aan draait dat er een andere hoeveelheid spanning op het beeldscherm komt. Dat zorgt er weer voor dat de kleine lampjes in het display feller of minder fel worden.
Stap 5: LCD programmeren
Nu je het beeldscherm hebt aangesloten kan je hem gaan programmeren.
Je moet hiervoor de LiquidCrystal library gebruiken die zit standaard in de Arduino IDE. Als je die dan hebt geïmporteerd kan je beginnen met het overnemen van de code die hier onder staat.
//hier importeren we de DHT library
//en de LiquidCrystal library
#include <dht.h>
#include <LiquidCrystal.h>
//op deze plek defineren we de LCD pinnen
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
//hier geven we de DHT11 een naam
dht DHT;
//en defineren zijn pin
#define DHT11_PIN 8
void setup(){
//nu selecteren we de LCD lampjes
lcd.begin(16, 2);
}
void loop()
{
//nu lezen we de waardes van de DHT11
int chk = DHT.read11(DHT11_PIN);
//en hier zorgen we dat ze
//op het beeldscherm komen
lcd.setCursor(2,0);
lcd.print(“Temp: “);
lcd.print(DHT.temperature – 5);
lcd.print(“C”);
lcd.setCursor(2,1);
lcd.print(“Humi: %”);
lcd.print(DHT.humidity);
delay(2000);
}
Op het moment dat alles nu klopt heb je je eigen standalone luchtvochtigheidsmeter en thermometer, gefeliciteerd.
Stap 6: LCD met I2C
In deze stap laat ik je zien hoe je een I2C LCD kan aansluiten. Het voordeel hiervan is dat het beeldscherm in totaal maar vier jumper wires nodig heeft en standalone is.
Het is wel belangrijk dat je hiervoor de LiquidCrystal_I2C library en de Wire library importeerd anders kan je het beeldscherm namelijk niet aansturen.
De LiquidCrystal_I2C library kan je vinden als je in de Arduino IDE naar schets gaat, dan naar bibliotheek gebruiken en dan op bibiliotheek beheren klikt. Dan zie je als het goed is een pop-up tabblad daar zie je rechtsboven een zoekbalk. Typ daar LiquidCrystal_I2C in en selecteer er een en klik dan op installeer. Doe hetzelfde met de Wire library.
Nu ga je beginnen met het bedraden.
Als eerste gaat er een jumper wire van de 5V op de Arduino naar de plus van het breadboard en een jumper wire van de GND op de Arduino naar de min van het breadboard.
Daarna sluit je van het I2C LCD de GND op de min aan, de VCC op de plus, SDA op A4 en SCL op A5.
De aansluiting voor de DHT 11 is de meest linker pin naar I/O pin 8, de middelste pin naar de plus en de meest rechter pin naar de min.
Stap 7: I2C LCD Programmeren
Nu ga je het programma van de LCD zo aanpassen dat je de I2C LCD ermee kan aansturen.
Zorg ervoor dat je de wire en de LiquidCrystal_I2C library hebt geïmporteerd. Zodra je die hebt kan je een paar kleine aanpassingen maken en dan werkt je programma ook op een I2C LCD beeldscherm.
//hier importeren we de juiste librarys
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <dht.h>
//hier laten we het programma weten wat het I2C adres
//is en dat het een 16 bij 2 beeldscherm is
LiquidCrystal_I2C lcd(0x3F,20,4);
dht DHT;
#define DHT11_PIN 8
void setup(){
lcd.begin(16, 2);
//hier initializeren we de lampjes van
//het beeldscherm het is belangrijk dat je 2 keer
//lcd.init() hebt wantanders werkt je programma niet
lcd.init();
lcd.init();
lcd.backlight();
}
void loop()
{
int chk = DHT.read11(DHT11_PIN);
lcd.setCursor(2,0);
lcd.print(“Temp: “);
lcd.print(DHT.temperature – 8);
lcd.print(“C”);
lcd.setCursor(2,1);
lcd.print(“Humi: %”);
lcd.print(DHT.humidity);
delay(2000);
}