Raspberry Pi via Funk aufwecken

© rzymu, 123RF

Empfangsbereit

Möchten Sie Ihren RasPi nur mit Batteriestrom speisen, ist es sinnvoll, ihn nur dann zu aktivieren, wenn Sie ihn auch brauchen. Quasi auf Zuruf bootet der Mini-Rechner per Funknachricht, gesendet im europäischen 868-MHz-Band.

Der Artikel "Ein Tick mehr" aus RPG 02/2014 [1] präsentiert eine Lösung, die einen Raspberry Pi per Uhrzeit, Taster und Anschließen an die Stromversorgung startet. Sie finden den Artikel auch auf der beiliegenden Heft-DVD. Da die vorgestellte Schaltung einen zentralen Einspeisepunkt für zusätzliche Hardware-Triggersignale besitzt, lässt sich diese Lösung prinzipiell um beliebige weitere Ereignisquellen ausbauen. Dieser Artikel stellt eine solche Erweiterung in Form eines Funkmoduls vor, das bei Empfang einer vordefinierten Funknachricht den Bootvorgang einleitet.

Dabei soll das zu startende Gerät nur auf eine dafür individuell zugeordnete Funkkennung (RFID) reagieren. Diese Vorgehensweise erlaubt es, mehrere verteilte Systeme getrennt voneinander anzusteuern. Die Quittierung des Systemzustands durch ein entsprechend zurückgefunktes Datagramm soll auch bei bereits gestarteten RasPis erfolgen.

Dazu kommt in dieser Konstellation das günstige FSK-Funkmodem-Modul RFM69 [2] zum Einsatz, das den Transceiver-Chip SX1231 [3] und alle anderen notwendigen Komponenten enthält. Es fehlt nur noch die Antenne, um das Konstrukt in die Raspberry-Pi-Schaltung zu integrieren. Diese konstruierte der Autor aus Standardkomponenten aus dem Baumarkt selbst (Abbildung 1). So entstand die Antenne aus einem abisolierten Elektrokabel mit 1,5 mm2 Querschnitt. Dabei sorgt die Dicke nicht nur für bessere Stabilität, sondern auch für eine höhere Bandbreite – die Länge muss also nicht auf den Millimeter genau ausfallen. Das Ansteuern durch den RasPi erfolgt dabei über den SPI-Bus, der den Transceiver-Baustein abwechselnd in den Empfangs- und Sendemodus schaltet.

Abbildung 1: Das Funkmodul RFM69HCW mit einer selbst gebauten, 86 Millimeter langen Stabantenne. Der Autor verwendete dafür ein Standardelektrokabel mit 1,5 Millimetern Querschnitt aus dem Baumarkt.

Das Funkmodul gibt es für zwei in der EU frei verfügbare Frequenzbänder. Bei einem davon handelt es sich um das weitverbreitete 433-MHz-Band, das häufig Funkkopfhörer, Fernsteuerungen, Funksteckdosen und günstige Walkie-Talkies nutzen. Allerdings weist dieses Band einen gravierenden Nachteil auf: Außer hinsichtlich der Sendeleistung ist es kaum reguliert, dementsprechend chaotisch geht es auf der Frequenz zu. So kommt es durchaus vor, dass ein Funklautsprecher in der Nachbarschaft die eigene Funkstrecke dauerhaft blockiert oder zumindest deutlich verkürzt; die negativen Rezensionen im Internet zum Thema Funksteckdosen sprechen hier Bände.

Schon besser eignet sich das 868-MHz-Band, denn den Zugriff auf diesen Funkkanal hat die EU unionsweit einheitlich reguliert (siehe Kasten "Das europäische 868-MHz-Band"). Aufgrund der im Vergleich zum 2,4-GHz-WLAN niedrigen Frequenz punktet es sowohl mit einer hervorragenden Reichweite von ungefähr 100 Metern im Freifeld als auch mit einer recht hohen Durchdringung in Gebäuden. Gegenüber Geräten für das 433-MHz-Band genügt dafür eine Antenne halber Länge; darüber hinaus darf man im 868-MHz-Band mit deutlich höherer Leistung senden als bei 433 MHz (siehe auch Kasten "Funkparameter").

Das europäische 868-MHz-Band

