Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Richten Sie Ihren Raspberry Pi ein
- Schritt 2: Anschließen Ihrer Hardware
- Schritt 3: Hinzufügen des Codes
- Schritt 4: Probieren Sie es aus
- Schritt 5: Debugging und die RxTx.py-Datei
- Schritt 6: Viel Spaß
Video: So steuern Sie Steckdosen mit einem Raspberry Pi - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
In diesem Instructable zeige ich Ihnen, wie Sie eine Webschnittstelle erstellen, um Steckdosen in Ihrem Haus mit einem Raspberry Pi zu steuern. Ich habe mich entschieden, dieses Projekt zu schreiben, als ich den Sensoren-Wettbewerb sah, und da dieses Projekt die Verwendung eines Sensors zum Lesen von Codes von der Fernbedienung beinhaltet, die mit den von Ihnen gekauften Steckdosen geliefert wird, dachte ich, dass dieses Projekt die perfekte Passform wäre.
Ich werde daran arbeiten, dies so hoch wie möglich zu halten und Code bereitzustellen, damit dies alles funktioniert. Für alle von euch Code-Affen da draußen, fühlt euch frei, im Code herumzustöbern und mich in den Kommentaren unter die Lupe zu nehmen! Ich bin immer auf der Suche nach Verbesserungen. Es ist einiges los, also wenn Sie Fragen zu einem Schritt haben, hinterlassen Sie bitte einen Kommentar, damit ich das Instructable mit den erforderlichen Details aktualisieren kann.
Dieses Projekt verwendet hochfrequenzgesteuerte Steckdosen bei 433 MHz, die mit einem HF-Sender gekoppelt sind, der mit Ihrem Himbeer-Pi verbunden ist. Die Steckdosen werden mit Fernbedienungen geliefert, die Steckdosen ein- und ausschalten können, aber das macht keinen Spaß! Wir werden stattdessen einen Webserver verwenden, der auf dem Himbeer-Pi ausgeführt wird und es jedem mit dem Netzwerk verbundenen ermöglicht, bestimmte Steckdosen ein- oder auszuschalten. Ein Web-Front-End für dieses Projekt ist ideal, da jedes mit dem Internet verbundene Gerät in Ihrem Netzwerk als Fernbedienung verwendet werden kann.
Dies ist ein Projekt, von dem ich seit Jahren geträumt habe, und obwohl es noch Raum für Ergänzungen gibt, ist das wie folgt beschriebene Projekt ein funktionsfähiges System.
Lieferungen
- Ein Raspberry Pi (ich habe ein RPi 3 Model B+ verwendet)
- Ein 433 MHz Sender und Empfänger (ich habe diesen verwendet)
- 433 MHz Steckdosen (ich habe das verwendet)
- Jumper von Frauen zu Frauen (ich habe diesen Haufen gekauft)
- Ein Computer oder Handheld-Gerät, das auf das Internet zugreifen kann
Schritt 1: Richten Sie Ihren Raspberry Pi ein
Beginnen Sie mit der Installation der neuesten Raspbian-Version auf Ihrem neuen Raspberry Pi. Wenn Sie vorhaben, ein vorhandenes Pi zu verwenden (was Sie vollständig tun können), müssen Sie nur sicherstellen, dass Sie Python 3 auf Ihrem Pi haben, da der gesamte von mir bereitgestellte Quellcode darin geschrieben ist, Typ
python3
in die Befehlszeile. Wenn Sie Python 3 haben, sollten Sie das Python-Terminal geöffnet sehen. Verlassen Sie das Terminal durch Schließen oder Tippen
Ausfahrt()
Sobald Sie dies bestätigt haben, müssen Sie Flask auf Ihrem Pi installieren. Flask ermöglicht es uns, unseren Webserver zu erstellen. Geben Sie in der Pi-Befehlszeile ein
sudo pip3 installiere flasche
Falls Sie pip nicht auf Ihrem Pi installiert haben, müssen Sie eingeben
sudo apt-get install python3-pip
Am liebsten entwickle ich auf meinem Raspberry Pi bequem von meinem Desktop-Computer aus. Wenn auch Sie diese Option bevorzugen, müssen Sie eine Art SSH-Umgebung auf dem Pi installieren. PuTTY wird funktionieren, aber ich bevorzuge eine GUI (grafische Benutzeroberfläche), die es so aussehen lässt, als ob Sie direkt auf dem Pi wären. Für die GUI-Option sollten Sie VNC Viewer auf dem Computer installieren, auf dem Sie arbeiten möchten. Es gibt auch Einstellungen, die Sie auf Ihrem Pi anpassen müssen. Eine Anleitung zum Ändern der Einstellungen finden Sie hier.
Schritt 2: Anschließen Ihrer Hardware
An dieser Stelle ist es an der Zeit, alle physischen Verbindungen herzustellen, die Sie zur Vorbereitung des Einrichtens des Quellcodes für dieses Projekt benötigen. Sie verbinden die Pins des Senders und des Empfängers mit den GPIO-Pins Ihres Pi. Sie sollten sich religiös auf das Pinbelegungsdiagramm der GPIO-Pins beziehen. Öffne dazu das Terminal auf deinem Pi und tippe
Pinbelegung
Im Folgenden sind die Verbindungen, die ich hergestellt habe. Möglicherweise haben Sie eine andere Konfiguration, wenn Sie eine andere Sender-/Empfänger-Hardware gekauft haben, als ich in der Einführung angegeben habe. Wenn Sie sich entscheiden, andere Pin-Nummern als die unten angegebenen zu wählen, haben Sie keine Angst! Wenn Sie den Quellcode herunterladen, ändern Sie einfach die PIN-Nummern nach Bedarf in der Datei RxTx.py.
Empfänger (großer Chip):
- GND - Beliebiger Erdungsstift
- DATEN - Pin 11
- DER - Nicht verbunden
- +5V - Jeder vorgesehene +5V-Pin
- ------
- +5V - Jeder vorgesehene +5V-Pin
- GND - Beliebiger Erdungsstift
- GND - Nicht verbunden
- ANT - Nicht verbunden
Hinweis: Sie können bei Bedarf eine Antenne anschließen, aber ich habe festgestellt, dass dies nicht erforderlich ist. Dieser kleine Chip war überraschend empfindlich und erkennt Signale bis zu einer Entfernung von mindestens 50 Fuß von seinem Sitzplatz und durch mindestens zwei Wände.
Sender:
- P - Der 3.3V-Pin
- DA - Stift 7
- G - Jeder vorgesehene Erdungsstift
- AN - nicht verbunden
Hinweis: Auch hier können Sie bei Bedarf eine Antenne an den Sender anschließen, aber ich habe festgestellt, dass dies nicht erforderlich ist. Die Reichweite ist mehr als ausreichend (50+ft).
Schritt 3: Hinzufügen des Codes
Dies ist der Teil, mit dem ich die meiste Zeit verbracht habe, als ich dieses Projekt entwickelt habe. Ich versuche, so viel wie möglich zu kommentieren, aber ich habe wahrscheinlich Lücken hinterlassen, die möglicherweise einer Erklärung bedürfen, wenn einer von Ihnen Zeit damit verbringt, es zu verstehen. Wenn Ihnen das passiert, hinterlassen Sie bitte einen Kommentar!
Die hier betroffenen Sprachen sind:
- Python
- CSS
- Javascript
- HTML
- JQuery/Ajax
Das Python wird im Kolbenserver und in der
RxTx.py
Datei, die die Übertragung und den Empfang des Codes übernimmt. CSS wird verwendet, um den Stil der Webseite zu generieren. Wer will schon eine langweilige Website!? Javascript wird bei jeder Ereignisbehandlung verwendet (Knopf drücken usw.). HTML ist der Kernbaustein der Webseite. Schließlich wird JQuery/Ajax verwendet, um zwischen der Webseite und dem Python-Backend zu kommunizieren.
Wenn all diese Sprachen einschüchternd klingen, machen Sie sich keine Sorgen! Ich kannte nur Python bei diesem Projekt, das zufällig die Sprache war, die den geringsten Codierungsaufwand erforderte, stell dir vor … Es genügt zu sagen, nehmen Sie sich Zeit, um den Code durchzukämmen, wenn Sie sich dafür entscheiden. Wenn Sie nicht wollen, müssen Sie nicht!
Das Folgende ist die Verzeichnisstruktur, die ich für diese Webseite gewählt habe. Der an diesen Schritt angehängte ZIP-Ordner enthält den gesamten Quellcode in der folgenden Struktur.
Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> Webseite-- static----- favicon.ico----- style.css-- Templates----- index.html----- schedule.html-- app.py-- data.file
Sie können den Ordner Outlet Switch an einer beliebigen Stelle auf Ihrem Pi ablegen. Wenn Sie bereit sind, Ihren Webserver auszuführen, öffnen Sie das Terminal auf Ihrem Pi und
CD
(Verzeichnis wechseln) in das Webseitenverzeichnis. Geben Sie dann ein
python3 app.py
in das Terminal. Wenn keine Fehler aufgetreten sind, sollten Sie loslegen!
PS Bitte haben Sie Geduld, wenn Sie auf Fehler stoßen. Ich habe versucht, sie alle vor dem Hochladen zu zerquetschen.
Schritt 4: Probieren Sie es aus
Jetzt, wo Sie den Code ausführen, können Sie sich ein Gefühl für die Weboberfläche verschaffen. Die Steuerung des Systems ist sehr einfach:
- Über die Weboberfläche können Sie beliebig viele Steckdosen hinzufügen.
- Das Löschen ist so einfach wie das Klicken auf Bearbeiten, Auswählen der zu löschenden Verkaufsstellen und Klicken auf Löschen.
Das obige YouTube-Video zeigt, wie Sie Ihrer Liste tatsächlich eine neue Verkaufsstelle hinzufügen. Um zusammenzufassen, was es zeigt:
- Geben Sie zuerst den Titel des Outlets in das Feld Titel ein
- Klicken oder berühren Sie außerhalb des Felds Titel, damit das Programm überprüfen kann, ob der Titel noch nicht vorhanden ist. Sie können keine Titel mit demselben Namen haben
- Nach der Validierung werden die Schaltflächen ON Code und OFF Code aktiviert.
- Halten Sie die ON-Taste auf Ihrer mitgelieferten Fernbedienung gedrückt und klicken Sie schnell auf die ON-Code-Taste auf der Benutzeroberfläche. Halten Sie die Taste auf der Fernbedienung gedrückt, bis Ihr Binärcode das angrenzende Feld füllt.
- Wiederholen Sie den vorherigen Schritt für den OFF-Code.
- Klicken Sie auf OK, und jetzt können Sie diese Steckdose wechseln!
Wie in der Einleitung erwähnt, ist das Projekt für meine eigenen Zwecke nicht zu 100% vollständig. Die größte Komponente, die ich noch vervollständigen und implementieren muss, ist die Planungsfunktion. Ich plane, dem Benutzer zu ermöglichen, einen Zeitplan zu erstellen, der es ermöglicht, Steckdosen zu bestimmten Zeiten automatisch ein- und auszuschalten.
Schritt 5: Debugging und die RxTx.py-Datei
Die einzige bekannte Einschränkung des Systems besteht darin, dass die Möglichkeit einer Inkompatibilität zwischen den Verkaufsstellen verschiedener Anbieter besteht. Die Ein- und Aus-Code-Nachrichten sind für mein System 25 Bit, und wenn ein System eine andere Nachrichtenlänge hat, ist es nicht sofort mit diesem Projekt kompatibel. Wenn Sie die Anweisungen genau befolgt haben und immer noch Probleme damit haben, das Problem zu beheben, ist Folgendes der beste Weg, um das Problem zu beheben.
-
Stellen Sie sicher, dass Matplotlib auf Ihrem Pi installiert ist. Sie können dies tun, indem Sie Folgendes in das Terminal des Pi eingeben:
-
python3
-
Matplotlib importieren
- Wenn Sie einen Fehler erhalten, müssen Sie matplotlib installieren.
-
Beenden Sie die Python-Shell mit
Ausfahrt()
-
-
Um matplotlib zu installieren, geben Sie ein
sudo pip3 installiere matplotlib
- ins Terminal
- Laden Sie die angehängte Datei test.py herunter und platzieren Sie sie neben der Datei RxTx.py auf Ihrem Pi
- Öffnen Sie das Python-Terminal und ändern Sie das Verzeichnis in den Comm-Ordner.
-
Typ
python3 test.py
- Wenn "**Aufnahme gestartet**" angezeigt wird, halten Sie die EIN- oder AUS-Taste auf Ihrer Fernbedienung gedrückt, bis die Aufnahme endet.
- Das Programm lädt eine Matplotlib-Figur, die der obigen ähnlich sieht. Zoomen Sie hinein, bis Sie das sich wiederholende Signal sehen, wie auf den Fotos oben gezeigt.
- Zählen Sie die gesamte logische 1 und logische 0 für jede Nachricht, wobei eine Nachricht eine Iteration des oben gezeigten sich wiederholenden Signals ist. Wenn die Gesamtzahl 25 beträgt, ist die Datei RxTx.py wahrscheinlich nicht schuld. Wenn Sie auf etwas anderes als 25 stoßen, stellen Sie sicher, dass Sie unten einen Kommentar abgeben, und ich werde die RxTx.py-Datei umrüsten, damit sie offener ist (oder probieren Sie es aus).
Was ist, wenn ich kein sich wiederholendes Signal sehe?
Wenn Sie kein sich wiederholendes Signal sehen, ist eines von zwei Dingen falsch. Überprüfen Sie zuerst, ob alle Ihre Überbrückungskabelverbindungen richtig hergestellt sind. Wenn alles gut aussieht, haben Sie möglicherweise einen schlechten Empfänger. Hast du das von mir vorgeschlagene gekauft? Als ich meinen ersten Empfängerchip kaufte, war er sehr laut. So laut, dass ich kein klares Signal bekommen konnte. Ich habe dann diesen Chip zurückgegeben und den von mir verlinkten abgeholt, und er hätte nicht besser funktionieren können.
Schritt 6: Viel Spaß
Sie wissen, dass Sie die Möglichkeit haben, Steckdosen von Ihrem Telefon, Tablet, Computer oder anderen internetfähigen Gerät aus ein- und auszuschalten! Lass mich in den Kommentaren wissen, was du denkst!
Empfohlen:
So steuern Sie ein Gerät mit Raspberry Pi und einem Relais – DIE GRUNDLAGEN: 6 Schritte
So steuern Sie ein Gerät mit Raspberry Pi und einem Relais - DIE GRUNDLAGEN: Dies ist ein einfaches und unkompliziertes Tutorial zur Steuerung eines Geräts mit Raspberry Pi und einem Relais, das für die Erstellung von IoT-Projekten hilfreich ist folgen Sie, auch wenn Sie keine Ahnung von Raspberry haben
Steuern Sie einen Lüfter auf einem Raspberry Pi 3: 9 Schritte
Steuern Sie einen Lüfter auf einem Raspberry Pi 3: Fügen Sie einen Lüfter zu einem Raspberry Pi 3 hinzu, mit Steuerung zum Ein- und Ausschalten nach Bedarf. Eine einfache Möglichkeit, einen Lüfter hinzuzufügen, besteht darin, die Lüfterkabel einfach an 3,3 V oder 5 V anzuschließen stecken und auf Masse legen. Bei diesem Ansatz läuft der Lüfter die ganze Zeit. Ich denke, es ist viel mehr
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Hinzugefügte Informationen: 4 Schritte
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen … Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Zusätzliche Informationen: Wenn Sie jemals auf eine Website gehen und ein Lied abspielen, das Sie mögen und es wollen, dann ist hier das anweisbare für Sie, nicht meine Schuld, wenn Sie etwas durcheinander bringen (nur so wird es passieren, wenn Sie ohne Grund anfangen, Dinge zu löschen) ) Ich konnte Musik für
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für 0 $.: 9 Schritte
So reparieren Sie einen Wechselrichter mit LCD-Hintergrundbeleuchtung. Mit einem Fujiplus FP-988D. für $ 0.: In diesem anweisbaren werde ich Sie durch die Reparatur eines toten LCD-Hintergrundlicht-Wechselrichters mit den Teilen führen, die Sie haben. Sie können feststellen, ob Sie ein totes Gegenlicht haben, indem Sie zuerst andere Möglichkeiten ausschließen. Monitor auf mehreren Computern überprüfen. Stellen Sie sicher, dass
So kommunizieren Sie mit einem Alien-Artefakt oder . . .: 4 Schritte (mit Bildern)
Wie man mit einem außerirdischen Artefakt kommuniziert oder…: *** Enge Begegnungen der seltsam-minzigen Art. *** Dieses Instructable zeigt Ihnen, wie Sie eine Altoids-Version des Mutterschiffs "Close Encounters" bauen und damit interagieren. Dies kann ein wichtiges Training für den Tag sein, an dem das Bright White Be