webwinkelkeur logo

4.7 gem.

5151+ beoordelingen
webwinkelkeur logoBekijk alles

5151+ beoordelingen

5151+ beoordelingen

Bestel voor 16:00 voor dezelfde dag verzending

14 dagen retour

NL

Particulier

Zakelijk

Arduino Project: Weer Station

Gevorderd
25
43,20

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:

  • Benodigdheden
  • Bedraden
  • De Arduino programmeren

Bedrading Arduino

De Arduino programmeren

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