Stückliste:

-          Raspberry Pi

-          Temperatur- und Luftfeuchtigkeitssensor (HYT 221)

GP  GPIO-Kabel (z.B. diese hier)

      Vorstellung des Raspberry Pi:



Vorbereitungen:

Zuerst muss ein Betriebssystem auf den RaspberryPi installiert werden.

Um das Betriebssystem auf den RaspberryPi zu bringen, wird eine microSD-Karte benötigt. Diese muss im formatierten Zustand vorliegen. Dies wird unter Windows 10 folgendermaßen erreicht:

  1. Rechtsklick auf das "Start"-Symbol
  2. Auf "Ausführen" klicken
  3. "cmd" in das Feld eingeben und ausführen
  4. In das sich öffnende Fenster "diskpart" eingeben
  5. In das neu geöffnete Fenster folgende Befehle in dieser Reihenfolge eingeben:
  • list disk
  • select disk x (wobei "x" die Nummer der microSD-Karte ist)
  • clean
  • create partition primary
  • select partition 1
  • active
  • format fs=fat32 quick
  • assign
  • exit

Das Betriebssystem Raspbian kann hier heruntergeladen werden. Mit dem Programm Win32 Disk Imager kann die microSD-Karte nun mit dem Betriebssystem beschrieben werden.

Hierzu muss der Win32 Disk Imager gestartet werden, das zuvor heruntergeladene Raspbian Image ausgewählt und anschließend der Laufwerks-Buchstabe der microSD Karte angewählt werden. Mit einem Klick auf schreiben wird der Vorgang gestartet.

Die microSD-Karte kann nun in den RaspberryPi eingebracht werden.

Der Raspberry Pi arbeitet mit 3,3 V Spannung, daher muss der Sensor dementsprechend ausgewählt werden. Der hier verwendete Sensor HYT221 kann in einem Spannungsbereich von 2,7 V bis 5,5 V arbeiten. Außerdem arbeitet der Sensor mit dem I²C-Protokoll, welches die digitalen Signale über zwei Leitungen überträgt: dem Clock-Signal (Taktsignal bzw. SCL-Pin) und dem eigentlichen Daten-Signal (SDA-Pin).

An die beiden Pins am Raspberry Pi kann man auch mehrere Geräte gleichzeitig anschließen, die mit dem I²C-Protokoll arbeiten. Diese können mithilfe von Adressen weiterhin separat angesprochen werden.

Der Sensor HYT221 soll zunächst gemäß Bild 1 mit den GPIO-Leitungen verbunden werden.




Bild 1: Anschlussbezeichnungen des HYT 221 mit den dazugehörigen Pins am RPi

Zum Auslesen der Sensordaten wird die Programmiersprache Python verwendet, da diese Sprache recht leicht verständlich ist und man darüber sehr gut die Pins des Raspberry Pi‘s direkt ansprechen kann. Python ist bereits auf dem Raspberry Pi vorinstalliert. Um die beiden Pins des Sensors anzusteuern (für das Auslesen der Sensordaten) wird allerdings noch das I²C-Protokoll benötigt, welches mit den beiden verwendeten SDA- und SCL-Pins (siehe Bild 1) arbeitet. Dieses muss manuell installiert werden.

Um den I²C-Bus nutzen zu können, muss der dazugehörige Treiber geladen werden. Dies geschieht mit dem Befehl modprobe i2c_dev, der in das Terminal des RPi eingegeben werden muss.



Bild 2: Icon um das Terminal zu starten

Als nächstes wird eine Gerätedatei erstellt, mit der das I²C-Protokoll ausgeführt werden kann. Hierzu wird folgender Befehl eingegeben: sudo mknod /dev/i2c-1 c 89 1

Achtung: Falls die Befehle per Copy/Paste eingegeben werden, muss darauf geachtet werden dass die Bindestriche manuell eingegeben werden müssen, da es sonst zu einem Fehler bei der Ausführung des Befehls kommt!

