Ich möchte an dieser Stelle kurz eines meiner jüngsten Projekte vorstellen, den Pi Temperatur Sentinel mit der PiTS-It! Management Software.
Bei der PiTS-It! Management Software handelt sich um eine smarte Anwendung für den Raspberry Pi, die ich zur Aufzeichnung und Langzeitarchivierung von Wetterdaten (wie Temperatur, Luftdruck und -feuchtigkeit) verwende. Es lassen sich aber auch andere Anwendungsbeispiele mit der Software realisieren. So ist damit ebenso eine Temperaturüberwachung in Serverräumen möglich
Die PiTS-It! Management Software unterstützt viele verschiedene Sensoren
- 1-Wire Temperatursensoren, wie DS18B20
- I2C-Temperatursensoren, wie BME/BMP280
- die Sensoren (Temperatur/Licht) des Enviro pHAT
- analoge Sensoren über SPI AD-Wandler (MCP3008/MCP3208)
- interne SOC-Temperatur des Raspberry Pi
und bietet mit der universellen Ereignissteuerung die Möglichkeit zum individuellen, temperaturabhängigen Auslösen von Ereignissen (GPIOs, E-Mail oder Shell-Befehle).
Optional bietet die Software auch eine Anbindung an Apple’s HomeKit über die Integration der von PiTS-It! erfassten Sensoren via Homebridge-Plugin. Näheres dazu auf Twitter.
Weitere Informationen zu Hard- und Software findet man auf pits.tgd-consulting.de.
Hier noch als weiterführendes Beispiel die neueste Erweiterung für PiTS:
Ein remote Sensormodul für die Temperatur-, Luftfeuchte- und Luftdruckmessung per Funk auf Basis des ESP8266 und eines BME280-Sensors. Das Sensormodul ist mit dem entsprechenden Gehäuse auch für den Außeneinsatz geeignet und besteht aus nur wenigen Komponenten. Verwendet habe ich die ESP-01 Variante und den BME280-Sensor vom China-Händler meines Vertrauens.
Neben dem HLK-PM03 Step-Down-Converter, welcher für die Stromversorgung verwendet wird, sind nur ein paar Stütz- und Glättungskondensatoren verbaut, um einen ungewollten Reset des ESP zu vermeiden.
Beim Anschluss des BME280 an den ESP8266 ist es wichtig, dass man die I2C-Schnittstelle mit den richtigen PullUp Widerständen abschließt. Ich verwende je einen 4k7 Widerstand bei GPIO0 (SDA) und GPIO2 (SCL) am ESP-01. Sowohl bei größeren Widerständen als auch bei reiner Verwendung von Software-PullUps wurde der BME280 nie am I2C-Bus erkannt.
Der ESP8266 ist als normaler DHCP-Client mit dem lokalen WiFi-AP im LAN verbunden. In der Grundeinstellung wird der BME280 alle 10 Minuten vom ESP gepollt. Die Übertragung der Messwerte des BME280 erfolgt dann per HTTP-Get Request an das Webserver-Modul von PiTS-It!. Zur Absicherung der Kommunikation wird noch ein Verbindungstoken verwendet, dass der Seriennummer des RPi entsprechen muss. Ansonsten werden solche Requests vom Webserver als ungültig verworfen.
Zusätzlich wird beim HTTP-Request auch die Uptime des ESP als Parameter übergeben. So kann man am Raspberry Pi bei Bedarf manuell überprüfen wie lange der ESP seit dem letzten Reboot gelaufen ist.
Der passende Sketch für den ESP ist auf Github veröffentlicht. Vielleicht inspiriert der Sketch oder die Abbildungen hier zum Nachbau oder zur Adaption in eigene Projekte.
VG
TGD