Raspberry Pi im Naturschutz

© Computec Media GmbH

Halali!

In einem Naturschutzgebiet bedrohen Fuchs und Marder seltene bodenbrütende Vögel. Als Gegenmaßnahme dienen Lebendfallen, die ein Tandem aus Mikrocontroller und RasPi überwacht.

In einem Naturschutzgebiet in Norddeutschland bedrohen Fuchs und Marder seltene bodenbrütende Vögel. Deswegen fängt die Parkaufsicht sie mit Lebendfallen, doch deren Kontrolle erweist sich in dem unzugänglichen Gebiet als aufwendig. Zwischen 40 und 50 Fallen gilt es, zu überwachen – das bedeutet lange und meist überflüssige Kontrollgänge.

Viel einfacher wäre es, sie elektronisch zu überwachen und bei einem Fang einen automatischen Alarm zu erhalten. Ein Tandem aus Mikrocontroller und Raspberry Pi könnte die Betreuer informieren, sobald ein Tier in die Falle geht. Der Weg von dieser Idee bis zur Umsetzung gestaltete sich dann aber länger als ursprünglich gedacht.

Eine der Herausforderungen war das Fehlen des mobilen Internets in dem dünn besiedelten Gebiet. Als Alternative bot sich eine Alarmierung via SMS an, und so gab ein früherer Artikel des Autors [1] den Ausschlag für die Zusammenarbeit.

Die Idee

Die Grundidee ist einfach: Der Mikrocontroller PIC 16F690 mit Nanowatt-Technologie überwacht mittels eines Sensors, etwa eines Kugelschalters oder Magnetkontakts, den Zustand der Falle und mit dem PIC-internen ADC die Spannung des Akkus. Bei geschlossener Falle oder zu geringer Akkuspannung weckt der Mikrocontroller einen angeschlossenen Raspberry Pi und signalisiert den Status. Der RasPi versendet daraufhin über einen angeschlossenen UMTS-Stick eine SMS an die Aufsicht, die dann das gefangene Tier abtransportiert oder den Akku auswechselt.

Für den Status verwendet der RasPi zwei GPIOs als Eingang (jeweils für Falle und Akku). Auf den ersten Blick erscheint das notwendige Skript sehr simpel, denn das Auslesen von GPIOs und der Versand von SMS lässt sich dank der großen Softwarebasis von Raspbian schnell implementieren. Doch der Teufel steckt im Detail, denn die Lösung muss sehr robust sein. Schließlich sollen keine gefangenen Tiere in der Falle verenden, nur weil etwa der SMS-Versand scheitert.

Der RasPi muss also nicht nur die Signale des PIC auslesen, sondern den Status auch zurückmelden. Hierfür benötigt das Konstrukt zwei weitere GPIOs: einen Pin für den Status und einen zweiten, der dem PIC den Shutdown anzeigt. Dieser schaltet dann den Strom wieder ab und spart so Akkuleistung. Bei einem Fehler weckt der PIC den Pi nach fünf Minuten für einen weiteren Versuch wieder auf. Nach einem erfolgreichen SMS-Versand bleibt der PIC inaktiv bis zu einem Reset, den der Betreuer der Falle nicht vergessen darf.

Als optionale Komponente kommt noch eine Real-Time-Clock (RTC) ins Spiel. Da der RasPi keinen Kontakt zum Netz aufbaut, kann er seine Uhrzeit auch nicht aktualisieren. Die RTC sorgt bei jedem Boot für die richtige Zeit, was bewirkt, dass alle Logmeldungen den korrekten Zeitstempel tragen. Auch die SMS enthalten jetzt neben der Fallennummer und dem Fallen- beziehungsweise Stromstatus die Sendezeit.

Der Mikrocontroller

Der PIC 16F690 befindet sich auf einer Trägerplatine, die sich direkt auf die GPIO-Leiste des RasPi stecken lässt (Abbildung 1). Den Schaltplan und die Bestückungsliste sowie alle Programme finden Sie auf dem Github-Projekt des Autors [2].

Die Wahl fiel auf den 16F690 der Firma Microchip, weil er mit der besonders sparsamen Nanowatt-Technologie arbeitet. Im Schlafmodus überwacht ein Watchdog-Timer den PIC, sodass die Stromaufnahme aus dem Akku nur noch etwa 1 bis 1,5 µA beträgt. Der Controller besitzt unter anderem 18 I/O-Pins, einen internen Oszillator, einen 10-Bit-ADC mit 12 Kanälen, einen Flash-Speicher für 4096 Words, 256 Byte SRAM sowie I-O-C Interrupts an PORT A und B. Die Datenübertragung an ein 4x16-LCD nutzt I2C per Software und PCF8574. Diese Lösung erlaubt eine Übertragung mit bis zu 100 kHz; der PIC lässt sich dann mit maximal 4 MHz betreiben. Diese Variante der Datenübertragung spart I/O-Pins ein.

Abbildung 1: Prototyp: Der Versuchsaufbau mit angeschlossenem Raspberry Pi und dem Mikrocontroller.

Der PIC wird nach der Konfiguration für etwa fünf Minuten in den Schlafzustand versetzt. Dann wacht er auf und kontrolliert den Sensor der Fallenklappe sowie die Akkuspannung. Ist alles in Ordnung, schläft er wieder ein. Der RasPi bleibt in diesem Fall außen vor. Sofern kein Tier in die Falle geht, genügt bei diesem Setup eine Akkuladung etwa für ein halbes Jahr.

Erst wenn ein Ereignis auftritt (Falle zu, Akku leer), startet der RasPi und versendet eine Meldung per SMS. Schlägt der Versand fehl, meldet der Pi das an den PIC, der sich das "merkt". Nach weiteren fünf Minuten startet der RasPi erneut den SMS-Versand. Das erfolgt so oft, bis der Transfer gelingt. Danach tritt das System wieder in die Ruhephase ein.

