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

Ähnliche Artikel

Aktuelle Ausgabe

12/2018
Coole Projekte

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Bytes und Beats

    In Sonic Pi können Sie mit wenigen Codezeilen Klänge manipulieren, Beats zusammenstellen und ganze Songs komponieren.

  • Klein, aber fein

  • Trick or treat

    Das traditionelle RPG-Gruselkabinett glänzt dieses Jahr mit einer innovativen Umsetzung mittels Pneumatik und Elektropneumatik sowie ST-Programmierung.

  • Unter Kontrolle

    Traditionell stellen wir alljährlich ein selbst gebautes Halloween-Gespenst vor. Die pneumatischen und elektronischen Grundlagen erklärt dieser Artikel.

  • Go Pi Go!

    Der Bausatz GoPiGo3 liefert Bauteile und Software für ein kleines Roboterauto. Zusammen mit einem RasPi als Gehirn programmieren Sie den Roboter per Mausklick.

  • Handlicher Helfer

    Während die Folien der Präsentation durchlaufen, liefert ein kleiner Dokumentenserver auf Basis des GL-AR300M-ext zusätzliche Informationen aus.

  • Wiederverwertet

    Mithilfe eines einfachen Python-Programms recyceln Sie ein ausgedientes Smartphone als drahtlos angebundenes RasPi-Display.

  • Herzenssache

    Steigt beim Krimi der Herzschlag bedrohlich an? Mit einem Pulsmesser in Eigenbau ermitteln Sie einfach und kostengünstig, ob der Herzschlag noch in verträglichen Bereichen liegt.

  • Fernbedient

    Mit der Fernbedienung den RasPi steuern. In der Theorie möglich, in der Praxis oft beschwerlich. Die Libcec liefert praktische Tools zur Fehlersuche.

  • Musikwürfel

    Mit Musikcube machen Sie Ihre eigene Sammlung fit fürs Streamen. Der terminalbasierte Audioplayer lässt sich Fernsteuern und bietet eine App für Android-Smartphones.