Es bereitet keinerlei Probleme, einen Sensor an einen SBC zu hängen und regelmäßig Daten auszulesen. Langzeitaufzeichnungen erfordern jedoch ein paar zusätzliche Klimmzüge.
Der Hintergrund für den hier vorgestellten Datenrekorder ist ein Projekt in Tansania [1]. Umweltdaten aus Schulen sollen den Zusammenhang zwischen unter anderem Temperatur, Luftfeuchte oder Lärm und den Leistungen der Kinder zeigen, um zielgerichtet Verbesserungen umzusetzen. Der Projektleiter nahm dazu Kontakt mit dem Autor auf. Das Ergebnis ist eine Hard- und Softwarelösung, die sowohl die Projektanforderungen erfüllen soll als auch als generische Plattform für andere Anwendungen dienen kann.
Im Folgenden geht es um die eingesetzte Technik, die Sie so oder ein wenig verändert im heimischen Umfeld betreiben können. Im Projekt selbst geht es um mehr als eine Handvoll Geräte, denn im Zielausbau könnte es sich um bis zu 100 Datenlogger handeln. Eine Besonderheit dabei besteht im monatelangen autarken Betrieb ohne Strom und Netzwerk – beides steht in den wenigsten tansanischen Schulen zur Verfügung.
Bei einem Projekt lassen sich selten alle Dimensionen optimieren, vor allem wenn kein genaues Zielbild vorliegt. Kosten auf der einen Seite, Flexibilität auf der anderen Seite sowie Verfügbarkeit und Funktionalität mussten in Einklang gebracht werden.
Als Mikrocontroller dient ein Raspberry Pi Pico oder Pico W. Diese MCU senkt die Kosten und bietet viele Anschlüsse. Auch die Sensoren kommen von der Stange. Am Projektanfang ließ sich nicht genau festlegen, welche zum Einsatz kommen würden. Das wirkt sich jedoch nur auf die Software aus, denn fast alle Sensoren sind per I2C angeschlossen. Die Software ist in Python geschrieben, denn für zahlreiche Komponenten gibt es Python-Bibliotheken samt Beispielen. Python holt zwar im Gegensatz zu C/C++ nicht alles aus dem Prozessor heraus, dafür entwickeln Sie damit schneller.
Power-Management
Die Stromversorgung setzt auf zwei AA-Batterien. Wie der Artikel über die Schlafmodi des Pico [2] gezeigt hat, verbraucht der Pico selbst im Tiefschlaf noch immens viel Strom und würde die Batterien schnell leersaugen. Der Pico auf dem Datenlogger schläft also nicht, sondern schaltet sich zum Messzeitpunkt ein und danach wieder aus. Dafür benötigen Sie außer einer Real Time Clock (RTC) einen Flipflop sowie einige Widerstände beziehungsweise Kondensatoren.
Die Platine in Abbildung 1 ist die einzige speziell für das Projekt entwickelte Hardwarekomponente. Unter den Buchsenleisten für den Pico sitzt die RTC samt Flipflop. Die Wahl fiel bei der RTC auf die PCF8523, da sich hier eine Backup-Knopfzelle einfach anschließen lässt. Ein vorgefertigtes Breakout mit PCF8523 und Halter für die Knopfzelle erhalten Sie für wenig Geld bei Adafruit.
Als Flipflop kam der SN74HC74 zum Einsatz. Den Allerweltsbaustein für 50 Cent gibt es ihn im Breadboard-freundlichen DIL-Format. Wie die Schaltung funktioniert, erklärt der Kasten “Schalten per Flipflop”. Vereinfacht schaltet die RTC den Pico ein. Er schaltet sich nach getaner Arbeit selbst wieder aus, nachdem er vorher den nächsten Aufwachzeitpunkt in der RTC hinterlegt hat.
Schalten per Flipflop
Flipflops gibt es in verschiedenen Ausführungen. Der SN74HC74 ist ein doppelter D-Typ-Flipflop. Er verfügt über vier Ein- und zwei Ausgänge; der zweite weist immer den inversen Wert des ersten Ausgangs auf. Die Ausgänge heißen typischerweise Q und /Q (nicht Q). Q ist mit dem 3V3_EN-Pin (Enable) verbunden. Wenn Q Low ist, ist der Pico ausgeschaltet und umgekehrt. Der Wert von Q ist also direkt mit der Stromversorgung des Pico verknüpft.
Ein Eingang /SET oder /PRESET setzt bei fallender Flanke den Wert von Q auf High. An diesem Eingang hängen die RTC und ein Taster zum Einschalten des Pico. Ein Pullup sorgt dafür, dass der Eingang normalerweise High ist (Abbildung 2). Genauso gibt es einen umgekehrten Eingang /RESET oder /CLEAR, der Q auf Low setzt. Die Eingänge DATA und CLOCK sorgen beim Betrieb eines Flipflops für die Datenverarbeitung. Bei steigender Flanke von CLOCK wird der Wert von DATA nach Q kopiert. In der Schaltung liegt an CLOCK kein Taktsignal an, sondern ein Digitalausgang des Pico. /Q ist mit DATA verbunden (negative Rückkopplung). Setzt der Pico seinen Digitalausgang auf High (steigende Flanke), schiebt der Flipflop den Wert von DATA=/Q=Low nach Q=3V3**EN, was den Pico abschaltet.
Sie fragen sich vielleicht, warum der Pico nicht per /CLEAR ausschaltet. Das liegt daran, dass dieser Eingang auf High (Versorgungsspannung des Flipflops) liegt. RTC und Flipflop müssen durchlaufen und werden deshalb von extern versorgt. Bei einem LiPo-Akku können bis zu 4,2 Volt anliegen, was deutlich mehr ist, als der Pico erlaubt. Beim CLOCK-Pin verhält sich das anders: Er liegt normalerweise auf Low, und der Pico zieht ihn auf sein High mit 3,3 Volt.
Hier offenbart sich ein Fallstrick beim Nachbau: Fast alle RTC-Breakouts besitzen für die beiden I2C-Pins feste Pullups auf die Versorgungsspannung der RTC. Möchten Sie solch ein Breakout verwenden, dürfen Sie das System nicht mit einem LiPo-Akku betreiben. Zwei normale AA-Batterien mit ihren maximal 3 Volt sind dagegen unbedenklich. Das einzige dem Autor bekannte RTC-Breakout ohne fest verlötete Pullups ist Chronodot [9].

