webwinkelkeur logo

4.7 avg.

5151+ reviews
webwinkelkeur logoView all

5151+ reviews

5151+ reviews

Order by 16:00 for same day shipping

14 days return

EN

Individual

Business

Arduino Project: Weather Station

Intermediate
25
43,20

In this Arduino project you will learn how to make a weather station yourself. You do this using a DHT11 temperature & humidity sensor and a LDR. The temperature, humidity and light intensity are displayed on a 16×2 LCD display.

This manual covers:

  • Supplies
  • Wiring
  • Programming the Arduino

Arduino Wiring

Programming the Arduino

/*
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);
}