Im nachfolgenden Artikel wird die Schaltung gängiger Funksteckdosen (wie die Elro 440- oder 601-Serie) über den pcDuino Lite beschrieben. Hierbei beschränke ich mich auf die Schaltung über das Terminal. Andere Schaltmöglichkeiten lassen sich daraus aber einfach ableiten (Webinterface, MQTT, HomeKit etc.).

 

1. Hardware

Auf Hardwareseite ist die Schaltung recht einfach zu realisieren, da (wie beim Raspberry / Banana Pi auch) nur 3 Jumper-Kabel (female-female), ein 433MHz-Sender und der pcDuino (mit Ubuntu-Betriebssystem auf der SD-Karte) samt Netzteil erforderlich sind. Eine externe Antenne am Sender bzw. der Einsatz eines Superheterodynempfängers sind für eine erhöhte Reichweite empfehlenswert.

Den Aufbau habe ich in nachfolgender Grafik illustriert:433_sender_pcDuino

Und in tabellarischer Form:

Sender pcDuino
GND GND
VCC 3.3V
DATA Pin 10

 

2. Software

Die Software lässt sich sowohl mit der integrierten Arduino-IDE als auch mit dem c_environment umsetzen. Da ich hier eine Lösung beschreiben möchte, die sich auch auf einem Board ohne angeschlossenem Monitor umsetzen lässt, habe ich mich für das c_environment entschieden, dass es erlaubt, Arduino-Code ohne die IDE umzusetzen.


Hinweis: Die Installation, um zum Kompilieren des Sendeprogrammes zu gelangen ist etwas aufwendiger als z.B. beim Raspberry Pi. Ich stelle daher am Ende des Artikels auch meine kompilierte send-Datei zur Verfügung. Diese sollte sich auch ohne Installation der Entwicklungsdateien benutzen lassen. Solltet ihr allerdings Änderungen am Quellcode vornehmen wollen, ist eine Installation wie nachfolgend beschrieben notwendig.


2.1 Download und Anpassen von rc-switch

Praktischerweise funktioniert die für den Arduino entwickelte rc-switch-Bibliothek zumindest in Senderichtung auch ohne größere Codeanpassungen direkt auf dem pcDuino Lite. Ladet euch die Bibliothek also von GitHub herunter – entweder über git oder als .zip-Datei z.B. über wget (dann noch entpacken).

Eine kleinere Änderung am Code ist noch notwendig, damit ihr sie am pcDuino verwenden könnt. In der Datei „RCSwitch.h“ ersetzt ihr

durch

und speichert die Datei nach der Änderung.

 

2.2 Download und Anpassen des c_environment

Die C-Entwicklungsumgebung, um Arduino-artigen Code direkt auf dem pcDuino verwenden zu können, findet ihr ebenfalls auf GitHub. Ladet auch das Repository wie rc-switch auf euren pcDuino. Am Besten installiert ihr es euch unter „/home/ubuntu/c_environment“. Kopiert nun zuerst die rc-switch-Bibliothek in den libraries-Ordner (z.B. „/home/ubuntu/c_environment/libraries/rcswitch“).

Bearbeitet nun das „Makefile“ unter „c_environment“. Fügt bei „INCLUDES“ unten folgende Zeile hinzu:

und bei SRCS (ebenfalls unten):

Speichert die Datei nun und führt „make“ im Ordner „c_environment“ aus. Die Bibliotheken sollten nun kompiliert werden.

 

2.3 Erstellen des send-Programms

Wechselt nun in den Ordner „sample“ und erstellt eine neue Datei z.B. mit dem Namen „send.cpp“ und folgendem Inhalt:

Speichert die Datei und bearbeitet nun auch das Makefile im „sample“-Ordner, indem ihr bei „INCS“ unten hinzufügt:

und bei „OBJS“ ebenfalls unten:

Speichert die Datei wieder ab und führt „make“ im „sample“-Ordner aus. Wechselt über cd ../output/test/ in den Ausgabeordner. Hier sollte nun unter anderem eine send-Datei erstellt worden sein.

Die Benutzung ist relativ simpel. Die Befehle werden im folgenden Stil eingegeben:

Für den Haus- und Gerätecode werden dabei die binären Versionen benötigt, die sich nach Stellung der DIP-Schalter eurer Steckdosen auch ablesen lassen (Haben eure Dosen keine DIP-Schalter, solltet ihr sie mit entsprechender Umrechnung trotzdem benutzen können. Hier eine gute Seite für die entsprechende Umrechnung der Codes). Die 0 bzw. 1 am Ende des Befehls steht für ausschalten bzw. einschalten.


Hinweis: Nach dem Update des Kompletten Systems am pcDuino erhielt ich die Meldung

als ich versuchte, den send-Befehl abzusetzen. Die Lösung des Problems ist simpel. Führt die nachfolgenden Befehle nacheinander aus und startet den pcDuino neu.

Dann sollte das Schalten wieder funktionieren.


Ihr solltet nun wie z.B. vom Raspberry Pi gewohnt auch über den preiswerten pcDuino Lite eure Steckdosen schalten können.

Bei Fragen, Problemen und Anregungen könnt ihr gerne das Kommentarfeld unten verwenden.


Downloads

send-Programm (kompiliert)