So bauen Sie einen Light-Sensing Smart Switch mit Raspberry Pi und IFTTT
Dämmerungsschalter und Zeitschaltuhren sind praktische Methoden zur Automatisierung Ihrer Beleuchtung. Wäre es nicht toll, wenn Sie die beiden kombinieren oder sogar für eine wirklich intelligente Beleuchtungsanlage an das Internet anschließen könnten??
Ein Himbeer-Pi, ein Relais, ein Lichtsensor und ein wenig Code sind alles, was Sie benötigen, um dieses automatische Beleuchtungs-Nirvana auf kleinstem Raum zu erreichen.
Was du brauchen wirst
Die Komponenten für Ihren Lichtsensor sind leicht zu beschaffen. Du brauchst:
- Jedes Modell Raspberry Pi mit Raspbian.
- Eine Relaisplatine, die leicht bei Amazon zu finden ist.
- Ein Adafruit TSL2561-Helligkeitssensor.
- Schaltdrähte.
- Einige Lichter zum Automatisieren!
SunFounder 2-Kanal-DC-5-V-Relaismodul mit Optokoppler-Low-Level-Trigger-Erweiterungsplatine für Arduino UNO R3 MEGA 2560 1280 DSP-ARM-PIC-AVR-STM32-Raspberry Pi SunFounder-2-Kanal-DC-5-V-Relay-Modul mit Optokoppler-Low-Level-Trigger-Erweiterungsplatine für Arduino UNO R3 MEGA 2560 1280 DSP ARM PIC AVR STM32 Himbeer-Pi Kaufen Sie jetzt bei Amazon $ 6,79
Funktionsweise eines lichtempfindlichen intelligenten Schalters
Durch Verwendung eines Relais wie bei unserem automatischen Garagentoröffnerprojekt So automatisieren Sie Ihr Garagentor mit IFTTT und Raspberry Pi So automatisieren Sie Ihr Garagentor mit IFTTT und Raspberry Pi In diesem Lernprogramm zeigen wir Ihnen, wie Sie Ihr Relais automatisieren können Garagentor mit nichts mehr als einem Raspberry Pi und IFTTT. Lesen Sie weiter, Sie können einen Raspberry Pi so programmieren, dass er einen Lichtkreis zu festen Zeiten ein- und ausschaltet. Durch Hinzufügen eines Helligkeitssensors zum Mix kann der Pi das Umgebungslichtniveau erkennen und die Beleuchtung nur dann einschalten, wenn sie wirklich benötigt wird.
Da ein Pi ein kleiner Computer ist, der an ein Netzwerk angeschlossen werden kann, können Sie ihn auch so einstellen, dass er über das Internet gesteuert wird. Ihre Smart Lights verfügen über drei Eingänge, um zu bestimmen, wann sie eingeschaltet werden:
- Ein programmierter Zeitplan.
- Das Umgebungslichtniveau.
- Ein Überschreibungssignal, das über das Netzwerk gesendet wird.
Schritt 1: Verbinden Sie den Raspberry Pi mit dem Relais
Wenn Sie GPIO noch nicht kennen, lesen Sie zunächst alles, was Sie über Raspberry Pi GPIO-Pins wissen müssen.
Prüfen Sie zunächst, ob Ihre Relaiskarte einen Jumper hat, der die Pins VCC und JD-VCC miteinander verbindet. Wenn ja, entfernen Sie es.
Schließen Sie die Relaiskarte bei ausgeschaltetem Gerät wie folgt an Ihren Pi an:
- Pi Pin 2 (5 V) zum JD-VCC auf der Relaisplatine.
- Pi Pin 6 (GND) an GND auf der Relaisplatine.
- 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 Luminosity Sensor an
Der TSL2561 ist ein Lichtsensor, der Infrarotlicht, Vollspektrum und von Menschen sichtbares Licht erfassen kann. Es kann ein sehr präzises digitales Messergebnis an den Raspberry Pi senden. Der Sensor meldet das Lichtniveau auf einer Skala von 0,1 (kein Licht) bis 40.000 (helle Sonne)..
Das TSL2561-Board spricht 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 übertragenen Daten. Natürlich benötigt der Lux-Sensor auch etwas Leistung, sodass 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 dem 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: Konfigurieren und Installieren von Abhängigkeiten
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 Schnittstellenoptionen> P5 I2C, dann wähle Ja.
Schlagen Eingeben dann auswählen Fertig um den Konfigurationsbildschirm zu verlassen. Starten Sie Ihr Pi neu, damit die Änderung wirksam wird:
Sudo Neustart
Es sind einige Abhängigkeiten erforderlich, damit der Pi mit der Sensorplatine kommunizieren kann. Geben Sie die folgenden Befehle ein:
sudo apt-get Update Sudo apt-get installieren -y python-smbus sudo apt-get installieren -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 folgt angezeigt:
Hier meldet das Dienstprogramm, dass es an der I2C-Adresse 39 ein I2C-Gerät (den Lux-Sensor) gefunden hat.
Sie sind noch nicht ganz mit den Abhängigkeiten fertig. Du wirst auch ein paar Bibliotheken brauchen. Erstellen Sie zunächst einen Ordner, in dem Sie alles, was mit diesem Projekt zusammenhängt, in:
mkdir ~ / Beleuchtung cd ~ / Beleuchtung
Laden Sie als Nächstes Bottle herunter, ein leichtes Framework, das einen einfachen Webserver auf Ihrem Pi erstellt. Sie verwenden es, um Ihre Lichter über das Internet zu steuern.
wget https://bottlepy.org/bottle.py
Die anderen Bibliotheken, die Sie benötigen, befinden sich auf Github. Wenn Ihr Raspberry Pi noch nicht über Git verfügt, fügen Sie es jetzt hinzu:
sudo apt-get install git
Nun klonen Sie zwei Bibliotheken wie folgt:
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git git clone https://github.com/adafruit/Adafruit_Python_PureIO.git
Und schließlich erstellen Sie ein Testskript, indem Sie eine neue Datei erstellen:
nano test.py
Fügen Sie diesen Code (mit freundlicher Genehmigung von Adafruit) ein:
#! / usr / bin / env python # - * - Codierung: utf-8 - * - aus __future__ import absolute_import, division, print_function, unicode_literals aus tsl2561 importieren TSL2561, wenn __name__ == "__main__": tsl = TSL2561 (debug = True) ) print (tsl.lux ())
Drücken Sie Strg + X Folgen Sie den 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 eine Lux-Anzeige vom Sensor. Versuchen Sie, den Sensor zu blockieren oder ihn so zu bewegen, dass er mehr oder weniger Licht bekommt. Führen Sie dann das Testskript erneut aus und sehen Sie, wie sich die Anzahl ändert.
Schritt 4: Erstellen Sie die Automatisierungsskripts
Das Raspberry Pi schaltet das Licht ein, wenn es dunkel wird, schaltet es aber auch zu bestimmten Zeiten aus. Sie möchten beispielsweise, dass Ihre Lichter bei Dunkelheit am Abend aufleuchten und dann gegen Mitternacht abschalten, um Strom zu sparen. Sie könnten früh am Morgen wieder eingeschaltet werden und sich dann ausschalten, wenn es hell wird.
Um einen Zeitplan mit mehreren Zeitzonen wie diesen zu verwalten, gibt es zwei verschiedene Skripts. Ein (onzone.py) wird jede Minute ausgeführt, wenn Ihre Lichter eingeschaltet sein sollen, wenn es dunkel ist. Das andere (offzone.py) wird jede Minute ausgeführt, wenn die Beleuchtung unabhängig von der Lichtstärke ausgeschaltet sein soll.
Die Skripte werden mit cron-Jobs ausgeführt. Zeitplan für Aufgaben in Linux mit Cron und Crontab Zeitplan für Aufgaben in Linux mit Cron und Crontab Die Möglichkeit, Aufgaben zu automatisieren, ist eine dieser futuristischen Technologien, die bereits vorhanden ist. Dank des einfach zu bedienenden Hintergrunddienstes cron kann jeder Linux-Benutzer von Terminplanungssystem- und Benutzeraufgaben profitieren. Weiterlesen . Durch die Auswahl, zu welcher Tages- und Nachtzeit jedes Skript ausgeführt wird, können Sie die Stunden einstellen, zu denen Ihre Lichter automatisch eingeschaltet werden können. Sie können beliebig viele Ein- und Ausschaltperioden einrichten.
Neben Skripten zur automatischen Steuerung der Lichter gibt es ein drittes Skript zum Verwalten von Überschreibungssituationen. Dadurch können Sie die Beleuchtung unabhängig von der Umgebungsbeleuchtung 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/10b0e9d8ec42f8577750941da46d93b597c05/onzone.py
Bei jeder Ausführung von onzone.py erhält der Sensor einen Lux-Wert, um zu sehen, ob es dunkel ist. Ist dies der Fall, wird geprüft, ob die Beleuchtung ein- oder ausgeschaltet ist. Wenn sie ausgeschaltet sind, werden sie eingeschaltet. Wenn es nicht dunkel ist, wird das Skript sehen, ob die Lichter eingeschaltet sind. Wenn dies der Fall ist, werden sie ausgeschaltet, sofern sie nicht überschrieben wurden.
Das Skript verwendet eine Variable namens lowlux 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 in der Nähe von 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, es sei denn, sie wurden außer Kraft gesetzt. Laden Sie das Skript herunter:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Dieses Skript kümmert sich nicht darum, wie hell oder dunkel es ist. Seine Aufgabe besteht einfach darin, die Lichter auszuschalten, wenn sie eingeschaltet sind (es sei denn, sie wurden außer Kraft gesetzt)..
Skript 3: Der Überschreibungsserver
Dieses Skript erstellt einen einfachen Webdienst, der Befehle zur Ausführung der folgenden Aktionen annehmen kann:
- Schalten Sie die Beleuchtung unabhängig vom Umgebungslicht für einige Minuten ein.
- Licht ausschalten.
- Finden Sie heraus, ob die Lichter momentan ein- oder ausgeschaltet sind.
- Finden Sie heraus, wie lange die Lichter nach dem Überschreiben noch eingeschaltet bleiben sollen.
Laden Sie das Skript herunter:
wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Bevor Sie mit dem nächsten Schritt fortfahren, führen Sie das Skript offzone.py folgendermaßen aus:
Python offzone.py
Dadurch werden die Steuerdateien erstellt, die die Skripts verwenden, um den Überblick zu behalten.
Schritt 5: Planen Sie die Skripts
Ihr Raspberry Pi kann die Automatisierungsskripte mit cron ausführen. Stellen Sie den Zeitplan wie folgt auf:
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 an Ihrem Raspberry Pi angemeldet haben, nicht der Standard war Pi, Ändern Sie den Pfad entsprechend.
Listen Sie alle Stunden auf, an denen die Lichter eingeschaltet werden sollen, wenn es in der ersten Zeile dunkel ist. Alle Stunden, in denen Sie die Lichter ausschalten möchten, gehen in die zweite Zeile.
Legen Sie das Überschreibungsskript jetzt so fest, dass es beim Start des Pi automatisch ausgeführt wird:
sudo nano /etc/rc.local
Fügen Sie diese Zeile am Ende der Datei ein, speichern Sie und schließen Sie sie:
nohup python /home/pi/lighting/lightserver.py &
Starten Sie schließlich das Raspberry Pi neu, damit Sie überprüfen können, ob das Serverskript ordnungsgemäß geladen wird
Sudo Neustart
Schritt 6: Testen Sie das Relais
Testen Sie vor dem Anschließen der Lampen, ob alles funktioniert, indem Sie die Override-Funktion verwenden. Geben Sie Folgendes in einen Webbrowser ein, der sich im selben Netzwerk wie Ihr Pi befindet, und die IP-Adresse durch die Adresse Ihres eigenen Raspberry Pi ersetzen:
11.22.33.44:1234/overrideon/3
Wenn alles in Ordnung ist, hören Sie das Klicken des Relais und der Browser antwortet, 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, für wie viele Minuten die Lichter aufgrund des Überschreibens eingeschaltet bleiben:
11.22.33.44:1234/getoverridereinhalten
Dies sollte Ihnen sagen, dass die Lichter eingeschaltet sind:
11.22.33.44:1234/lightstatus
Zum Schluss können Sie sie wieder abschalten 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 trennen Sie ihn vom Stromnetz, 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 der Umgebungslichtpegel erfasst wird. Beachten Sie, dass der TSL2561 als gesättigt gemeldet wird, wenn er direktem Sonnenlicht ausgesetzt ist. Bewahren Sie ihn daher möglichst im Schatten auf.
Weitere Himbeer-Pi-Projekte zum Ausprobieren
Das Fernsteuern Ihrer neuen intelligenten Beleuchtungskonfiguration durch Eingabe von Befehlen in einen Webbrowser ist ziemlich umständlich. Ein besserer Weg ist es, etwas wie ein Amazon Echo anzuschließen, um die Dinge zu vereinfachen. Durch die Kombination des Alexa-Dienstes und des Webhooks-Dienstes auf IFTTT können Sprachsteuerungen auf einfache Weise hinzugefügt werden.
In unserer Anleitung zur Verwendung von IFTTT finden Sie weitere Informationen.
Eine andere Option ist die Verwendung von Siri-Shortcuts. Eine einzelne Verknüpfung mit Menüs kann den Status der Leuchten abfragen und mit den Überschreibungsfunktionen ein- und ausschalten.
Wenn Ihnen dieses Projekt gefallen hat, lesen Sie diese verrückten Raspberry Pi-Projekte. 10 Seltsamste Raspberry Pi-Projekte 10 Seltsamste Raspberry Pi-Projekte In jedem von uns gibt es einen verrückten Wissenschaftler, und der Raspberry Pi lässt Ihren inneren Loon herauskommen und spielen. Manchmal werden die Dinge komisch. Sehr seltsam. Lesen Sie mehr für weitere Ideen.
Erfahren Sie mehr über: IFTTT, Raspberry Pi, Smart Lighting.