Arduino-Code und Video für den digitalen Temperatur- und Feuchtigkeitssensor Aosong AM2320 mit LCD1602 und I2C-Modul

Arduino-Code und Video für den digitalen Temperatur- und Feuchtigkeitssensor Aosong AM2320 mit LCD1602 und I2C-Modul

In diesem Tutorial werden wir untersuchen, wie man den digitalen Temperatur- und Feuchtigkeitssensor Aosong AM2320 zusammen mit einem LCD1602-Display mit I2C-Modul verwendet. Ziel ist es, die Temperatur sowohl in Fahrenheit als auch in Celsius sowie die relative Luftfeuchtigkeit anzuzeigen. Diese Konfiguration eignet sich ideal zur Überwachung von Umweltbedingungen in verschiedenen Projekten und ist eine vielseitige Ergänzung für Ihren Arduino-Werkzeugkasten.

Wir werden den AM2320-Sensor verwenden, um Temperatur- und Feuchtigkeitsdaten zu erfassen, die anschließend auf dem LCD1602 angezeigt werden. Das I2C-Modul vereinfacht die Verkabelung und benötigt nur vier Verbindungen: VCC, GND, SDA und SCL. Für ein klares Verständnis der Verkabelung und Programmierung empfehle ich, das zugehörige Video anzusehen (im Video bei 00:00).

Hardware erklärt

Die wichtigsten Komponenten dieses Projekts sind der AM2320-Sensor, das LCD1602-Display und das I2C-Modul. Der AM2320 ist ein digitaler Sensor, der über eine I2C-Schnittstelle genaue Messwerte für Temperatur und Luftfeuchtigkeit liefert. Er arbeitet bei einer Spannung von 3.3V bis 5.5V und hat einen Messbereich von -40°C bis +80°C für die Temperatur und 0% bis 100% für die Luftfeuchtigkeit.

Das LCD1602-Display ermöglicht die Anzeige der Sensormesswerte. Es ist ein 16x2-Zeichen-Display, das über das I2C-Protokoll kommuniziert, wodurch die Anzahl der erforderlichen Verbindungen auf nur vier reduziert wird. Das I2C-Modul wandelt die parallelen Daten des LCD in ein serielles Format um, wodurch die Verbindung zum Arduino erleichtert wird.

Details zum Datenblatt

HerstellerAosong
TeilenummerAM2320
Logik-/I/O-Spannung3.3 V - 5.5 V
Versorgungsspannung3.3 V - 5.5 V
Ausgangsstrom≤ 1,5 mA
Messbereich (Temperatur)-40 °C bis +80 °C
Messbereich (Feuchtigkeit)0 % bis 100 %
Antwortzeit≤ 2 s
PaketDIP-4
Notizen / VariantenPull-up-Widerstände werden für I2C-Verbindungen empfohlen.

  • Stellen Sie sicher, dass die Stromversorgung im angegebenen Spannungsbereich erfolgt.
  • Verwenden Sie Pull-up-Widerstände (4,7 kΩ empfohlen) für die SDA- und SCL-Leitungen.
  • Überprüfen Sie die korrekte I2C-Adresse (Standard ist 0x27 für die meisten LCDs).
  • Behandeln Sie potenzielle Fehler, indem Sie den Fehlercode des Sensors prüfen.
  • Löschen Sie das LCD, bevor Sie neue Messwerte anzeigen, um Überlappungen zu vermeiden.

Verdrahtungsanleitung

Arduino wiring for AM2320 sensor with LCD
Arduino wiring for AM2320 sensor with LCD

Um den AM2320-Sensor zu verdrahten, verbinden Sie den linken Pin (VCC) mit 5V am Arduino. Der zweite Pin (SDA) wird mit dem A4-Pin eines Arduino Uno (oder Pin 20 bei einem Mega) verbunden. Der dritte Pin (GND) sollte mit der Masse verbunden werden, und der vierte Pin (SCL) wird mit dem A5-Pin eines Arduino Uno (oder Pin 21 bei einem Mega) verbunden. Zusätzlich verbinden Sie einen 4.7kΩ-Widerstand zwischen dem SDA-Pin und 5V und einen weiteren 4.7kΩ-Widerstand zwischen dem SCL-Pin und 5V, um die richtigen Signalpegel sicherzustellen.

