Arduino-Projekt: Feuchtigkeitsmesser

Anfänger
20 Min
42,35 €

Wenn Sie sich jemals gefragt haben, wie hoch die Luftfeuchtigkeit in Ihrem Zuhause ist, ist dieses Projekt genau das Richtige für Sie!

In diesem Projekt lernen Sie, wie Sie mit einem DHT11-Sensor und einem 16 x 2 LCD-Display ein Feuchtigkeitsmessgerät bauen. Ein DHT11 ist ein Sensor, der Temperatur und Luftfeuchtigkeit misst. Beim Bildschirm haben Sie die Wahl, ob Sie dies hinzufügen möchten oder nicht. Wenn Sie ein Display hinzufügen möchten, können Sie wählen, ob Sie es mit oder ohne I2C anschließen möchten. Die verschiedenen Versionen sind unten aufgeführt.

Bau und Verkabelung

Nachdem Sie nun alle Teile haben, können Sie mit der Verkabelung beginnen.

Für die Verkabelung werden fünf Kabel benötigt.

Ein Kabel führt von den 5 V auf dem Arduino zum Pluspol des Steckbretts und von der Masse auf dem Arduino zum Minuspol des Steckbretts.

Sobald Sie dies getan haben, stecken Sie den DHT11 mit der blauen Seite zu Ihnen zeigend in das Steckbrett. Auf diese Weise definieren wir auch die Pins.

Nun geht man mit einem Kabel vom I/O-Pin 8 zum äußersten linken Pin des DHT11, dann mit einem Kabel vom mittleren Pin des DHT 11 zum Pluspol der Steckplatine und mit einem Kabel vom äußersten rechten Pin zum Minuspol der Steckplatine.

Wichtig ist, dass Du die Kabel in der richtigen Reihenfolge anschließt, sonst stimmen Deine Werte nicht.

Programmierung

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

}

LCD hinzufügen

LCD-Programmierung

Nachdem Sie das Display angeschlossen haben, können Sie mit der Programmierung beginnen.

Hierzu müssen Sie die LiquidCrystal-Bibliothek verwenden, die standardmäßig in der Arduino IDE enthalten ist. Sobald Sie das importiert haben, können Sie mit dem Kopieren des folgenden Codes beginnen.

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

}

LCD mit I2C

In diesem Schritt zeige ich Ihnen, wie Sie ein I2C-LCD anschließen. Der Vorteil hierbei ist, dass das Display insgesamt nur vier Jumperkabel benötigt und eigenständig ist.

Wichtig ist, dass Sie hierfür die LiquidCrystal_I2C-Bibliothek und die Wire-Bibliothek importieren, da Sie sonst den Bildschirm nicht ansteuern können.

Die Bibliothek LiquidCrystal_I2C finden Sie in der Arduino IDE, indem Sie zu „Sketch“ gehen, dann zu „Use Library“ und dann auf „Manage Library“ klicken. Dann sollte eine Popup-Registerkarte und oben rechts eine Suchleiste angezeigt werden. Geben Sie dort LiquidCrystal_I2C ein, wählen Sie eines aus und klicken Sie dann auf Installieren. Machen Sie dasselbe mit der Wire-Bibliothek.

Nun beginnen Sie mit der Verkabelung.

Zunächst führt ein Überbrückungskabel von den 5 V auf dem Arduino zum Pluspol des Steckbretts und ein Überbrückungskabel von der Masse auf dem Arduino zum Minuspol des Steckbretts.

Anschließend verbindet man den GND des I2C LCD mit Minus, den VCC mit Plus, SDA mit A4 und SCL mit A5.

Die Verbindung für DHT 11 ist der äußerste linke Pin mit I/O-Pin 8, der mittlere Pin mit Plus und der äußerste rechte Pin mit Minus.

I2C-LCD-Programmierung

Nun modifizieren Sie das LCD-Programm so, dass Sie damit das I2C-LCD ansteuern können.

Stellen Sie sicher, dass Sie das Kabel und die LiquidCrystal_I2C-Bibliothek importiert haben. Sobald Sie das haben, können Sie ein paar kleinere Anpassungen vornehmen und Ihr Programm funktioniert auf einem I2C-LCD-Display.

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

}

Benötigte Produkte