Günstigster Weg, um mehrere Steckdosen (Lampen) über WLAN zu steuern

41

Was ich sehen möchte, ist die billigste Möglichkeit, meine Lichter mit meinem Raspberry Pi zu steuern.

Was ich mir vorstelle, um es zu kontrollieren

Ich baue auf meinem Smartphone eine Schnittstelle auf, über die ich Befehle an meinen Raspberry Pi senden kann. Der Raspberry Pi schickte dann ein Paket (oder etwas anderes) an etwas, das ich in meine Steckdose stecken konnte (damit ich es nicht sehe). Beachten Sie, dass dieses Ding über WLAN verbunden sein sollte (wie kann es sonst die Nachricht von meinem Raspberry Pi empfangen?).

Was ist das für ein Ding und was ist der billigste Weg, der möglich ist, da ich vorhabe, ein Dutzend oder so Lichter anzuschließen?

Rick Hoving
quelle
Es gibt eine WiFi-gesteuerte Steckdose, die jemand für ungefähr 20 US-Dollar in Teilen (ohne Himbeer-Pi) hergestellt hat. ProvoTronics.com
Ty Jones

Antworten:

22

Ich benutze diese Gegenstände:

  • Empfänger EIN-AUS , um meine Lichter zu steuern (normalerweise wird ein Gerät in die Steckdose oder anstelle der Steckdose gesteckt). Sie arbeiten im 433-MHz-Band (ISM).

Im Auslieferungszustand haben Sie eine Fernbedienung, die ein Signal an das Empfangsgerät sendet und dieses ein- oder ausschaltet.

In meinem Fall habe ich diese Situation erstellt:

  • Erstellt eine HTML- Seite auf meinem Raspberry Pi ( /switch.html)
  • Ich rufe diese Seite auf meinem Smartphone an
  • Auf der Seite befinden sich vier Tasten (ich steuere vier Geräte / Lichter)
  • Wenn ich auf eine Schaltfläche /switch.phpklicke, wird ein Anruf an asynchron ausgelöst (die .php-Datei befindet sich auf dem Raspberry Pi).
  • Das switch.phpruft ein switch.pyProgramm auf, das den 433-MHz-Sender steuert (siehe unten)
  • Der 433-MHz-Sender macht das Gleiche wie die Out-of-the-Box-Fernbedienung.

Dies ist der Absender, dh der Ersatz für die Standardfernbedienung: 433 MHz Wireless Transmitter Module Superregeneration für Arduino

Ich habe auch ein Szenario für die Verwendung außerhalb des Hauses erstellt.

Ich wollte meinen Raspberry Pi nicht über meinen Homerouter direkt mit dem Internet verbinden, also habe ich mir eine andere Webseite (auf meiner eigenen Domain) erstellt, die den Raspberry Pi nicht direkt steuert, sondern eine E-Mail an eine (nur bekannt unter) sendet Ich) E- Mail- Adresse ( Google Mail ).

Der Raspberry Pi überprüft das E-Mail-Konto alle 10 Minuten, um festzustellen, ob E-Mails vorhanden sind. In dieser E-Mail sage ich zum Beispiel A ein oder B aus.

Wenn wir also spät nach Hause kommen und das Licht schon aus ist, navigieren wir auf meinem Handy zur Website (es soll eine Android-App werden), klicken auf die Schaltfläche, die Seite wird gepostet und auf dem Server wird eine E-Mail gesendet, und In den nächsten 0-10 Minuten überprüft der Raspberry Pi die E-Mails, sieht vier neue E-Mails (A an, B an, C an und D an) und schaltet die Lichter ein.

Wie man anfängt

Also, um loszulegen, das sind die Dinge, die ich getan habe, um alles zum Laufen zu bringen. In meinem Fall habe ich die Steuerung des 433-MHz-Senders in Python programmiert (was eine einfache Sprache ist, wenn Sie bereits programmieren können).

Zuerst installieren Sie die rpi.gpioBibliothek.

Diese Bibliothek wird verwendet, um die kleinen Pins auf Ihrem Raspberry Pi von Ihrem Python-Skript aus zu steuern. Siehe Installieren der RPi.GPIO-Python-Bibliothek .

Dann können Sie optional den Artikel Tutorial lesen : Wie Sie Ihren Raspberry Pi wie einen Arduino verwenden , es geht darum, was Sie mit der rpi.gpioBibliothek tun können , zum Beispiel blinkende LEDs .

Für die Elro-Lichtschaltung ist dies jedoch nicht zwingend erforderlich.

Dann erhalten Sie den fantastischen Code für den Elro, der von HeikoHeiko unter http://pastebin.com/aRipYrZ6 befohlen wird . Sie fügen diesen Code in eine Datei mit dem Namen ' switchelro.py' ein.