Die Programmierung des Chips erfolgt mittels Assembler über einen speziellen Einzelschrittmodus. Die Informationen werden per Software-I2C und aufsteckbare Hilfsplatinen herausgeleitet und per LC-Display mit 4 Zeilen zu je 16 Zeichen visualisiert (Abbildung 2).

Abbildung 2: Ein Segmentbildschirm erlaubt das Debugging des Aufbaus.

Der PIC ist über vier GPIOs (Abbildung 3) mit dem RasPi verbunden. Die GPIOs 17 und 27 kommunizieren den Status an den Raspberry Pi . Der wiederum setzt die GPIO 22 beim Programmstart auf HIGH und bei einem Fehler auf LOW. Das Shutdown-Signal kommt per GPIO 10. Nachdem der Wert auf HIGH wechselt, gibt der PIC dem RasPi noch eine Minute für das Herunterfahren und stellt dann den Strom ab (Abbildung 4). Braucht der Raspberry Pi zu lange, etwa weil der SMS-Versand hängt, regelt der PIC den Strom dennoch hart ab. Der RasPi verliert, abgesehen von einigen Logmeldungen, dadurch keine Daten.

Abbildung 3: Die Meldeleitungen vom PIC zum Raspberry Pi.
Abbildung 4: Der vorgesehene Ablaufplan für die Fuchsfalle.

Der PIC alleine genügt für die Schaltung aber noch nicht. Ein weiteres kritisches Bauteil stellt der Boost-Konverter dar (Abbildung 5), der aus der Akkuspannung von 3,0 bis 4,2 Volt die für den RasPi notwendigen 5 Volt erzeugt. Zuerst war das Schaltreglermodul XL6009 (bis 4A) im Einsatz. Da dieses jedoch im unteren Spannungsbereich von 3 bis 3,5 Volt nicht mehr zuverlässig genug arbeitete, bekam das Modul ML8205 (2A) den Vorzug, das auch bis 3 Volt klaglos läuft. Zu Testzwecken ersetzt ein per regelbarem Step-Up-Konverter angeschlossenes Schaltnetzteil den LiPo-Akku. Damit lässt sich auch Unterspannung ohne Probleme simulieren.

Abbildung 5: Die Trägerplatine mit Akku und Boost-Konverter.

Als besondere Herausforderung entpuppten sich die in den RasPi integrierten Pullup/Pulldown-Widerstände. Sie scheinen zu den am wenigsten bekannten Komponenten des Mini-Rechners zu gehören: Es gibt zwar viele Informationen zu den GPIOs und zahlreiche Tutorials zum Beschalten mit externen Pullup- oder Pulldown-Widerständen, aber kaum ein Artikel beleuchtet die internen Widerstände.

Konfigurieren lassen sich diese Pullups über die WiringPi-Bibliothek. Einmal eingerichtet, speichert der RasPi zwar den Zustand, aber er lässt sich nicht mehr auslesen. Wahrscheinlich erfolgt das Speichern in einer EEPROM-artigen Zelle, die nicht beliebig viele Schreibvorgänge verkraftet. Allerdings ist das alles nicht dokumentiert. Hier rächt sich, dass die Hardware des RasPi nicht komplett offenliegt.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

08/2019
Smarte Hacks

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Immer der Reihe nach

    Mit einer einfachen Schaltung testen Sie Bausteine, die über den SPI-Bus miteinander kommunizieren.

  • Einzigartig

    Eine MAC-Adresse ermöglicht die Kommunikation im Netzwerk. Der 24AA02E48 liefert sie für Setups, die aus grundlegenden Komponenten bestehen.

  • Steinkuchen

    Der Raspberry Pi hat viele Fans, doch nicht ohne Grund sehnen sich viele Anwender nach einem RasPi 4. Der Rock Pi 4 übertrumpft den RasPi 3 in Sachen Leistung um Längen und schlägt sich auch in der Praxis gut.

  • Kerngeschäft

    Der Einstieg in die Welt der Mikrocontroller fällt nicht ganz leicht. Mit dem Nucleo F401RE haben Sie jedoch ein Entwicklerboard samt abgestimmter Entwicklungsumgebung an der Hand.

  • Himbeer-Geräte

    Mit Maus und Tastatur im weiß-roten Raspberry-Look macht die Raspberry Pi Foundation das eigene Angebot an Peripheriegeräten für den Mini-Rechner komplett.

  • Unter Kontrolle

    PiCockpit ist eine speziell auf den RasPi zugeschnittene Online-Monitoring-Lösung. Wir werfen einen ersten Blick auf den brandneuen und in Ausbau befindlichen kostenlosen Dienst.

  • Ins rechte Licht gesetzt

    Selbst ohne eigenen Garten holen Sie sich Pflanzen mithilfe von LEDs in jeden Raum und sehen ihnen mit dem RasPi beim Wachsen zu.

  • Helligkeit nach Maß

    Wer bei wechselnden Lichtverhältnissen nicht ständig die Beleuchtung manuell nachregeln möchte, der spannt dafür einen PiXtend ein.

  • Geschrumpft

    Kleine Bildschirme gibt es zwar viele, aber der Support von Raspbian ist überraschend schlecht. Mit ein paar Tricks erzielen Sie trotzdem ein optimales Ergebnis.

  • Brüllwürfel

    Kompakt-Stereoanlagen mit CD-Spieler und Kassettendeck sind inzwischen oft ein Fall für den Recyclinghof – oder für die digitale Wiederbelebung mit einem RasPi und etwas Geschick.