Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Arduino Lektion #111: Sensor AM2320 für Temperatur & rel. Luftfeuchtigkeit

Posted on 22. Juni 20208. März 2024 by Stefan Draeger

In diesem Beitrag möchte ich dir den Sensor für Temperatur & rel. Luftfeuchtigkeit AM2320 vorstellen.

Der Sensor AM2320 ist sehr klein (kaum größer als ein 1 € Stück), hat dabei aber trotzdem eine sehr gute Auflösung und vor allem durch die I2C Schnittstelle eine sehr gute Anbindung an den Arduino.

AM2320 Sensor für Temperatur & rel. Luftfeuchtigkeit AM2320
AM2320 Sensor für Temperatur & rel. Luftfeuchtigkeit AM2320
AM2320 Sensor für Temperatur & rel. Luftfeuchtigkeit AM2320
Größenvergleich mit einem 1€ Stück
AM2320 Sensor für Temperatur & rel. Luftfeuchtigkeit AM2320
AM2320 Sensor auf einem 170 Pin Breadboard

  • Bezug
  • Technische Daten des AM2320 Sensors
  • Pinout des Sensors AM2320
  • Anschluss am Arduino
    • Aufbau der Schaltung
  • Programmieren
    • benötigte Bibliothek für den AM2320
      • Beispiel
    • Quellcode zum Messen der Temperatur & rel. Luftfeuchtigkeit
    • Video
  • Fazit

Bezug

Diesen Sensor habe ich (wie so viele andere) über ebay.de* bezogen.
Der Preis liegt zwischen 1,45 € bis 2,55 € ohne Versandkosten.

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Auf anderen Plattformen wie amazon.de oder aliexpress.com erhält man diesen Sensor auch, aber der Preis ist sehr ähnlich, jedoch die Lieferzeiten sind sehr viel länger. 
Die Lieferung erfolgte in einer kleinen, einfachen, antistatischen Tüte. Diese Art der Lieferung ist für Sensoren üblich und auch sehr gut.

Technische Daten des AM2320 Sensors

  • Betriebsspannung 3,3V / 5V
  • Messbereich
    • Temperatur -40 °C bis 80 °C (Toleranz ±0.5 °C)
    • rel. Luftfeuchtigkeit 0 % bis 99,9 % (Toleranz ±0.3 %)
  • Schnittstelle I2C (0x5C)
  • Abmaße (L x B x H) 22,5 mm x 12 mm x 4,7 mm

Weitere technische Daten kannst du auch dem Datenblatt zum Sensor unter https://akizukidenshi.com/download/ds/aosong/AM2320.pdf entnehmen.

Pinout des Sensors AM2320

Der Sensor verfügt über 4 Pins welche wie folgt belegt sind:

Pinout des Sensors AM2320
Pinout des Sensors AM2320

Anschluss am Arduino

Der Sensor verfügt wie bereits gezeigt über die I2C Schnittstelle und wird dadurch über die Pins analog A4 (SDA) und analog A5 (SCL) angeschlossen.

Für den Aufbau der Schaltung verwende ich neben dem Sensor und einem Arduino UNO, noch zusätzlich:

  • 1x 400 Pin Breadboard,
  • 4x Breadboardkabel, 10 cm, männlich – männlich,
  • 2x 2,2 kOhm Widerstand
Sensor AM2320 am Arduino UNO
Sensor AM2320 am Arduino UNO

Aufbau der Schaltung

Im Nachfolgenden ist der Sensor auf einem Breadboard gesteckt, dabei schaut die Schrift bzw. das Gitter nach vorne. Mit dem Aufbau beginnen, von links (VCC).

Anschluss von VCC & GND

Als Erstes wird 5V vom Arduino an den ersten Pin des Sensors angeschlossen.
Der Pin GND wird mit dem dritten Pin des Sensors verbunden.

Anschluss von SDA & SCL

Die Datenleitung SDA wird mit dem analogen Pin A4 und SCL mit dem analogen Pin A5 verbunden. 
Zusätzlich werden diese beiden Pins mit einem 2,2 kOhm Widerstand an VCC verbunden.

Aufbau der Schaltung "AM2320 am Arduino UNO"
Aufbau der Schaltung „AM2320 am Arduino UNO“

Programmieren

benötigte Bibliothek für den AM2320

Zum einfachen Zugriff auf die Sensordaten können wir uns einer Bibliothek bedienen. Der Vorteil ist das wir nicht viel Code schreiben müssen, damit wir die Sensordaten erhalten.

Wie man eine Bibliothek in der Arduino IDE installiert habe ich bereits im Beitrag Arduino IDE, Einbinden einer Bibliothek ausführlich erläutert.

