Teil 6: Temperatur und Luftfeuchte messen mit dem AM2321

© Sebastian Duda, 123RF

Wetterfrosch

Beim AM2321 handelt es sich um einen Sensor zum Messen der Temperatur und der Luftfeuchtigkeit. Er meldet sich am I2C-Bus unter der Adresse 0xB8h. Da es keine Möglichkeit gibt, eine andere Adresse einzustellen, können Sie immer nur einen dieser Sensoren an einem I2C-Bus betreiben. Der Baustein akzeptiert eine Betriebsspannung von 2,6 bis 5,5 Volt, die maximale Stromaufnahme liegt bei 0,5 Milliampere. Der Temperaturmessbereich reicht von -40 bis +80 Grad Celsius bei einer Toleranz von ±0,5 Grad Celsius, die Luftfeuchte misst der AM2321 in einem Bereich von 0 bis 99,9 Prozent mit einer Genauigkeit von maximal 3 Prozent [1]. Der Baustein ist etwas schwierig zu beschaffen, keiner der großen deutschen Versender führt ihn im Sortiment. Zum Glück gibt es genau auf diese Komponenten spezialisierte Online-Shops [2].

Luftfeuchtigkeit

Die Luftfeuchte gibt an, wie viel Prozent der Umgebungsluft aus Wasserdampf bestehen. In Wohnräumen sollte der entsprechende Wert zwischen 40 und 50 Prozent betragen. Eine zu niedrige Luftfeuchte kann die Schleimhäute schädigen und dadurch zu einer verringerten Atemleistung führen. Steigt die Luftfeuchtigkeit auf über 80 Prozent, besteht dagegen die akute Gefahr der Schimmelbildung.

Warme Luft kann mehr Feuchtigkeit aufnehmen als kalte Luft. Daher kondensiert beispielsweise die Luft in Kühlschränken und das Wasser läuft auf das warme Kühlaggregat ab, wo es dann wieder verdunstet. Wärmebrücken in Gebäuden erweisen sich als problematisch, weil die Luftfeuchtigkeit an diesen Stellen kondensiert und sich dort Schimmel bildet.

Hardware

Ein Testaufbau mit dem AM2321 fällt recht einfach aus, wie Abbildung 1 zeigt. Der AM2321 weist nur vier Anschlüsse auf, deren Belegung die Tabelle "AM2321: Anschlussbelegung" aufführt. Weil der AM2321 ein Rastermaß von 1,27 Millimeter aufweist, löten Sie ihn am besten auf eine Adapterplatine für ein SO8-Gehäuse, sodass Sie ihn einfach in unser Prototyping-Board stecken und mit ihm arbeiten können. Der AM2321 arbeitet intern mit 32 Registern. Allerdings sind die meisten davon reserviert und daher für unsere Zwecke unwichtig. Die Tabelle "AM2321: Registerbelegung" zeigt die interessanten Registeradressen und deren Funktion.

Abbildung 1: Der Versuchsaufbau mit dem AM2321 und der SO8-Adapterplatine.

AM2321: Anschlussbelegung

Pin

Belegung

1

VDD

2

SDA

3

GND

4

SCL

AM2321: Registerbelegung

Adresse

Beschreibung

0x00

Luftfeuchtigkeit (High Byte)

0x01

Luftfeuchtigkeit (Low Byte)

0x02

Temperatur (High Byte)

0x03

Temperatur (Low Byte)

0x0B

Geräte-ID Bit 24-31

0x0C

Geräte-ID Bit 16-23

0x0D

Geräte-ID Bit 8-15

0x0E

Geräte-ID Bit 0-7

Der AM2321 verfügt über einen Energiesparmodus, der verhindern soll, dass die vom Halbleiter selbst erzeugte Wärme die Messwerte verfälscht. Die eigentlich gute Idee erschwert aber den praktischen Umgang mit dem Baustein: Sie müssen den Sensor immer erst wecken, bevor Sie auf ihn zugreifen können. Das Tool I2cdetect kommt mit diesem Verhalten nicht sonderlich gut zurecht. Auch Ihre Testprogramme müssen auf diesen Umstand Rücksicht nehmen.