Um als normaler User des Raspberry Zugriff auf die I²C-Funktionen zu erhalten, wird sudo usermod -aG i2c pi in das Terminal eingegeben. In der /etc/modules-Datei muss ein neuer Eintrag hinzugefügt werden. Dazu wird die Datei im Terminal mit sudo nano /etc/modules aufgerufen. Dort soll nun eine Zeile mit i2c-dev hinzugefügt werden. Unter Umständen ist diese Zeile bereits vorhanden, dann muss die Datei nicht weiter bearbeitet werden.

Mit dem nano-Befehl wird ein Texteditor im Terminal geöffnet.Mit der Tastenkombination Strg+O werden die vorgenommenen Änderungen gespeichert. Mit Enter wird der Speicherort bestätigt und mit Strg+X wird der Texteditor wieder geschlossen.

Das Endresultat soll folgendermaßen aussehen:


Bild 3: Bearbeitung der /etc/modules-Datei im Texteditor

Es muss nun noch ein weiteres Modul geladen werden. Dies wird mit sudo modprobe i2c-bcm2708 durchgeführt. Es muss weiterhin die /boot/config.txt geändert werden. Diese wird über sudo nano /boot/config.txt aufgerufen. Dort müssen die beiden Zeilen  dtparam=i2c1=on und dtparam=i2c_arm=on entkommentiert (Entfernen des "#") bzw. neu hinzugefügt werden. Es ist nun ein Neustart des Raspberrys erforderlich um die Änderungen zu übernehmen.

Als Letztes werden die I²C-Tools heruntergeladen und installiert. Für die nächsten Schritte ist eine Internetanbindung notwendig. Es werden nun die Befehle  sudo apt-get updatesudo apt-get install i2c-tools und sudo apt-get install python-smbus hintereinander ausgeführt. Ist dies erfolgreich gewesen, hat man Zugang zu einem neuen Befehl, mit dem man die angeschlossenen I²C-Geräte anzeigen lassen kann. Dazu muss der Befehl i2cdetect –y 1 in das Terminal angegeben werden.


Bild 4: Anzeige der Adressen der angeschlossenen I²C-Geräte

Lässt sich der HYT 221, wie in Bild 4, als Adresse 28 auffinden, so kann man nun das Python-Programm für das Auslesen des Sensors vorbereiten.

Im Folgenden kann der Code heruntergeladen werden, der dieses Auslesen ermöglicht. Dieser stellt die Schnittstelle zwischen dem später von dem Benutzer zu erstellenden Programm und dem Sensor HYT 221 dar.

Der Code muss in einer Datei mit dem Namen „HYT221.py“ abgespeichert werden.

Wichtig: Alle hier heruntergeladenen Dateien müssen für die Konsolenanweisungen auf dem Desktop liegen!


HYT221.py (klicken, Download startet automatisch)

Der Quellcode lässt sich hier einsehen: HYT221.pdf


 

Als nächstes folgt das Programm, welches mit den ausgelesenen Werten arbeiten soll. Später werden die Werte auch in die lokale Datenbank abgespeichert.

Zunächst wird getestet, ob die Werte auch korrekt ausgelesen werden.

Dazu ist das folgende Beispielprogramm vorbereitet:


Main1.py (klicken , Download startet automatisch)

Der Quellcode lässt sich hier einsehen: main1.pdf


Auch dieses wird wieder in einer Datei mit der Dateiendung „.py“ abgespeichert. Es sollte darauf geachtet werden, dass diese Datei in demselben Verzeichnis abgespeichert wird, wie die „HYT221.py“-Datei.

Mit dem Befehl sudo python /home/pi/Desktop/main1.py kann das Programm nun ausgeführt werden und  es sollte die gemessenen Sensordaten ausgeben.


Zuletzt geändert: Mittwoch, 30. Januar 2019, 11:22