Beim LCD1602-Display mit I2C verbinden Sie den VCC-Pin mit 5V und den GND-Pin mit Masse. Verbinden Sie den SDA-Pin des LCD mit demselben SDA-Pin (A4), der für den Sensor verwendet wird. Ebenso verbinden Sie den SCL-Pin des LCD mit demselben SCL-Pin (A5), der für den Sensor verwendet wird. Diese gemeinsame Verkabelung ermöglicht es beiden Geräten, über denselben I2C-Bus zu kommunizieren.

Codebeispiele und Schritt-für-Schritt-Anleitung

Der folgende Code initialisiert den AM2320-Sensor und das LCD1602-Display. Er beginnt damit, die notwendigen Bibliotheken einzubinden und eine Instanz des Sensors zu erstellen.

#include 
AM2320 sensor;
#include 
LiquidCrystal_I2C lcd(0x27, 16, 2);

Hier, der/die/dassensorEin Objekt wird aus der AM2320-Bibliothek erstellt, und daslcdDas Objekt wird mit der I2C‑Adresse des Displays initialisiert.

Imsetup()In der Funktion initialisieren wir sowohl den Sensor als auch das LCD. Dies umfasst das Einschalten der Hintergrundbeleuchtung und das Ausgeben einer Anfangsnachricht.

void setup() {
  sensor.begin();
  lcd.begin();
  lcd.backlight();
  lcd.print("Robojax AM2320 ");
  lcd.setCursor (0,1);
  lcd.print("LCD1602 I2C Demo");
  delay(3000);
}

Dieser Code richtet die Anzeige so ein, dass eine Willkommensnachricht für 3 Sekunden angezeigt wird und dem Benutzer Zeit gibt zu sehen, dass das System gerade initialisiert wird.

Derloop()Die Funktion prüft kontinuierlich, ob Sensormessungen vorliegen, und aktualisiert die Anzeige entsprechend. Wenn eine Messung verfügbar ist, löscht sie den Bildschirm und zeigt die Temperatur sowohl in Fahrenheit als auch in Celsius sowie die relative Luftfeuchtigkeit an.

void loop() {
  if (sensor.measure()) {
    lcd.clear();
    lcd.print("T:");
    lcd.print(temp('F'));
    lcd.print("F/");
    lcd.print(temp('C'));
    lcd.print("C");  
    lcd.setCursor (0,1);
    lcd.print("R.H. :");
    lcd.print(sensor.getHumidity());
    lcd.print("%"); 
  }
  else {
    int errorCode = sensor.getErrorCode();
    switch (errorCode) {
      case 1: lcd.print("ERR: Sensor offline"); break;
      case 2: lcd.print("ERR: CRC failed."); break;
    }    
  }
  delay(500);
}

Dieser Auszug zeigt, wie das Programm die Sensordaten abruft und anzeigt, während es mögliche Fehler behandelt, indem es dieerrorCode.

Demonstration / Was Sie erwartet

Wenn die Einrichtung abgeschlossen ist, zeigt das LCD voraussichtlich die Temperatur sowohl in Fahrenheit als auch in Celsius sowie die relative Luftfeuchtigkeit in Prozent an. Wenn der Sensor offline ist oder ein CRC-Fehler vorliegt, zeigt das Display entsprechende Fehlermeldungen an. Es ist wichtig, dass alle Verbindungen sicher sind, um Probleme zu vermeiden (im Video bei 02:45).

Video-Zeitstempel

  • 00:00- Einführung in das Projekt
  • 01:30- Verdrahtungsanleitung
  • 03:15- Code-Erklärung
  • 04:45- Demonstration der Funktionalität

Bilder

AM2320-sensor-1
AM2320-sensor-1
AM2320-sensor-2
AM2320-sensor-2
AM2320-sensor-3
AM2320-sensor-3
AM2320-sensor-4
AM2320-sensor-4
Arduino wiring for AM2320 sensor with LCD
Arduino wiring for AM2320 sensor with LCD
85-This is the Arduino code for an Aosong AM2320 temperature and humidity sensor with an LCD1602 and I2C module.
Sprache: C++
86-This is the Arduino code for the Aosong AM2320 temperature and humidity sensor with an LCD1602 and I2C module.
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Dateien📁

Datenblatt (pdf)

Fritzing-Datei