Inhaltsverzeichnis:
- Schritt 1: Dinge, die Sie brauchen
- Schritt 2: Raspberry Pi für 433 MHz vorbereiten
- Schritt 3: Smart Home Server einrichten
- Schritt 4: Clients einrichten
- Schritt 5: Fazit
Video: Smart Home von Raspberry Pi - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Es gibt bereits mehrere Produkte, die Ihre Wohnung intelligenter machen, aber die meisten davon sind proprietäre Lösungen. Aber wozu braucht man eine Internetverbindung, um mit dem Smartphone ein Licht zu schalten? Das war für mich ein Grund, eine eigene Smart-Home-Lösung zu bauen.
Ich habe eine Serveranwendung programmiert, die auf einem Raspberry Pi läuft. Dies ist ein Java-basiertes Open-Source-Projekt, mit dem Sie Ihre Wohnung konfigurieren und mehrere Clients und 'steuerbare Einheiten' anschließen können. Ich zeige eine Lösung, die mit RC-Netzteilschaltern umgeht, Musik und Videos auf dem Raspberry Pi abspielt, den Status auf Smart Mirror anzeigt und über eine Android-App und zwei Pebble-Apps gesteuert werden kann. Die Quelle wird auf github gehostet
Schritt 1: Dinge, die Sie brauchen
Um das Smart Home einzurichten, benötigen Sie folgende 'Zutaten'
- Raspberry Pi mindestens Modell 2 B
- 433 MHz Sender, so ähnlich
- 3 Überbrückungskabel, die den Raspberry Pi und den Sender verbinden
- Einige Funksteckdosen bei 433 MHz
- Android-Smartphone zum Ausführen der Client-App
Darüber hinaus können Sie das Smart Home mit weiteren optionalen Clients und Einheiten wie diesem erweitern
- Kiesel-Smartwatch
- Smart Mirror, siehe dieses Projekt
- 433 MHz gesteuerter LED-Streifen, siehe diese
Schritt 2: Raspberry Pi für 433 MHz vorbereiten
In den folgenden Schritten benötigen Sie Zugriff auf die Kommandozeile auf dem Raspberry Pi. Um den Zugriff zu erhalten, können Sie diese instructable https://www.instructables.com/id/Remote-SSH-access lesen…
Verbinden Sie den 433 MHz Sender mit dem Raspberry Pi wie im Bild oben gezeigt
- GND (Sender) 6 GND (Raspi)
- VCC (Sender) 2 +5V (Raspi)
- DATEN (Sender) 11 GPIO 17 (raspi)
Bitte schließen Sie auch eine 17cm Antenne an den ANT (Sender) Pin an. Das erhöht das Signal deutlich.
Da wir einige Bibliotheken aus anderen Git-Repositories benötigen, müssen wir git. installieren
sudo apt-get install git-core -y
Um den Raspberry Pi für 433 MHz Kommunikation einzurichten, benötigen wir die Verdrahtungs-Pi-Bibliothek zur besseren Handhabung der GPIOs.
git-Klon git://git.drogon.net/wiringPi
CD-VerkabelungPi./build
Dann brauchen wir eine Bibliothek, die typische rc-Netzteilprotokolle implementiert.
git-Klon git://github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi cp senden /usr/bin/
Mit der ausführbaren Datei „send“können Sie Codes senden, um die meisten verfügbaren Netzteile umzuschalten.
In meinem Smart Home-Setup habe ich auch einen RC-LED-Streifen, der von dieser Anleitung beschrieben wird: https://www.instructables.com/id/RC-kontrollierte-LED… Um Farben für diesen LED-Streifen einzustellen, benötigen Sie eine andere ausführbare Sendedatei, die es Ihnen ermöglicht um einen Integer-Wert zu senden (der die Farbe codiert).
Kompilieren Sie daher sendInt.cpp im rcswitch-pi-Repository und verschieben Sie es nach /usr/bin/sendInt.
sudo g++ sendInt.cpp -o /usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch-pi -lwiringPi
Jetzt sollten Sie rc-Befehle mit den beiden ausführbaren Dateien /usr/bin/send und /usr/bin/sendInt senden können
Schritt 3: Smart Home Server einrichten
Zunächst müssen Sie mehrere Pakete installieren. Die Smart Home-Anwendung ist Java-basiert und läuft problemlos mit openjdk-11. Bei anderen Java-Laufzeitumgebungen bin ich mir nicht sicher. Der mplayer ist ein minimalistischer Befehlszeilen-Musikplayer. Der omxplayer verwendet die Raspberry Pi-Grafik für die Videocodierung, daher sollte diese für Videos verwendet werden. Das Programm ant wird benötigt, um die Java-Anwendung zu erstellen.
sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y
Richten Sie Verzeichnisse für die JAR-Datei und für Protokolle ein.
sudo mkdir /opt/neo
sudo chown pi:pi /opt/neo mkdir /home/pi/Logs
Konfigurieren Sie das Startskript, um die Anwendung beim Booten automatisch zu starten. Kopieren Sie daher das angehängte Smart-Home-Skript in das Verzeichnis /etc/init.d/ Ich habe auch ein Skript in /usr/bin/ erstellt, das Befehle an das angehängte Skript weiterleitet, also gebe ich einfach Smart-Home in die Konsole ein, um Befehle auszuführen.
sudo cp smart-home /etc/init.d/smart-home
sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#! /bin/bash' > /usr/bin/smart-home" sudo sh -c "echo '/etc/init. d/smart-home \$1' >> /usr/bin/smart-home" sudo chmod +x /usr/bin/smart-home sudo update-rc.d Smart-Home-Standards
Jetzt ist es an der Zeit, das Repository auszuchecken und die Anwendung zu erstellen. Wenn Sie es nicht selbst kompilieren möchten, können Sie einfach die angehängte smarthome.jar herunterladen und nach /opt/neo/ verschieben.
git clone [email protected]:dabastynator/SmartHome.git
ant -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/* /opt/neo/
Versuchen Sie, das Smart-Home zu starten und überprüfen Sie die Protokolldatei. Um Zugriff für die GPIOs zu erhalten, muss die Anwendung per sudo gestartet werden.
sudo Smart-Home-Start
Katze Logs/smarthome.log
Sie sollten die Fehlermeldung Konfigurationsdatei existiert nicht sehen, die uns zum nächsten Schritt führt. Das Repository enthält eine Readme, die die Konfigurationsdatei erklärt. Sie können dies auf github schön gerendert sehen:
Kopieren Sie diese XML nach /home/pi/controlcenter.xml, legen Sie dann den Speicherort für Ihren Medienserver fest und ändern Sie den Inhalt nach Bedarf. Nachdem Sie die Konfiguration abgeschlossen und das Smart-Home neu gestartet haben (sudo smart-home restart), sollten Sie folgenden Inhalt im smarthome.log sehen
24.05-08:26 REMOTE INFORMATION by de.neo.smarthome.cronjob. CronJob@15aeb7ab: Cronjob einplanen
24.05-08:26 REMOTE INFORMATION von [trigger.light]: Warten Sie 79391760 ms auf Ausführung 24.05-08:26 RMI INFORMATION by Add Web-Handler (5061/ledstrip) 24.05-08:26 RMI INFORMATION by Add Web-Handler (5061.) /action) 24.05-08:26 RMI-INFORMATION von Web-Handler hinzufügen (5061/mediaserver) 24.05-08:26 RMI-INFORMATION von Web-Handler hinzufügen (5061/switch) 24.05-08:26 RMI-INFORMATION von Web-Handler hinzufügen (5061/controlcenter) 24.05-08:26 RMI INFORMATION by Start webserver with 5 handler (localhost:5061) 24.05-08:26 REMOTE INFORMATION by Controlcenter: 1. Steuergerät hinzufügen: MyUnit (xyz) …
Der Webserver läuft jetzt:-)
Schritt 4: Clients einrichten
Android-Client für Smartphones
Das Git-Repository für die Smart-Home-Anwendung enthält auch den Quellcode für den Android-Client, sodass Sie ihn selbst kompilieren können. Aber ich habe die APK für diesen Schritt angehängt, das macht es einfacher. Wenn Sie die App zum ersten Mal starten, werden Sie nach einem Server gefragt, wie im ersten Bild oben. Geben Sie die URL des Servers und das Sicherheitstoken ein.
Das sollte es sein. Sie haben nun Zugriff auf den Server und steuern Ihre Wohnung, spielen Musik ab und schauen sich Videos aus der Ferne auf Ihrem Raspberry Pi an. Beachten Sie, dass Sie Ihrem Homescreen Widgets hinzufügen können, um Schalter und Musiksteuerung leichter zugänglich zu machen.
Smartwatch Pebble-Client
Die Quelle für die beiden Pebble-Clients wird auf github gehostet. Eine App zeigt die aktuell abgespielte Musikdatei: https://github.com/dabastynator/PebbleRemoteMusic… Damit können Sie auch anhalten/abspielen und lauter/leiser.
Die zweite App löst drei Aktionen aus: https://github.com/dabastynator/PebbleControl Die Trigger-Namen sind: mobile.come_home mobile.leaving und mobile.go_to_bed. Wenn Sie in Ihrer Konfigurations-Xml Event-Regeln für diesen Trigger definieren, lösen Sie diese durch Ihre Watch aus.
Es ist alles Open Source, aber Sie müssen es nicht selbst kompilieren, ich habe auch die Pebble-Apps angehängt. Laden Sie die PBWs mit Ihrem Smartphone herunter, Ihr Telefon sollte sie auf Ihrer Uhr installieren. Die Pebble-Apps benötigen Konfigurationen, um mit dem Server zu kommunizieren. Ich habe einen Screenshot angehängt, wie meine Einstellungen aussehen.
Smartwatch Garmin-Client
Es gibt auch einen Client für Garmin Smartwatches. Die App ist im garmin connect App-Store erhältlich und kann hier installiert werden:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Smart Mirror-Client
Ich habe bereits eine Anleitung erstellt, die erklärt, wie der Smart Mirror erstellt wird, siehe https://www.instructables.com/id/Smart-Mirror-by-R…. Der Quellcode wird auch auf github gehostet: https:// github.com/dabastynator/SmartMirror. Die Software des Smart Mirror liest die Konfiguration aus der Datei smart_config.js, die nicht Teil des Git-Repositorys ist. Der Inhalt der Konfigurationsdatei sollte wie folgt aussehen:
var mOpenWeatherKey = 'dein-open-weather-key';
var mSecurity = 'Ihr-Sicherheits-Token';
Sie müssen auch die ersten beiden Zeilen der Datei smart_mirror.js anpassen, um die IP-Adresse des Smart Home-Servers und den Standort anzugeben, um das richtige Wetter zu erhalten.
Mehr Kunden
Die Serveranwendung ist ein einfacher Webserver. Auf diese Weise können Sie Aktionen von jedem gewünschten Client aus durch einfache Webaufrufe auslösen. Im Demo-Video zeige ich die Android App Tasker in Kombination mit AutoVoice. Dadurch kann ich mit einfachen Sprachbefehlen Ereignisse auslösen. Zum Beispiel kann "ok google, Zeit zum Schlafen" mobile.go_to_bed auslösen. Sie können aber auch Web-Calls beispielsweise von IFTTT aus tätigen. Wie wäre es mit einem gelb blinkenden LED-Streifen für die E-Mail-Benachrichtigung?
Sie können den Server nach möglichen Web-Calls fragen, wie zum Beispiel folgende Links (ersetzen Sie IP, Port und Token durch Ihre Konfiguration)
localhost:5061/controlcenter/api?token=secu…
localhost:5061/action/api?token=security-to…
localhost:5061/mediaserver/api?token=securi…
localhost:5061/switch/api?token=security-to…
localhost:5061/ledstrip/api?token=security-…
Schritt 5: Fazit
Es sind noch einige Features zu implementieren: Da der Server nur eine einfache Web-API bereitstellt, führen Clients eine Menge Polling durch. Um das Polling zu reduzieren, möchte ich eine MQTT-Integration für eine bessere Benachrichtigung. Auch WLAN-Netzteile sollten zuverlässiger sein als RC-Netzteile, da RC nur eine Einwegkommunikation ist.
Es macht viel Spaß, für dieses Projekt zu entwickeln. Und es ist ziemlich cool, die Wohnung von mehreren Geräten aus zu steuern, auch wenn die Internetverbindung zusammenbricht.
Empfohlen:
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir
HOME AUTOMATION (STEUEREN SIE IHRE GERÄTE VON JEDER ECKE DER WELT).: 5 Schritte
HOME AUTOMATION (STEUERN SIE IHRE GERÄTE VON JEDER ECKE DER WELT).: In diesem anweisbaren habe ich geteilt, wie Sie ESP8266 verwenden können, um AC-Geräte wie Lichter, Lüfter usw. aus der ganzen Welt über das Internet über die Blynk-App zu steuern neu bei ESP8266 stellen Sie sicher, dass Sie sich dieses anweisbare ansehen: - Erste Schritte mit NodeM
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A
Machen Sie Ihre Anlage SMART! (von Arduino): 5 Schritte
Machen Sie Ihre Anlage SMART! (Von Arduino): Sie haben sich also schon immer gefragt, wie Sie Ihren Anlagen Technologie hinzufügen können? Mit diesem coolen Projekt können Sie sicherstellen, dass Ihre schönen Pflanzen immer in gutem Zustand sind. Nachdem Sie dieses Projekt durchgeführt haben, werden Sie: Erfahren Sie, wie Sie Analogausgangssensoren verwenden Erfahren Sie, wie
Aufrüsten von Smart RGB-LEDs: WS2812B vs. WS2812: 6 Schritte
Aufrüsten von Smart RGB-LEDs: WS2812B vs. WS2812: Die schiere Anzahl von Projekten, die wir in den letzten 3 Jahren mit intelligenten RGB-LEDs gesehen haben, seien es Streifen, Module oder kundenspezifische Leiterplatten, ist ziemlich erstaunlich. Dieser Ausbruch der RGB-LED-Nutzung ging Hand in Hand mit einem signifikanten