Abbildung 2: In der Schaltung für An/Aus sitzen an einem Eingang (/SET oder /PRESET) die RTC und ein Taster.
Batterielebensdauer
Eine Angabe, wie viel Strom Batterien liefern, finden Sie auf herkömmlichen Batterien nicht. Die Erklärung ist relativ einfach: Bei Batterien hängt die abrufbare Kapazität stark von der Art des Verbrauchs ab. Bei Hochstromanwendungen wie elektrischen Spielzeugautos fällt die verfügbare Kapazität deutlich niedriger aus als bei Anwendungen, die nur wenig Strom benötigen [3]. Wanduhren laufen deshalb gefühlt ewig mit einer Batterie. Außerdem spielt die Art der Entnahme – zyklisch oder kontinuierlich – eine Rolle.
Zum Glück eignet sich der Stromverbrauch eines Datenloggers optimal für Batterien. Der Pico zieht in den kurzen Momenten, in denen er die Daten erfasst, lediglich ungefähr 50 mA. In dieser Situation entspricht die nutzbare Kapazität der Batterie dem ungefähren Maximum von 3000 mAh.
Ein weiterer limitierender Faktor zeigt sich in der Spannung: Der Wert von 3 Volt für zwei AA-Batterien gilt ausschließlich ohne Last und im vollen Zustand [4]. Zum Glück arbeitet der Pico sehr genügsam, was die Versorgungsspannung angeht. Die Abbildung 3 veranschaulicht die Entladekurve bei einer minütlichen Messung.

Abbildung 3: Bei einer minütlichen Messung fällt die Entladekurve moderat aus, da sich der Pico sehr sparsam gibt.
Diese Spannungskurve stimmt grob mit der hochgerechneten Stromaufnahme von 50mA pro Messintervall überein. Eine genaue Berechnung gestaltet sich schwierig, da der Pico bei niedrigeren Spannungen höhere Ströme abruft. Er folgt also nicht dem Ohmschen Gesetz, sondern arbeitet mit annähernd konstanter Leistung. Letztlich liegt das am internen Buck-Boost-Konverter, der aus einer weiten Eingangsspannung eine konstante Spannung für den Baustein erzeugt.
Daten lagern und anzeigen
Für das Wegschreiben der Daten kommen WLAN oder Bluetooth infrage. WLAN erhöht allerdings die Stromaufnahme deutlich, weil die notwendige Anmeldung am Router etwas dauert. Da beim Projekt in Tansania weder WLAN noch Bluetooth zur Verfügung stehen, kommt zumindest bei einigen Schulen Long Range Wide Area Network (LoRaWAN) zum Zug. LoRaWAN-Komponenten kosten vergleichsweise viel Geld. Zudem benötigt das Netzwerkprotokoll eine Zentrale, die sich ohne Stromanschluss auf Dauer betreiben lässt. Deswegen plant man, hier einen Pi Zero in Kombination mit Akku und Solarmodul auf Basis eines PiJuice-HATs [5] zu nutzen.







