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

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.