Am Puls von Microsoft

Raspberry Pi trifft .NET: Enviro pHAT bringt uns auf Temperaturen

Raspberry Pi trifft .NET: Enviro pHAT bringt uns auf Temperaturen

Unsere Reise mit .NET auf dem Raspberry Pi geht weiter. Im letzten Teil der Serie haben ein LED-Band zum Blinken gebracht, nun lesen wir einmal die aktuelle Lufttemperatur aus. Doch es kam anders als erwartet.

Pimoroni Enviro pHAT

Der in dieser Version leider nicht mehr erhältliche Enviro pHAT von Pimoroni ist eine kleine Erweiterungsplatine, auch HAT genannt, für den Raspberry Pi, die verschiedene Umweltsensoren kombiniert. Damit kannst du Temperatur, Luftdruck, Licht, Farbe, Bewegung und analoge Signale messen. Somit ist der HAT in der Theorie ideal für kleine Wetterstationen oder zur Raumüberwachung gemacht. Eine Erklärung und mögliche Lösung zu einem großen Nachteil für reale Einsatzzwecke folgt im Laufe des Artikels.

BMP280

Der vom HAT verwendete BMP280 Chip ist ein kompakter und vielseitiger Sensor von Bosch, der in vielen Projekten rund um Umweltmessungen eingesetzt wird. Er misst präzise Temperatur und Luftdruck und eignet sich deshalb ideal für Wetterstationen, Höhenmessungen oder zur Raumüberwachung. Der Sensor funktioniert auf Basis eines piezoresistiven Elements, das bei Druckveränderungen den elektrischen Widerstand verändert. Diese feinen Änderungen werden intern digital verarbeitet. Mithilfe gespeicherter Kalibrierdaten liefert der BMP280 verlässliche und genau ausgegebene Werte. Über Schnittstellen wie I²C oder SPI lässt er sich problemlos mit Geräten wie dem Raspberry Pi oder Arduino verbinden und bietet so eine einfache Möglichkeit, Umweltdaten in eigenen Projekten zu erfassen.

Entwicklung

Die Vorstellung

Jetzt würde ich sehr gerne sage, dass es genau so komplex war, wie zu unseren Basteleien hier auf Dr. Windows zu Zeiten von Windows 10 IoT Core, wo wir Kalibrierungs-Bit-Schupferein und Ausgleichswerte selbst berechnen und modifizieren mussten, was von stundenlangen Versuchen geprägt war, immer mit der Angst, durch einen falschen Schreibbefehl den Chip zu frittieren. Doch ich hatte Lust darau,f nach all den Jahren wieder einzutauchen.

Die Realität

Ich fragte GitHub Copilot in dessen kostenfreien Version nach einer Implementierung und gab ihn die I2C-Adresse des BMP280 Chips mit. Nach etlichen Steps und Schleifen, in denen er selbst Fehler erkannte und diese behob, hatte ich in ungefähr zwei Minuten eine C#-Klasse, welche mit Hilfe des offiziellen .NET NuGet Packages „System.Device.Gpio“ und „Iot.Device.Bindings” mir Temperaturen auslas und mehr oder weniger richtig formattiert ausgab. Ohne noch irgendetwas anderes per Hand machen zu müssen. Sehr beängstigend.

Somit bleibt mir hier nicht viel zu erklären, da durch das mächtige .NET Framework als auch durch die Hilfe von GitHub Copilot sehr wenig „eigene“ Arbeiten in zu mindestens diesem Stadium von mir verbracht worden sind und man sich wahrlich nicht mit fremden Lorbeeren schmücken sollte.

Feinschliff

Selbst der Feinschliff wie Aufräum- und Dokumentationsarbeiten war zu großen Teilen mit dem GitHub Copilot möglich. Natürlich konnte mein innerer Monk es nicht lassen, noch Dinge von Hand nachzuarbeiten und Variablen anders zu benennen – aber das liegt wohl eher an meinen Boomer-Genen als an zu schlechter Arbeit vom Copiloten.

Das Projekt

Wer sich den Quelltext auf Github ansieht, wird merken, dass dort mehr passiert als nur BMP280 Sensordaten auszulesen. Falls ihr auf solche Beiträge Lust habt, berichte ich gerne weiter von anderen Sensoren oder auch ganz anderen Raspberry Pi Abenteuern. Lasst es uns wissen!

Über den Autor

Tobias Scholze

Tobias Scholze

Bayrischer Open Source- und Community-Enthusiast, Verfechter des neuen Microsoft und Wandler zwischen den Betriebssystemwelten. #communityrocks Von Herzen ein Nerd mit der festen Überzeugung, dass man gemeinsam und durch den Einsatz von moderner IT die Welt für jeden ein Stückchen besser machen kann.

Anzeige