So erstellen Sie einen intelligenten Lichtsensor-Switch mit Raspberry Pi und IFTTT
Werbung
Dämmerungsschalter und Zeitschaltuhren sind beide praktische Möglichkeiten, um Ihre Beleuchtung zu automatisieren. Wäre es nicht großartig, wenn Sie beide kombinieren oder sie sogar mit dem Internet verbinden könnten, um ein wirklich intelligentes Beleuchtungssystem zu erhalten?
Ein Himbeer-Pi, ein Relais, ein Lichtsensor und eine Prise Code sind alles, was Sie brauchen, um dieses automatische Beleuchtungs-Nirvana auf einem Katzensprung zu erreichen.
Was du brauchen wirst
Komponenten für Ihren intelligenten Lichtsensor sind einfach zu beschaffen. Du brauchst:
- Jedes Modell Raspberry Pi mit Raspbian.
- Eine Relaisplatine, die bei Amazon leicht zu finden ist.
- Ein Adafruit TSL2561 Lichtsensor.
- Überbrückungsdrähte.
- Einige Lichter zum Automatisieren!
So funktioniert ein lichtempfindlicher Smart Switch
Verwenden Sie ein Relais wie in unserem Projekt zum automatischen Öffnen von Garagentoren. Automatisieren Ihres Garagentors mit IFTTT und Raspberry Pi Automatisieren Ihres Garagentors mit IFTTT und Raspberry Pi In diesem Tutorial zeigen wir Ihnen, wie Sie Ihr Garagentor automatisieren Garagentor mit nichts anderem als einem Raspberry Pi und IFTTT. Lesen Sie mehr, Sie können einen Raspberry Pi so programmieren, dass er einen Beleuchtungskreis zu festgelegten Zeiten ein- und ausschaltet. Durch Hinzufügen eines Helligkeitssensors zur Mischung kann der Pi das Umgebungslicht erkennen und die Lichter nur dann einschalten, wenn sie wirklich benötigt werden.
Da ein Pi ein winziger Computer ist, der mit einem Netzwerk verbunden werden kann, können Sie ihn so einrichten, dass er auch über das Internet gesteuert wird. Ihre Smart Lights verfügen über drei Eingänge, über die Sie bestimmen können, wann sie eingeschaltet werden:
- Ein programmierter Zeitplan.
- Das Umgebungslicht.
- Ein Override-Signal, das über das Netzwerk gesendet wird.
Schritt 1: Verbinden Sie den Raspberry Pi mit dem Relais
Wenn Sie mit dem GPIO noch nicht vertraut sind, lesen Sie zunächst alles, was Sie über die Raspberry Pi GPIO-Pins wissen müssen.
Überprüfen Sie zunächst, ob Ihre Relaiskarte einen Jumper hat, der die VCC- und JD-VCC-Pins miteinander verbindet. Wenn ja, entfernen Sie es.
Schließen Sie die Relaiskarte bei abgeschaltetem Zustand wie folgt an Ihren Pi an:
- Pi Pin 2 (5 V) an den JD-VCC auf der Relaisplatine.
- Pi Pin 6 (GND) zu GND auf der Relaiskarte.
- Pi Pin 15 (GPIO 22) an IN1 auf der Relaiskarte
- Pi Pin 17 (3, 3 V) an VCC auf der Relaisplatine.
Schritt 2: Schließen Sie den Helligkeitssensor an
Der TSL2561 ist ein Lichtsensor, der Infrarot-, Vollspektrum- und für Menschen sichtbares Licht erfassen kann. Es kann einen sehr präzisen digitalen Messwert an den Raspberry Pi senden. Der Sensor meldet die Lichtstärke auf einer Skala von 0, 1 (kein Licht) bis 40.000 (helle Sonne).
Die TSL2561-Karte kommuniziert mit dem Raspberry Pi über das i2c-Protokoll. I2C benötigt nur zwei Verbindungen, eine für eine Uhr, um die beiden Geräte synchron zu halten, und eine für die zu übertragenden Daten. Natürlich benötigt der Lux-Sensor auch etwas Strom, so dass insgesamt vier Verbindungen hergestellt werden müssen:
- Verbinden Sie Pi Pin 1 (3, 3 V) mit Vin (oder VCC) am Lux-Sensor
- Verbinden Sie Pi Pin 3 (SDA) mit SDA am Lux-Sensor
- Verbinden Sie Pi Pin 5 (SCL) mit SCL am Lux-Sensor
- Verbinden Sie Pi Pin 9 (GND) mit GND am Lux-Sensor
Schritt 3: Abhängigkeiten konfigurieren und installieren
Bevor Sie fortfahren, müssen Sie überprüfen, ob I2C auf Ihrem Raspberry Pi aktiviert ist (standardmäßig deaktiviert). Geben Sie Folgendes in das Terminal ein:
sudo raspi-config
Wählen Sie Schnittstellenoptionen> P5 I2C und dann Ja .
Drücken Sie die Eingabetaste und wählen Sie Fertig stellen, um den Konfigurationsbildschirm zu verlassen. Starten Sie Ihren Pi neu, damit die Änderung wirksam wird:
sudo reboot
Einige Abhängigkeiten sind erforderlich, damit der Pi mit der Sensorplatine kommunizieren kann. Geben Sie die folgenden Befehle ein:
sudo apt-get update sudo apt-get install -y python-smbus sudo apt-get install -y i2c-tools
Sie können überprüfen, ob alles funktioniert, indem Sie Folgendes eingeben:
sudo i2cdetect -y 1
Wenn Ihre Abhängigkeiten installiert sind und Ihr Lux-Sensor korrekt angeschlossen ist, wird eine Antwort wie die folgende angezeigt:
Hier meldet das Dienstprogramm, dass es ein I2C-Gerät (den Lux-Sensor) an der I2C-Adresse 39 gefunden hat.
Sie sind mit den Abhängigkeiten noch nicht ganz fertig. Sie werden auch ein paar Bibliotheken brauchen. Erstellen Sie zunächst einen Ordner, in dem Sie alle Informationen zu diesem Projekt speichern können:
mkdir ~/lighting cd ~/lighting
Als nächstes laden Sie Bottle herunter, ein leichtes Framework, das einen einfachen Webserver auf Ihrem Pi erstellt. Sie werden es zum Steuern Ihrer Lichter aus dem Web verwenden.
wget https://bottlepy.org/bottle.py
Die anderen Bibliotheken, die Sie benötigen, befinden sich auf Github. Wenn auf Ihrem Raspberry Pi Git noch nicht installiert ist, fügen Sie es jetzt hinzu:
sudo apt-get install git
Klonen Sie nun zwei Bibliotheken wie folgt:
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git git clone https://github.com/adafruit/Adafruit_Python_PureIO.git
Zuletzt erstellen Sie ein Testskript, indem Sie eine neue Datei erstellen:
nano test.py
Fügen Sie diesen Code ein (mit freundlicher Genehmigung von Adafruit):
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function, unicode_literals from tsl2561 import TSL2561 if __name__ == "__main__": tsl = TSL2561(debug=True) print(tsl.lux())
Drücken Sie zum Speichern die Tastenkombination Strg + X und befolgen Sie die Anweisungen auf dem Bildschirm, um den Vorgang zu beenden.
Wenn Sie fertig sind, führen Sie das Testskript aus:
python test.py
Wenn alles installiert ist und funktioniert, erhalten Sie eine Nummer zurück. Diese Zahl ist ein Lux-Messwert vom Sensor. Versuchen Sie, den Sensor zu blockieren oder zu bewegen, damit er mehr oder weniger Licht bekommt. Führen Sie dann das Testskript erneut aus und überprüfen Sie, wie sich die Nummer ändert.
Schritt 4: Erstellen Sie die Automatisierungsskripte
Der Raspberry Pi schaltet das Licht bei Dunkelheit ein, aber auch zu bestimmten Zeiten aus. Sie möchten beispielsweise, dass die Lichter bei Dunkelheit am Abend angehen und gegen Mitternacht ausgehen, um Strom zu sparen. Sie könnten früh morgens wieder einschalten und sich dann selbst ausschalten, wenn es hell wird.
Um einen Zeitplan mit mehreren Zeitzonen wie folgt zu verwalten, gibt es zwei verschiedene Skripte. Eine ( onzone.py ) wird jede Minute ausgeführt, wenn das Licht eingeschaltet sein soll, wenn es dunkel ist. Die andere ( offzone.py ) wird jede Minute ausgeführt, wenn die Lichter unabhängig von der Lichtstärke ausgeschaltet sein sollen.
Die Ausführung der Skripte unter Verwendung von Cron-Jobs ist geplant. Planen von Aufgaben unter Linux mit Cron und Crontab Planen von Aufgaben unter Linux mit Cron und Crontab Die Möglichkeit, Aufgaben zu automatisieren, ist eine dieser futuristischen Technologien, die es bereits gibt. Jeder Linux-Benutzer kann dank cron, einem benutzerfreundlichen Hintergrunddienst, von der Planung von System- und Benutzeraufgaben profitieren. Weiterlesen . Indem Sie festlegen, zu welchen Tages- und Nachtstunden die einzelnen Skripte ausgeführt werden, können Sie auf einfache Weise die Stunden einstellen, zu denen die Lichter automatisch eingeschaltet werden. Sie können beliebig viele Ein- und Ausschaltperioden einrichten.
Neben Skripten zur automatischen Steuerung der Lichter gibt es ein drittes Skript zur Verwaltung von Überschreibungssituationen. Auf diese Weise können Sie die Lichter unabhängig von der Umgebungslichtstärke aus der Ferne einschalten.
Skript 1: Die ON-Zone
Dieses Python-Skript wird jede Minute des Tages ausgeführt, an dem die Lichter eingeschaltet werden sollen, wenn es dunkel ist. Laden Sie das Skript herunter, indem Sie diesen Befehl kopieren und in das Terminal einfügen:
wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
Jedes Mal, wenn onzone.py ausgeführt wird, wird vom Sensor ein Lux-Wert abgerufen, um festzustellen, ob es dunkel ist. Ist dies der Fall, wird geprüft, ob die Lichter an oder aus sind. Wenn sie ausgeschaltet sind, werden sie eingeschaltet. Wenn es nicht dunkel ist, sieht das Skript, ob die Lichter an sind. Wenn dies der Fall ist, werden sie ausgeschaltet, sofern sie nicht überschrieben wurden.
Das Skript verwendet eine Variable namens lowlux, um zu entscheiden, an welchem Punkt es dunkel genug ist, um das Licht einzuschalten . Sie können es in etwas ändern, das für Ihre eigene Installation geeignet ist, indem Sie den Wert in dieser Zeile oben in onzone.py ändern:
lowlux = 50
Skript 2: Die AUS-Zone
Dieses Skript wird jede Minute des Tages ausgeführt, an dem die Lichter ausgeschaltet bleiben sollen, sofern sie nicht überschrieben wurden. Laden Sie das Skript herunter:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Diesem Skript ist es egal, wie hell oder dunkel es ist. Seine Aufgabe ist es einfach, die Lichter auszuschalten, wenn sie eingeschaltet sind (es sei denn, sie wurden überschrieben).
Skript 3: Der Override-Server
Dieses Skript erstellt einen einfachen Webdienst, der Befehle zum Ausführen der folgenden Aktionen akzeptieren kann:
- Schalten Sie das Licht unabhängig von der Umgebungsbeleuchtung für einige Minuten ein.
- Mach das Licht aus.
- Finden Sie heraus, ob die Lichter gerade an oder aus sind.
- Finden Sie heraus, wie lange die Lichter noch leuchten, wenn sie überschrieben wurden.
Laden Sie das Skript herunter:
wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Führen Sie das Skript offzone.py folgendermaßen aus, bevor Sie mit dem nächsten Schritt fortfahren:
python offzone.py
Dadurch werden die Steuerdateien erstellt, mit denen die Skripte den Überblick behalten.
Schritt 5: Planen Sie die Skripte
Ihr Raspberry Pi kann die Automatisierungsskripte mit cron ausführen. Richten Sie den Zeitplan folgendermaßen ein:
sudo crontab -e
Fügen Sie diese beiden Zeilen in den Texteditor ein:
* 7, 8, 9, 17, 18, 19, 20, 21, 22, 23 * * * python /home/pi/lighting/onzone.py > NULL * 0, 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16 * * * python /home/pi/lighting/offzone.py > NULL
Hinweis: Wenn der Benutzername, mit dem Sie sich bei Ihrem Raspberry Pi angemeldet haben, nicht der Standard- Pi war, ändern Sie den Pfad entsprechend.
Listen Sie alle Stunden auf, zu denen die Lichter bei Dunkelheit in der ersten Zeile aufleuchten sollen. Alle Stunden, in denen Sie das Licht ausschalten möchten, gehen in die zweite Zeile.
Stellen Sie nun das Überschreibungsskript so ein, dass es beim Start des Pi automatisch ausgeführt wird:
sudo nano /etc/rc.local
Füge diese Zeile am Ende der Datei ein, speichere und beende:
nohup python /home/pi/lighting/lightserver.py &
Starten Sie abschließend den Raspberry Pi neu, damit Sie überprüfen können, ob das Serverskript ordnungsgemäß geladen wird
sudo reboot
Schritt 6: Testen Sie das Relais
Prüfen Sie mit der Override-Funktion, ob alles funktioniert, bevor Sie Ihre Lampen anschließen. Geben Sie Folgendes in einen Webbrowser im selben Netzwerk wie Ihr Pi ein und ersetzen Sie die IP-Adresse durch die Adresse Ihres eigenen Raspberry Pi:
11.22.33.44:1234/overrideon/3
Wenn alles in Ordnung ist, hören Sie das Klicken des Relais und der Browser meldet, dass die Lichter drei Minuten lang eingeschaltet waren.
Während das Relais geschlossen ist, können Sie die anderen Override-Funktionen testen. Hier erfahren Sie, wie lange die Lichter aufgrund der Übersteuerung noch eingeschaltet bleiben:
11.22.33.44:1234/getoverrideremaining
Dies sollte Ihnen sagen, dass die Lichter an sind:
11.22.33.44:1234/lightstatus
Zum Schluss können Sie sie wieder ausschalten mit:
11.22.33.44:1234/overrideoff
Das Relais klickt beim Öffnen.
Schritt 7: Schließen Sie Ihre Lichter an
Schalten Sie Ihren Raspberry Pi aus und ziehen Sie den Stecker aus der Steckdose, bevor Sie die Lampen an das Relais anschließen. Verwenden Sie die normalerweise offenen Anschlüsse (NO) auf der Relaiskarte anstelle eines normalen Schalters wie folgt:
Schließlich können Sie Ihren Lux-Sensor an einem Ort installieren, an dem er das Umgebungslicht erfasst. Beachten Sie, dass der TSL2561 bei direkter Sonneneinstrahlung als gesättigt gemeldet wird. Bewahren Sie ihn daher nach Möglichkeit im Schatten auf.
Weitere Raspberry Pi-Projekte zum Ausprobieren
Das Remote-Überschreiben Ihres neuen Smart Lighting-Setups durch Eingeben von Befehlen in einen Webbrowser ist ziemlich umständlich. Ein besserer Weg ist es, etwas wie ein Amazon Echo anzuschließen, um die Dinge einfacher zu machen. Das Kombinieren des Alexa-Dienstes und des Webhooks-Dienstes unter IFTTT ist eine einfache Möglichkeit, die Sprachsteuerung hinzuzufügen.
Weitere Informationen zum Einstieg in IFTTT finden Sie in unserem Handbuch.
Eine andere Option ist die Verwendung von Siri-Verknüpfungen. Eine einzelne Verknüpfung mit Menüs kann den Status der Lichter abfragen und die Überschreibungsfunktionen verwenden, um sie ein- und auszuschalten.
Wenn Ihnen dieses Projekt gefallen hat, sehen Sie sich unbedingt diese seltsamen Raspberry Pi-Projekte an. 10 Seltsamste Raspberry Pi-Projekte 10 Seltsamste Raspberry Pi-Projekte In jedem von uns steckt ein verrückter Wissenschaftler. Manchmal wird es komisch. Sehr seltsam. Lesen Sie mehr für weitere Ideen.
Erfahren Sie mehr über: IFTTT, Raspberry Pi, Smart Lighting.