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

10/2018
Weltweiter Empfang

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Physiklabor

    Der Java-Dialekt Processing zielt auf interaktive Animationen ab und eignet sich auch für Programmiernovizen.

  • Abstand halten

    Der VL53L0X misst präzise Entfernungen bis zu zwei Metern. Das macht ihn zum passenden Kandidaten für RasPi-Projekte.

  • Tux-Funk

    Der SDR-Empfänger RSP2pro von SDRplay bringt Amateurfunk auf den Raspberry Pi.

  • Himbeersieb

    Die aus Österreich stammende Upribox auf Basis des Raspberry Pi schützt wirkungsvoll vor Gefahren aus dem Internet. Jetzt ist das System in der zweiten Version erschienen.

  • Unter Kontrolle

    Das programmierbare Steuermodul Controllino bietet mit seinen zahlreichen Ein- und Ausgängen vielfältige Möglichkeiten.

  • Dehnübungen

    Ein RasPi eignet sich bestens zum Steuern eines Fischertechnik-Roboters. Damit dabei kein Chaos entsteht, gilt es, die Steuerung genau zu programmieren.

  • Klangmaschine

    Der RasPi bringt genügend Performance mit, um als kleine DAW zu dienen. Mit Waveform 9 haben Sie die passende Software zur Hand.

  • Fremdgehen

    Nicht jedes Programm gibt es auch für die ARM-Architektur. Der kommerzielle Emulator Exagear Desktop fungiert als Übersetzer zwischen der ARM- und x86-Welt.

  • Ausfallsicher

    Eine selbst gebaute USV für den RasPi verschafft Ihnen die entscheidenden Sekunden, um bei unerwarteten Stromausfällen einem Datenverlust vorzubeugen.

  • Am laufenden Band

    Die Kombination aus einem Fischertechnik-Bausatz und dem Controllino-Modul bietet eine ideale Basis, um ein funktionierendes Industriemodell zu gestalten.