Wie es sich für einen anständigen Auftritt gehört, habe ich eine Wetterstation, die ich selbst aus DHT22-, Raspberry Pi- und Nokia-Bildschirm zusammengestellt habe. Dies ist eine Konstantstromlösung, die Daten über Ethernet überträgt.
Aber jetzt brauchte ich eine mobile Wetterstation auf dem Balkon, drahtlos und batteriebetrieben.
Als Funkmodul habe ich eine Z-Wave Z-Uno-Karte verwendet. Als Temperatur- und Feuchtigkeitssensor habe ich beschlossen, Sensirion SHT20 auf I2C zu testen.

Materialien und Preise:
Z-Uno wird ständig aktualisiert, Unterstützung für neue Peripheriegeräte und Bibliotheken wird hinzugefügt. Derzeit unterstützt die aktuelle Version von Firmware 2.0.9 die folgenden Geräte:
- 1-Draht-Temperatursensor DS18B20
- DHT22 && DHT11 Temperatur- und Feuchtigkeitssensor
- 125 kHz RFID-Kartenleser
- I2C BMP180 Druck- und Temperatursensor
- Beispiele hierfür sind z-uno.z-wave.me/examples
Der Sensirion SHT20-Sensor, der am I2C-Bus arbeitet, war nicht in der Liste der unterstützten Sensoren enthalten, daher musste ich meine eigene Implementierung für Z-Uno schreiben. Die Skizzensyntax für Z-Uno ist Arduino so ähnlich wie möglich, die gesamte Skizze passt in 35 Zeilen:

Skizze für Z-Uno für die Arbeit mit einem Temperatur- und Feuchtigkeitssensor Sensirion SHT20#include <Wire.h> #include "SHT2x.h" int16_t temperature; uint8_t humidity; ZUNO_SETUP_SLEEPING_MODE(ZUNO_SLEEPING_MODE_SLEEPING); #define ZUNO_CHANNEL_TEMPERATURE 1 #define ZUNO_CHANNEL_HUMIDITY 2 ZUNO_SETUP_CHANNELS( ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemp), ZUNO_SENSOR_MULTILEVEL_HUMIDITY(getterHumid) ); void setup() { Wire.begin(); } void loop() { temperature = SHT2x.GetTemperature(); zunoSendReport(ZUNO_CHANNEL_TEMPERATURE); humidity = SHT2x.GetHumidity(); zunoSendReport(ZUNO_CHANNEL_HUMIDITY); zunoSendDeviceToSleep(); } byte getterTemp(void) { return temperature; } byte getterHumid(void) { return humidity; }
SHT2x.cpp geändert für Z-Uno SHT2x.h #ifndef SHT2X_H #define SHT2X_H
Von den besonderen Dingen gibt es in der Skizze nur eine Linie, die Z-Uno in den Schlafmodus versetzt:
ZUNO_SETUP_SLEEPING_MODE(ZUNO_SLEEPING_MODE_SLEEPING)
Und festlegen, an welchen Kanal die Temperatur an und an welche Luftfeuchtigkeit gesendet werden soll:
ZUNO_SETUP_CHANNELS( ZUNO_SENSOR_MULTILEVEL_TEMPERATURE(getterTemp), ZUNO_SENSOR_MULTILEVEL_HUMIDITY(getterHumid) )
Der Rest ist regulärer Arduino-Code.
Sensirion SHT20 arbeitet mit I2C und ist über 2 Drähte verbunden. Standardmäßig sind in der Wire.h-Bibliothek für I2C die Pins 9 und 10 definiert.
Informationen vom Sensor können auf dem Telefon angezeigt werden und werden in der Automatisierung zur Steuerung des Luftbefeuchters und der Klimaanlage verwendet.
Die Daten werden alle 12 Minuten aktualisiert. In diesem Modus muss der Sensor länger als 2 Jahre mit einem Batteriesatz arbeiten.

Das Gint-Gebäude G517B 90 x 60 x 20 cm wurde speziell mit einem Platz unter dem Batteriefach ausgewählt, alles passt perfekt.
Die Entwicklung des Z-Wave-Temperatur- und Feuchtigkeitssensors dauerte ca. 2 Stunden und 3746 p. Sie können auch einen E-Ink-Bildschirm hinzufügen und an die Wand hängen!