Die Bibliothek wird über den Bibliotheksverwalter installiert, diesen erreichst du über das Hauptmenü „Sketch“ > „Bibliothek einbinden“ > „Bibliotheken verwalten“. (Oder über die Tastenkombination Strg+Umschalt+I.)

Als Erstes wird in dem Bibliotheksverwalter nach „am2320“ (1) gesucht. Die Liste der Bibliotheken wird dann nach dem Suchbegriff gefiltert und wir wählen in dem ersten Eintrag „Adafruit AM2320 sensor library“ die Schaltfläche „Installieren“ (2). Nach der Installation kann dieser Dialog mit der Schaltfläche „Schließen“ (3) geschlossen werden.

Installieren der Adafruit AM2320 Bibliothek
Installieren der Adafruit AM2320 Bibliothek

Beispiel

Der Bibliothek liegt ein Beispiel bei, welches auf dem seriellen Monitor der Arduino IDE die Temperatur sowie die relative Luftfeuchtigkeit anzeigt.

mitgeliefertes Beispiel zur Bibliothek
mitgeliefertes Beispiel zur Bibliothek

Dieses Beispiel werde ich im nachfolgenden als Basis nutzen.

Quellcode zum Messen der Temperatur & rel. Luftfeuchtigkeit

Im Nachfolgenden möchte ich dir gerne zeigen, wie man die beiden Sensorwerte des AM2320 auf einem Display anzeigen kann.

Da der Sensor die Temperatur nur in Grad Celsius liefert, berechne ich die Temperatur in Fahrenheit sowie Kelvin mit einer einfachen Formel.

//Bibliotheken zum betreiben des Displays
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#include "Adafruit_Sensor.h"
#include "Adafruit_AM2320.h"

#define OLED_RESET 4
//eine neue instanz für das Display erzeugen
Adafruit_SSD1306 display(OLED_RESET);


Adafruit_AM2320 am2320 = Adafruit_AM2320();

void setup() {
  //aufbauen der Kommunikation zum Display mit der I2C Adresse 0x3C
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
  //setzen der Textgröße auf den Wert 2
  display.setTextSize(1);
  //setzen der Textfarbe auf Weiß
  display.setTextColor(WHITE);
  //beginn der Kommunikation mit dem Sensor
  am2320.begin();
}

void loop() {
  //lesen der Temperatur in Grad Celsius
  float tempC = am2320.readTemperature();
  //berechnen der Temperatur in Grad Fahrenheit
  float tempF = (tempC *1.8)+32;
  //berechnen der Temperatur in Grad Kelvin
  float tempK = tempC + 273.15;  
  //lesen der rel. Luftfeuchtigkeit
  float humidity = am2320.readHumidity();
  
  displayText("Temperatur", String(tempC,2)+"C");
  delay(1200);
  displayText("Temperatur", String(tempF, 2)+"F");
  delay(1200);
  displayText("Temperatur", String(tempK, 2)+"K");
  delay(1200);
  displayText("rel. Luftf.", String(humidity,0)+"%");
  delay(1200);
}

//Zeigt einen zweizeiligen Text auf dem Display an
//der Parameter "text" wird in der ersten Zeile
//der Parameter "value" in der zweiten Zeile
//angezeigt.
void displayText(String text, String value){
  display.clearDisplay();
  display.setCursor(36, 12);
  display.println(text);
  display.setCursor(36, 24);
  display.println(value);
  display.display();
}

Video

In diesem Video zeige ich dir die Ausgabe des Sketches aus dem Beispiel. Das verwendete 0,42 OLED Display habe ich bereits im Beitrag Arduino Lektion #110: 0,42 Zoll OLED Display beschrieben. (Dort findest du ggf. weitere interessante Details zu diesem wohl kleinsten OLED Display.)

Fazit

Dieser Sensor ist ein guter, adäquater Ersatz für einen DHT11 Sensor (der DHT22 ist deutlich genauer). Durch die verwendete I2C Schnittstelle kann dieser sehr einfach adressiert werden. Leider kann die Adresse nicht geändert werden, sodass man nur leider einen Sensor anschließen.

2 thoughts on “Arduino Lektion #111: Sensor AM2320 für Temperatur & rel. Luftfeuchtigkeit”

  1. ChristophS sagt:
    19. März 2021 um 16:03 Uhr

    Im Schaltbild
    Aufbau der Schaltung “AM2320 am Arduino UNO”
    wird GND und VCC vom AM2320 an +5V des arduion angeschlossen. GND des AM2320 muss auf GND vom Arduino.

    Antworten
    1. Stefan Draeger sagt:
      20. März 2021 um 18:18 Uhr

      Hi Christoph,

      vielen Dank für deinen Hinweis.
      Ich habe den Fehler soeben behoben.

      Gruß,

      Stefan Draeger

      Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}