Robuste Kommunikation

SDI-12 für IoT im Outdoor-Einsatz

26. November 2021, 10:13 Uhr | Von Joachim Wickenhäuser; Redaktion: Ute Häußler

Fortsetzung des Artikels von Teil 1

Zwei Wege führen ins Ultra-Low-Power-IoT

1988 war das Konzept von SDI-12 mit ca. 9,6-V- bis 14-V-Versorgung und ca. 0-V- bis 5-V-Signalpegel absolut Stand der Technik, durch den Schlafmodus ist Low-Power seit jeher Bestandteil. Viele SDI-12-Sensoren kommen zusätzlich mit anderen Spannungen klar, oft auch mit niedrigeren Signalpegeln. Einige Hersteller werben mit Versorgungsspannungen (und damit auch Signalpegeln) von 3,6 V an aufwärts und Ruheströmen im µA-Bereich - diese Sensoren rangieren unter Ultra-Low-Power.
Open-SDI12-Blue

95 % eines SDI-12 Sensors sind fast immer identisch. Im Opensource-Pro- jekt Open-SDI12-Blue wurden verschiedene Sensoren auf SDI-12 umgesetzt:
➔ Verschiedene Drucksensoren (Piezo, keramisch, barometrisch, ...)
➔ Zähler für Frequenzen und Ereignisse (Regenmengen, Windgeschwindigkeiten)
➔ Präzise Analogwerterfassung mit hochauflösendem A/D-Wandler
➔ Temperatur- und Feuchtesensoren

Open-SDI12-Blue ist inklusive Schaltplänen und Software vollständig dokumentiert und wird auch in der Praxis so eingesetzt. Die kommerzielle Verwendung von Bluetooth (inklusive der Bluetooth-Logos) muss zwingend bei der Bluetooth SIG [4] lizenziert werden. Es gibt kommerzielle, zertifizierte Anwender des Open-SDI12-Blue, die für Kooperationen offen sind. Die kommerzielle Version des Open-SDI12-Blue verfügt zusätzlich über einen benutzerfreundlichen Secure-Firmware-Downloader (per Bluetooth) und Zugriffsschutz. Eine aktuelle Liste findet sich in der Dokumentation.

Anbieter zum Thema

zu Matchmaker+
Ein SDI-12-Barometer
Bild 5. Ein SDI-12-Barometer
© J. Wickenhäuser

Die Anpassung eigener Sensoren ist problemlos, es stehen mehrere Portpins zur Verfügung, die sehr flexibel und einfach programmiert werden können, beispielsweise als I2C-Bus, Interrupt-Eingänge oder als einfacher Analogeingang. Als CPU wird ein SoC der nRF52-Reihe verwendet. Der Vorteil dieser CPU liegt in der kostenlosen, erstklassigen Entwicklungsumgebung SES für die nRF52 SoCs von Segger [5], einer hohen Verbreitung des SoC mit exzellenten Bibliotheken, der dank ARM Cortex-M3F-Core @ 64 MHz sehr hohen Rechenleistung, Bluetooth 5 sowie vorhandenen Treibern für Web-Bluetooth über Javascript/HTML.

Eine Beispielimplementierung ist Open-SDI12-Blue als barometrischer Drucksensor (Bild 5). Dabei wird der Sensor über einen I2C-Bus angeschlossen.

Weg 1: Die Kabelversion
Die Spezifikationen von SDI-12 enthalten eine Skizze für einen Signaltreiber, allerdings auf 5-V-Basis. Es gibt jedoch bereits ein praxiserprobtes System für einen Treiber, der problemlos auch mit 3-V-Versorgung arbeitet, und kompatibel zum 5-V-Signalstandard ist. Die einzige Einschränkung der 3-V-Version ist die Unterscheidung H/L, bzw. 1/0 bei ca. 1,5 V und nicht, wie in den Originalspezifikationen, bei ca. 3,5 V. Im Schlafmodus benötigt Open-SDI12-Blue <10 µA und die Versorgungsspannung darf 2,8 V – 14 V betragen.

Weg 2: SDI-12 over Bluetooth

Ein zusätzlicher, sehr eleganter Weg ist es, SDI-12 Kommandos über Bluetooth zu senden. Eine App ist nicht notwendig, da Bluetooth inzwischen über Javascript/HTML-Webseiten angesteuert werden kann (Bild 6).

»SDI-12 over Bluetooth« per Javascript/HTM
Bild 6. »SDI-12 over Bluetooth« per Javascript/HTML
© J. Wickenhäuser

Auch Firmware kann gegebenenfalls per Bluetooth aufgespielt werden. Das Senden der SDI-12- Kommandos geschieht über Bluetooth im selben Format wie über Kabel.
Lokale Einstellungen können beispielsweise problemlos über Bluetooth gemacht werden, während ein Datenlogger mit demselben Sensor gleichzeitig per Kabel kommuniziert. Entsprechende Beispiele und eine API sind in der Doku zum Open-SDI12-Blue enthalten. Die aktive Bluetooth-Verbindung benötigt lediglich zwischen 20 und 30 µA.

SDI-12 für langlebige Outdoor-Kommunikation

SDI-12 ist eine einfache und robuste Methode, IoT-Sensoren im Batteriebetrieb auch unter rauen Bedingungen stromsparend einzusetzen. Auch kleine Batterien können Sensoren dank des Schlafmodus von SDI-12 jahrelang betreiben. Das Kommunikationsprotokoll ist durch seine Einfachheit sehr flexibel und kann sowohl für kabelgebundene Anwendungen wie auch für die Bluetooth-Kommunikation verwendet werden. Im Opensource-Projekt Open-SDI12-Blue wurden verschiedene Drucksensoren, Zähler für Frequenzen und Ereignisse, die präzise Analogwerterfassung sowie Temperatur- und Feuchtesensoren via SDI-12 erfolgreich umgesetzt.

 

Literatur
[1] Das Open-SDI12-Blue-Projekt: https://github.com/joembedded/Open-SDI12-Blue
[2] Ein einfaches SDI-12 Terminal für PC: https://github.com/joembedded/SDI12Term
[3] Eine unvollständige Auswahl kommerzieller IoT-Datenlogger mit SDI-12: https://www.terratransfer.org, http:// geoprecision.com, https://www.ecotech.de
[4] Bluetooth SIG: https://www.bluetooth.com
[5] Das für nRF52 kostenlose SES - Segger Embedded Studio: https://www.segger.com

 

Der Autor

Juergen Wickenhaeuser von GeoPrecision
Juergen Wickenhaeuser von GeoPrecision
© J. Wickenhäuser

Joachim Wickenhäuser

arbeitet als Entwicklungsingenieur für Projekte im Umweltbereich und führt das Ingenieurbüro GeoPrecision in Ettlingen.


  1. SDI-12 für IoT im Outdoor-Einsatz
  2. Zwei Wege führen ins Ultra-Low-Power-IoT

Verwandte Artikel

Bluetooth SIG