Anschließend ändern Sie die Zeichenfolge in Zeile 94 in Ihre eigenen Jumpereinstellungen (wie Sie sie in Ihrer Fernbedienung und dem Steckdosengerät festgelegt haben). Überprüfen Sie, ob das kombinierte Steckdosengerät funktioniert, bevor Sie es mit dem Raspberry Pi ausprobieren. Wenn es nicht funktioniert mit den Standardkomponenten wird es wahrscheinlich auch mit dem Raspberry Pi scheitern).

Anschließend ändern Sie die Nummer der PIN, an die Ihr Absender in Zeile 97 angehängt ist.

Die PIN-Nummer kann von RPi Low-Level-Peripheriegeräten und in der Datei: RPi P1 header.png abgerufen werden .

Sie müssen die Anzahl 1..26 (das schwarze Bild) verwenden, nicht GPIO34, GPIO24 usw. (grünes Bild).

Dann geben Sie dies an der Eingabeaufforderung ein:

sudo python switchelro.py 2 1

was bedeutet, dass "B einschalten" (nach diesem Schema: A = 1, B = 2, C = 4, D = 8, E = 16für die erste Zahl und 1 = ein, 0 = aus für die zweite).

Ich änderte die repeat = 10auf line 30bis repeat = 20in den Anfang (ich erinnere mich nicht , warum) und das funktioniert. Ich habe es nie mit der Einstellung '10' wiederholt.

Michel
quelle
1
ach ja, und der preis .. hier in den niederlanden kostet ein satz von 3 steckdosenempfängern (die man in die steckdose klickt und das licht in den empfänger geht) mit fernbedienung 15 euro. Der 433-Mhz-Sender kostet ungefähr 5 US-Dollar
Michel
Das klingt genau das, wonach ich suche! Könnten Sie mir bitte die Projektdateien schicken? (Die switch.html, switch.php und die switch.py) Meine E-Mail ist in einer der obigen Antworten. Wo kann ich den On-Off2-Empfänger in den Niederlanden kaufen? Die von Ihnen angegebene Website enthält keine Preise.
Rick Hoving
Ausgezeichnete Nachbearbeitung Können Sie hinzufügen, wo Sie die Quelle für die Befehle gefunden haben, die Sie über die serielle Schnittstelle senden? Benutzt du eine Bibliothek? Wie zielen Sie auf die Geräte? +1
Piotr Kula
1
@Nitin In meinem System können Sie den Dip-Schalter am Empfänger (die 5 Ein / Aus-Schalter) und 5 Buchstaben (A .. E) einstellen. Also mit dem Code default_key = [1,0,0,0,1]aus dem pastebin.com/aRipYrZ6 Code steuern Sie den DIP - Schalter und mit der pinEigenschaft im def __init__(self, device, key=[1,1,1,1,1], pin=4):Code steuern Sie die A .. E (a = 1 .. e = 16)
Michel
1
@ Nitin Weiß nicht, wie man es mit C # steuert. Freuen Sie sich auch darauf, denn auf dem neuesten PI wird Win10 und hoffentlich auch C # ausgeführt. Das heißt, während ich ein C # -Programmierer bin, ist Python ein leicht zu erlernendes Programm
Michel
6

Das Ding heißt X10 , es ist ein Industriestandard für die meisten Hausautomationsaufgaben, einschließlich der Steuerung von Lichtern. Das Steuersignal wird über dieselbe Stromleitung gesendet, an die Ihre Geräte angeschlossen sind.

Um alles vom Computer aus steuern zu können, lesen Sie möglicherweise die Informationen zu X10-Computer-Schnittstellen auf der OpenRemote-Website. Das Modell, nach dem Sie wahrscheinlich suchen, ist CM15A mit USB-Schnittstelle, das Linux unterstützt.

Es könnte auch eine gute Idee sein, bei ebay nach X10-fähigen Wandsteckdosen zu suchen und Lampenmodule einzuschrauben. Diese können für 10 bis 20 US-Dollar recht günstig gekauft werden.

lenik
quelle
6

Was Sie suchen, ist ein Halbleiterrelais oder ein mechanisches Relais . Die Idee ist, dass eine kleine Strommenge bei niedriger Spannung (z. B. von Ihrem RPi) verwendet werden kann, um den Fluss einer größeren Strommenge bei höherer Spannung (z. B. einer Lampe) auszulösen.

Ich würde SainSmart 8-Kanal-DC-5-V-Relaismodul für 12 USD für Arduino Raspberry Pi empfehlen , da es bereits zu einer Platine mit einsatzbereiten Schraubklemmen verarbeitet wurde. Es wurden FETs eingebaut, um den zusätzlichen Strom zu liefern, der zum Auslösen der mechanischen Relais erforderlich ist. Es gibt verschiedene Platinen der gleichen Firma in einer Vielzahl von Layouts / Anzahl der Relais. Der von mir gesendete Kanal ist 8-kanalig, reicht also möglicherweise nicht für Ihre Anforderungen aus, obwohl 16-kanalige Versionen verfügbar sind . Sie sind in der Regel günstiger als der Kauf mehrerer Relais separat und erleichtern den Anschluss.

