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

Ähnliche Artikel

Aktuelle Ausgabe

10/2019
Raspberry Pi 4B

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Sonnige Zeiten

    UV-Strahlung ist für das menschliche Auge unsichtbar, was sie umso gefährlicher macht. Die Höhe der tatsächlichen Belastung verrät Ihnen das Selbstbauprojekt UV-Sensor.

  • Gut verpackt

    Für das Ansteuern kleiner Displays gibt es keine Programme von der Stange. Mit Python und einer Pygame-Bibliothek erstellen Sie trotzdem im Handumdrehen Anwendungen.

  • Macro-Mini-Micro-Bit

    Was dem Raspberry Pi für die Computerwelt gelungen ist, versucht der BBC Micro:bit für Mikrocontroller zu wiederholen. Das für Schüler entwickelte Kit hilft beim Einstieg in die hardwarenahe Programmierung.

  • Vorhang auf

    Mit dem modernen Video-Codec HEVC (H.265) erstellte Filme spielen bisherige RasPi-Modelle oft nur ruckelnd ab. Wir testen, ob der neue Raspberry Pi 4B das besser kann.

  • Überraschung!

    Eine optimierte Architektur und mehr RAM beschleunigen den RasPi 4B deutlich. Wir prüfen, wie gut sich der Neuling als Desktop-Rechner schlägt.

  • Durchgestartet

    Ein Stresstest zeigt, wie sich der neue Raspberry Pi 4 Modell B gegenüber den älteren Modellen abhebt.

  • Vierte Generation

    Eine schnellere CPU, USB 3.0 und Gigabit-Ethernet sind nur die Highlights des Raspberry Pi 4B: Das Board bringt viele weitere Neuerungen mit.

  • Tiefenmesser

    Um die Pumpe in einem Brunnenschacht möglichst genau zu positionieren, brauchen Sie dessen Tiefe. Die ermitteln Sie mithilfe eines präzisen Messgeräts aus einem Luftdrucksensor und einem Mikrocontroller.

  • Faktencheck

    Das via DVB-T2 ausgestrahlte Digital-TV liefert Bilder in HD-Qualität. Der dabei eingesetzte H.265-Standard überfordert allerdings kleine Mini-Rechner wie den Raspberry Pi – oder geht es doch?

  • Zugriff von außen

    React Native erlaubt es, Apps mit wenigen Zeilen Code zu programmieren. Mit einem entsprechenden Server sprechen Sie so den RasPi vom Smartphone aus an.