Das Europäische Institut für Telekommunikationsnormen ETSI hat im Dokument EN 300 220-1 [4] den Zugang von Geräten des Kurzreichweitenfunks (Short Range Devices, SRD) zu den entsprechenden Funkbändern im Bereich von 25 MHz bis 1 GHz für den ganzen europäischen Raum einheitlich geregelt. Im Gegensatz zum weltweit verfügbaren, aber weitgehend unregulierten 433-MHz-Band, in dem man ohne jegliche zeitliche Limitierung mit bis zu 1 mW auch in der vollen Bandbreite von 1,74 MHz funken darf, erlaubt die EU für das 868-MHz-Band in einer Bandbreite von 600 kHz bei 25 mW Sendeleistung nur einen Duty-Cycle von 1 Prozent innerhalb eines Intervalls von 1 Stunde Dauer – also insgesamt bis zu 36 Sekunden beliebig auf 1 Stunde verteilt. Allein schon diese zeitliche Limitierung führt dazu, dass jedes Gerät eine akzeptable Chance bekommt, ungestört und dadurch mit deutlich höherer Reichweite durchzukommen. Sofern der Sender zusätzliche Fair-Use-Vorkehrungen trifft, darf er auch länger senden.

Funkparameter

Unter Verwendung von Minimum-Shift-Keying (MSK) als Modulationsverfahren (wie bei DECT mit einem Bandbreiten-Symboldauer-Produkt BT = 0,5) lässt sich das RFM69 mit einer maximalen Datenrate von 300 kbit/s betreiben. Dabei belegt es rund 400 kHz Bandbreite und könnte jede beliebige Trägerfrequenz im Bereich von 868,2 bis 868,4 MHz verwenden. Das vorgestellte Projekt nutzt den Mittelteil des Bands rund um 868,3 MHz.

Die Schaltung

Abbildung 2 zeigt die um das Funkmodul RFM69 erweiterte und leicht modifizierte Schaltung aus dem ersten Artikel. Der Autor ersetzte lediglich das Relais durch einen P-Kanal-MOSFET des Typs IRF5305 als Schalter, die Software könnten Sie aber unverändert übernehmen. Das Funkmodul wirkt mit seinem Interrupt-Ausgang und über den Invertertransistor T5 auf denselben zentralen Triggerpunkt der Schaltung, über den auch der RTC-Chip und der Taster den Systemstart auslösen.

Abbildung 2: Die Schaltung des Vorschaltgeräts mit Taster, RTC-Chip und Funkmodul.

Konfigurieren Sie nun den Transceiver als Empfänger und setzen die RFID als Synchronisationswort, dann lauscht das RFM69-Modul an der Antenne. Nach dem Empfang von Präambel, Synchronisationswort und Datagramm löst die Schaltung den Interrupt im Transceiver-Baustein aus. Dasselbe Hardware-Signal, das auch die Stromversorgung über T5 aktiviert, reicht der Baustein über GPIO25 (Pin 22) noch als Interrupt-Signal an den Raspberry Pi durch. Ist der Pin schon für andere Zwecke vergeben, dann verwenden Sie einfach einen anderen, müssen dann aber die Konfiguration entsprechend anpassen.

In den meisten Fällen benötigen Sie in dieser Konstellation noch einen RasPi als Wecksender. Bei ihm genügt es, lediglich das Funkmodul (im Schaltplan IC4) mit allen Verbindungen zum Stecker am RasPi-GPIO aufzubauen. Lediglich die 3,3-Volt-Versorgung des Moduls erfolgt direkt vom Raspberry Pi aus über Pin 1 oder Pin 17 der GPIO.

Das Funkprotokoll

Das genutzte 256-Bit-Datagramm (Abbildung 3, oben) – es besteht aus der Präambel zur Frequenzsynchronisation des Empfängers, der Funkkennung des Ziels (Destination RFID) und der Quelle (Source RFID) – belegt bei 300 kbit/s Senderate einen Sendezeitraum von etwa 853,3 Mikrosekunden. Die einfachste Lösung, den Funkkanal entsprechend der EU-Norm nur zu 1 Prozent zu belegen, besteht auf der Sendeseite aus der Verwendung eines einzigen Zeitschlitzes in einem periodischen Senderahmen von 85,3 Millisekunden (Abbildung 3, Mitte). Während der restlichen Zeit wartet der Sender auf die Empfangsquittung der gerufenen Station.

Abbildung 3: Weck- beziehungsweise Quittierungsdatagramm, Senderahmen und DRX-Betrieb des ruhenden Empfängers.

Laut Datenblatt zieht das RFM69-Modul im Empfangsmodus 16 mA Leistung. In unserer Schaltung wäre das eine zusätzlich Last von 80 mW an der Stromquelle – das kann bei reinem Batteriebetrieb schon zu viel sein. Im Idle-Betrieb spielt der Verbrauch mit nur 1,2 µA aber praktisch keine Rolle. Für den hier vorgestellten Aufbau gilt es also, das RFM69-Modul so zu programmieren, dass es im Intervallbetrieb arbeitet; diese Technik kommt auch bei Mobiltelefonen zum Einsatz und heißt dort Discontinuous Reception oder kurz DRX. Bei einem Duty-Cycle von 10 Prozent Empfangsphase versus 90 Prozent Idle-Phase sinkt nun die mittlere Leistungsentnahme an der Batterie ebenfalls um 90 Prozent, also auf etwa 1,6 mA – das entspricht einer Lastreduktion um 72 mW.