Es sind 4 Verbindungen erforderlich:

  • Eine gemeinsame Basis (die allen Relais gemeinsam ist), die eine Verbindung zum RPi herstellt
  • Getrennte Eingänge, die von einzelnen RPi-GPIO-Leitungen gespeist werden (um Relais auszulösen)
  • Ein Hochspannungseingang
  • Ein Hochspannungsausgang

Die Hochspannungseingänge / -ausgänge sind die Verbindungen, die von den Relais entsprechend ihren Eingangsleitungen hergestellt oder unterbrochen werden.

Ich habe bereits ein AWESOME C-Programm zum Fernschalten von GPIO-Pins über SSH. Wenn Sie möchten, kann ich Ihnen den Quellcode geben oder sogar erklären, wie es funktioniert.

Alexander
quelle
Wie kann ich zu einem AWESOME-Programm nein sagen? Obwohl C nicht zu meinem Sprachrepertoire gehört, kann ich mir den Code zumindest im Laufe der Zeit ansehen.
Rick Hoving
Können Sie es [email protected] senden? Danke im Voraus!
Rick Hoving
Wenn Ihre Frage beantwortet wurde, klicken Sie bitte auf das Häkchen unter den Abstimmungspfeilen.
Alexander
@XAleXOwnZX kann ich diesen fantastischen Code auch sehen? Vielleicht sollten Sie eine Frage "Hat jemand ein AWESOME C-Programm zum Fernschalten von GPIO-Pins über SSH" öffnen und beantworten.
Puk
Ich brauche deine E-Mail-Adresse, sende sie und poste die Frage + Antwort morgen
Alexander
2

Mein System ist günstig: EUR 43.- (Empfänger + Sender) siehe unten.

Für die Heimautomation schließe ich einfach einen 3,3 V-kompatiblen 868,35 MHz FS20-Sender an das RPI an:

http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html

Dieser Transmitter ist direkt (nur über 4 Drähte) mit den GPIO-Ports von RPI (3,3 V, GND, TXD, RXD) verbunden und wird einfach über die serielle Leitungsschnittstelle gesteuert.

Sie können jetzt die große Auswahl an FS20-Geräten wie Schalter, Kippschalter, Dimmer, Timer und Radios steuern. Mehrkanalempfänger usw. durch Übertragung einiger Bytes über die serielle UART-Konsolenschnittstelle von RPI.

FS20 Systemübersicht:

http://www.elv.de/fs20-funkschaltsystem.html

(leider ist die website nur in deutsch verfügbar)

Ich persönlich bevorzuge einfaches CLI zur Steuerung meiner Heimgeräte. Wenn Sie eine grafische Benutzeroberfläche bevorzugen, können Sie hier nachsehen:

http://fhem.de/fhem.html

zum glück auf englisch :-)

Obwohl das FS20-System sehr flexibel ist, ist es sehr billig. Beispielkosten für einen einfachen Ein- / Ausschalter:

Schalter selbst: http://www.elv.de/elv-funk-schaltsteckdose-fs20-st.html EUR 22,95

UART-Sender: http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html EUR 19,95

Ich empfehle, das RPI selbst über eine drahtlose Tastatur zu steuern. Dafür können Sie optional dieses geniale kleine Ding kaufen:

RT-MWK03 [Wireless 2,4 GHz] ( http://www.riitek.com/de/product-detail-428.html )

Sparkie
quelle
0

Das ist zwar nicht gerade billig, aber meine Lösung:

http://www.everyhue.com/?page_id=38#/discussion/707/raspberry-touchpad-some-success

Grundsätzlich verwenden Sie den Philips Hue (wifi-steuerbare, programmierbare mehrfarbige LED-Leuchten) zusammen mit einem RPi und einem Touchpad. Die USB-Touchpad-Oberfläche wirkt sich auf die Farb- und Helligkeitsabmessungen aus, während die Maustasten das Licht ein- und ausschalten. Die Kosten betragen RPi + Wifi-Dongle (11 US-Dollar) + billiges USB-Touchpad (15 US-Dollar) + Philips Hue-Set (200 US-Dollar für Bridge und 3 Lichter, dann 60 US-Dollar pro Licht).

Ilya Haykinson
quelle
0

Ich habe einen anderen Ansatz: Ich verwende den CUL-USB-Dongle von Busware (unterstützt FS20 + HMS + FHT + andere Protokolle und Geräte) und implementiere meine eigene Java-API, um die Geräte zu abstrahieren und eine einfache Automatisierung über eine Java-Anwendung zu ermöglichen.

Falls sich jemand für mein kleines Projekt interessiert: http://www.paulo-lima.org/hans

Paulo Lima
quelle