Werbung

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

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.

 

Bezug

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

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.

Werbung

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,5mm x 12 mm x 4,7mm

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 wiefolgt belegt sind:

Pinout des Sensors AM2320
Pinout des Sensors AM2320

Anschluß 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, 10cm, 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).

Anschluß 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.

Anschluß 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 gefilter 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 Skteches 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 so das man nur leider einen Sensor anschließen.

Werbung

Schreibe einen Kommentar

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

Werbung