Bei der Dimensionierung der Empfangsphase für den aufzuweckenden RasPi (Abbildung 3, unten) gilt es zusätzlich, die Aufwachzeit des Funkmoduls zu beachten. Beim RFM69 beträgt diese laut Datenblatt im schlechtesten Fall um die 700 Mikrosekunden. Eine aktive Empfangsphase von etwa 90 Millisekunden Dauer (siehe Kasten "RFM69-Timing") garantiert aber, dass sich in der Wachphase mindestens ein Datagramm empfangen lässt, mit etwas Glück sogar zwei. Für den Rest des 0,9 Sekunden langen Empfangsrahmens geht das Modul dann wieder in den stromsparenden Idle-Betrieb.

RFM69-Timing

Um den Empfang mindestens eines Wecksignals während der Wachphase sicherzustellen, muss das RFM69-Modul aufwachen (700 Mikrosekunden), für die Dauer eines Senderahmens wachbleiben (85,3 Millisekunden) und zur Sicherheit vor dem Übergang zur Idle-Phase noch die Dauer eines Daten-Slots (853,3 Mikrosekunden) lauschen. Daraus ergibt sich eine erforderliche Wachphase von rund 86,9 Millisekunden.

Allerdings lassen sich die Wach- und Schlafperioden des Moduls nur als Vielfache des Timer-Ticks von knapp 4,1 Millisekunden einstellen. 21 Ticks entsprechen lediglich 86,1 Millsekunden, sodass eine ausreichend lange Wachphase 22 Ticks erfordert, also 90,1 Millisekunden. Entsprechend geht das Modul anschließend neunmal so lang in den Idle-Betrieb, gut 811 Millsekunden. Damit ergibt sich eine Gesamtlänge des Empfangsrahmens von etwas über 0,9 Sekunden.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 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

Aktuelle Ausgabe

10/2017
Addon-Boards

Diese Ausgabe als PDF kaufen

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

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial eines Mini-PC. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den Raspberry Pi und Konsorten, sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Aufgewacht!

    Der Raspberry Pi fährt auf Kommando herunter, doch zum Aufwachen fehlt ihm eine Echtzeituhr. Mit einer RTC und ein paar Schaltungen steuern Sie den Schlaf- und Wachrhythmus des Mini-Rechners.

  • Schneller Wechsel

    Mit dem Messkopf ExpEYES Junior erfassen Sie auf einfache Weise die Flimmerfrequenz von verschiedenen Lichtquellen.

  • Knirps

    Der 3,2 Zoll kleine Monitor von Joy-it, zusammen mit dem RasPi kaum größer als eine Packung Zündhölzer, bietet eine interessante Alternative zu einer reinen Headless-Konfiguration. Er erleichtert das Überwachen des Boot-Vorgangs und das Verfolgen von Ausgaben, die nur ein Paar Zeichen oder Zeilen umfassen.

  • Minimalistisch

    Die Raspberry-Pi-Familie bekommt regelmäßig Zuwachs, doch einige Familienmitglieder fristen ein Schattendasein, wie das Compute Module. Das kompakte Board eignet sich bestens für Embedded-Lösungen.

  • Meisencam

    Mit einem RasPi, einer NoIR-Pi-Cam und etwas Elektronik bauen Sie für unter 100 Euro ein digitales Auge, mit dem Sie behutsam Singvögel in der Natur beim Brüten beobachten.

  • Mit einfachen Mitteln

    YunoHost bietet eine große Anzahl von Diensten auf einer bewährten Debian-Server-Plattform, die Sie selbst hosten können.

  • An einem Tisch

    Gemeinsames Arbeiten auf einer mobilen Plattform im lokalen Netzwerk – dazu brauchen Sie nicht mehr als einen SBC und die Software Etherpad Lite.

  • Netz aufspannen

    Ein WLAN-Access-Point bietet einen zusätzlichen Einstieg ins LAN und erlaubt im Zusammenhang mit dem RasPi vielfältige Einsatzszenarien.

  • Diätkost

    Für ältere Modelle des RasPi erweist sich Raspbian mittlerweile als zu schwergewichtig. Mit dem schlanken DietPi helfen Sie diesen Modellen wieder auf die Sprünge.