5151+ beoordelingen
Bestel voor 16:00 voor dezelfde dag verzending
14 dagen retour
NL
Particulier
Zakelijk
In dit Arduino project leer je hoe je zelf een weerstation kunt maken. Dit doe je aan de hand van een DHT11 temperatuur & luchtvochtigheid sensor en een LDR. De temperatuur, luchtvochtigheid en lichtsterkte worden weergegeven op een 16×2 LCD display.
Deze handleiding behandelt:
/*
In deze code maken we een weerstation.
Dit weerstation zal je laten zien wat de temperatuur is in "°C",
de luchtvochtigheid in "%" en de verlichting in "LUX".
Deze waarden worden weergegeven op een I2C LCD Display.
*/
//Deze library's zijn voor de I2C LCD Display
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//Deze library is voor de DHT11 Temperatuur/Luchtvochtigheid sensor
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
//Hier definiëren we de LCD
const int i2c_addr = 0x3F; //Hier zet je het I2C addres neer. Deze moet je eerst uitzoeken voordat je begint.
const int Kolommen = 16; //Hier zet je het aantal kolommen neer
const int Rijen = 2; //Hier zet je het aantal rijden van je display neer
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(i2c_addr,Kolommen,Rijen); //Hier maken we een LCD die de eigenschappen die je net geschreven hebt aan
//Nu definiëren we de DHT sensor
#define DHTPIN 2
#define DHTTYPE DHT11
DHT_Unified dht(DHTPIN,DHTTYPE);
void setup() {
Serial.begin(9600);
lcd.init(); //Hier starten we de LCD
lcd.backlight();
lcd.clear(); //Vanaf hier doen we een eenmalige "testprint" om te kijken of jou LCD werkt
lcd.setCursor(0,0);
lcd.print("Starting: ");
delay(500);
for(int i = 1; i <= 16; i++){
lcd.setCursor(10,0);
lcd.print((i*100)/16);
lcd.print("%");
lcd.setCursor(i-1,1);
lcd.print("=");
delay(100);
}
delay(400);
lcd.clear();
//hier starten we de sensor
dht.begin();
//hier testen we de sensor
sensor_t sensor;
dht.temperature().getSensor(&sensor);
dht.humidity().getSensor(&sensor);
pinMode(A5,INPUT);
}
void loop() {
//Hier starten we de LCD opnieuw op
lcd.init();
//Hier lezen we de sensor temperatuur
sensors_event_t event;
dht.temperature().getEvent(&event);
//En zorgen dat deze op de LCD te zien is
lcd.setCursor(0,0);
lcd.print("Temp.: ");
lcd.print(event.temperature - 5);
lcd.print("C");
//Hier lezen we de luchtvochtigheid
dht.humidity().getEvent(&event);
//En zorgen dat deze op de LCD te zien is
lcd.setCursor(0,1);
lcd.print("Vochtig.: ");
lcd.print(event.relative_humidity);
lcd.print("%");
delay(1000);
//Hier lezen we de LDR uit en zetten we de waarde om naar LUX
int Vout = ((analogRead(A5)*5)/1023);
int RLDR = (((5-Vout)*10000)/Vout);
lcd.init();
lcd.print("Licht: ");
lcd.print(RLDR);
lcd.print(" LUX");
delay(1000);
}