Um eine sichere Übertragung der Messwerte zu gewährleisten, übermittelt der AM2321 mit jeder Messung eine CRC-Checksumme. Bei Versuchen unter Laborbedingungen können Sie diese getrost ignorieren: Sie ist für den Fall gedacht, dass Sie den Sensor an eine sehr lange Leitung anschließen. Der AM2321 unterstützt zwei Funktionscodes, von denen wir nur die 0x03h verwenden: Die entsprechende Funktion ermöglicht das einfache Lesen mehrerer Bytes ab einer Startadresse.

Software

In den letzten Teilen der I2C-Reihe kamen oft C und Perl zum Einsatz, einmal sogar ein Kernel-Modul. Seit es den Raspberry Pi 2 gibt, macht es wieder erheblich mehr Spaß, Java zu verwenden. Die Programmbeispiele im Folgenden laufen aber auch auf einem RasPi der ersten Generation.

Bevor Sie loslegen, aktivieren Sie erst einmal den I2C-Treiber mithilfe von Raspi-config. Unter 8 Advanced Options findet sich der Unterpunkt A7 I2C, bei dem Sie einfach alle Fragen mit "Ja" beantworten. Nach dem anschließenden Neustart, den das Tool automatisch anstößt, sollten die nötigen Treiber vorhanden sein.

Allerdings klappt die Treiberinstallation nicht immer ganz reibungslos: Speziell auf dem RasPi 2 sind noch einige manuelle Schritte erforderlich, um die Treiber beim Booten zu laden. Falls die Datei /etc/modprobe.d/raspi-blacklist.conf auf dem System existiert, müssen Sie dort die Zeile blacklist i2c-bcm2708 mit einer vorangestellten Raute (#) auskommentieren. Danach ergänzen Sie in der Datei /etc/modules die folgenden beiden Zeilen, falls die entsprechenden Einträge noch fehlen:

i2c-bcm2708
i2c-dev

Zu guter Letzt fügen Sie beim Raspberry Pi 2 noch in der Datei /boot/config.txt die Zeile dtparam=i2c_arm=on hinzu. Nach diesen Arbeiten starten Sie den RasPi 2 neu, der nun die gewünschten Treiber automatisch lädt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Aktuelle Ausgabe

08/2017
Überwachung

Diese Ausgabe als PDF kaufen

Preis € 7,99
(inkl. 19% MwSt.)

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial eines Mini-PC. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Wo bin ich?

    Gyroskope dienen dazu, Positionsveränderungen wahrzunehmen. Dafür war früher eine recht aufwendige und teure Apparatur erforderlich, heute übernimmt das ein winziger Chip für wenige Euro.

  • Vergissmeinnicht

    Legen Sie Daten im EEPROM des ESP8266 ab, dann überstehen diese selbst einen Stromausfall.

  • Angeschaut

    Das offizielle Raspberry-Pi-Display bietet nur eine geringe Auflösung. Das gleichgroße 7-Zoll-Display von Waveshare kann deutlich mehr und dient zudem als Touchscreen für den RasPi.

  • ESP++

    Espressif mischte bereits mit dem WLAN-fähigen ESP8266 die Mikrocontroller-Gemeinde ordentlich auf. Jetzt legt der Hersteller mit dem ESP32 noch einmal nach.

  • Auf und nieder

    Mit einem PiXtend-Board und der Codesys-IDE bauen Sie den RasPi zur professionellen Steuereinheit für Aufgaben im Smart Home aus.

  • Halali!

    In einem Naturschutzgebiet bedrohen Fuchs und Marder seltene bodenbrütende Vögel. Als Gegenmaßnahme dienen Lebendfallen, die ein Tandem aus Mikrocontroller und RasPi überwacht.

  • Sicheres Zuhause

    Günstige IP-Kameras vom Discounter erkennen und melden zwar Bewegungen, doch die Fehlerrate fällt dabei recht hoch aus. Eine selbst entwickelte Bewegungserkennungssoftware für den RasPi beseitigt das Problem.

  • Tunnelbauer

    Ein Virtual Private Network schützt Ihre Daten vor neugierigen Blocken Dritter. PiVPN übernimmt dabei das Einrichten und Managen von OpenVPN.

  • Wolken

    NextcloudPi erleichtert Ihnen die Installation einer privaten Cloud. Das RasPi-Image bringt alle wichtigen Funktionen von Haus aus mit.