Nr. 55 – Temperatur- und Luftfeuchtigkeitsmessung mit dem AM2120

Für dieses Projekt benötigst du

Der AM2120-Sensor ist ein Sensor zur Messung von Temperatur und Luftfeuchtigkeit. In diesem Artikel werden wir zeigen, wie man den Sensor mit einem Arduino Mikrocontroller verwenden kann, um genaue Umgebungsdaten zu erfassen.

Verkabelung

Wir verbinden den AM2120-Sensor mit dem Arduino. Die Datenleitung des Sensors wird an Pin5 des Funduino UNO Mikrocontrollers angeschlossen.

Achtung, hier gibt es eine Besonderheit! Es gibt den AM2120 Sensor in verschiedenen Bauformen. In unserem Fall ist der Sensor in einem kleinen Gehäuse verbaut. Beim Öffnen des Gehäuses ist aufgefallen, dass die Farben der Anschlussleitung nicht der üblichen Verklabelung entsprechen. So geht man normalerweise davon aus, dass die Kabelfarben Rot und Schwarz für Plus (rot) und Minus (schwarz) stehen und dass die Datenleitung des Sensors gelb ist. 

Bei diesem Sensor ist das anders! Wir verbinden das gelbe Kabel, mit 3.3V und das Schwarze mit GND. Das rote Kabel ist in unserem Fall die Datenleitung. Um den korrekten Anschluss zu prüfen, sollte man sich den Sensor ansehen und die Kontakte bis zum Kabel verfolgen. Die korrekte Anschlussweise sieht laut Datenblatt so aus:

 

Vollständig verkabelt sieht unser Aufbau mit dem Arduino UNO folgendermaßen aus

Für die Programmierung des Sensors wird eine Programmbibliothek benötigt. Der Sensor ist dabei kompatibel mit der DHT Library. Sollte diese bisher nicht in der Arduinosoftware hinterlegt sein, kann diese über den Librarymanager hinzugefügt werden.

 

Sketch

#include "DHT.h"
#define pinDHT 5 // Sensor Pin
DHT dht(pinDHT, DHT22); //Erstellen eines Sensors aus der Bibliothek,mit Einstellung des Typs DHT22, der dieselbe Kommunikationsart wie der AM2120 verwendet

void setup()
{
  Serial.begin(9600); //Initialisierung der seriellen Kommunikation
  dht.begin(); //Start der Kommunikation mit dem DHT-Sensor
}

void loop()
{
  float temperatur = dht.readTemperature(); //Temperatur in eine Variable einlesen
  float luftfeuchtigkeit = dht.readHumidity(); //Luftfeuchtigkeit in eine Variable einlesen

  //Überprüfen, ob die gelesenen Werte gültig sind, mit Hilfe der isnan-Funktion
  if (isnan(temperatur) || isnan(luftfeuchtigkeit)) //Bei fehlerhaftem Lesen eine Fehlermeldung ausgeben
  {
    Serial.println("Fehler beim Lesen des Sensors");
    delay(800);
    return;
  }
  //über die serielle Schnittstelle die Messwerte ausgeben
  Serial.print("Temperatur: ");
  Serial.print(temperatur);
  Serial.print(" Grad Celsius, ");
  Serial.print("Luftfeuchtigkeit: ");
  Serial.print(luftfeuchtigkeit);
  Serial.println("% RH.");
  delay(800);
}

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft bis zu 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 2.000 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE