DIY - Temperatur und Luftfeuchtigkeit

Damit wir täglich den Wetterbericht im Internet, im Fernsehen, in der Zeitung oder in Apps sehen können, werden nicht nur Satellitendaten ausgewertet. Auch Daten von Wetterstationen am Boden spielen eine wichtige Rolle bei der Vorhersage. Aber wie funktioniert die Messung und Darstellung von Temperatur- und Luftfeuchtigkeitswerten?


Vorraussetzungen

Ziele der Station

In dieser Station beschäftigen wir uns mit dem Temperatur- und Luftfeuchtigkeitssensor der senseBox, dem HDC1080.

Materialien

  • kombinierter Temperatur und Luftfeuchtigkeitssensor HDC1080

Grundlagen

HDC1080 Sensor

Der HDC1080, aus der Serie HDX10XX von Texas Instruments, ist ein kombinierter Temperatur- und Luftfeuchtigkeitssensor. Der Sensor kann die Luftfeuchtigkeit von 0% bis 100%, sowie die Temperatur von -40°C bis 125°C bei einer Genauigkeit von ±2% bzw. von ±0,2°C messen.

I²C Bus

Die Kommunikation des Sensors mit dem Mikrokontroller läuft über den seriellen Datenbus I²C. Anders als bei einfachen digitalen oder analogen Eingängen, können an den Datenbus mehrere I²C-Geräte (wie z.B. Sensoren oder Displays) parallel geschaltet werden. Jedes Gerät hat dabei eine eindeutige Kennung, damit der Datenbus jedes Einzelne davon zuordnen und separat ansprechen kann.

Aufbau

Steckt den Schaltkreis wie ihr ihn unten in der Grafik seht.

Temperatur- und Luftfeuchtigkeitssensor angeschlossen über I2C-Port
Temperatur- und Luftfeuchtigkeitssensor angeschlossen über I2C-Port

Programmierung

Stelle sicher, dass du das aktuellste Board-Support-Package installiert hast, da du die korrekten Software-Bibliotheken benötigst. Wie das geht wurde dir in Schritt 2 erklärt!

Als erstes muss eine Instanz des Sensors angelegt werden.

#include "SenseBoxMCU.h"
HDC1080 hdc;

setup() Funktion

In der setup()-Funktion soll der Sensor nun gestartet werden:

void setup(){
    hdc.begin();
}

loop() Funktion

Nachdem du den Sensor, wie oben beschrieben, initialisiert hast, kannst du zwei Befehle in der loop()-Funktion nutzen, um einen Temperatur- bzw. Feuchtigkeitswert ausgeben zu lassen:

void loop(){
    hdc.getHumidity();
    hdc.getTemperature();
}
Beim Speichern der Messwerte sollten die Variablen den gleichen Datentypen haben wie die Rückgabewerte der Messfunktionen. In unserem Fall sind das beides float Werte.!

Aufgaben

Aufgabe 1

Baue die oben beschriebene Schaltung nach und versuche den HDC1008 auszulesen und Dir die gemessenen Daten im seriellen Monitor anzeigen zu lassen.

Schaue dir hierfür die Beispiele aus den Ersten Schritten an!

results matching ""

    No results matching ""