Werbung

Schalter für die Dämmerung bis zum Morgengrauen und Timer-Schalter sind praktische Möglichkeiten, um Ihre Lichter 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 Raspberry Pi, ein Relais, ein Lichtsensor und ein Schuss Code sind alles, was Sie brauchen, um dieses Nirvana der automatischen Beleuchtung auf kleinstem Raum zu erreichen.

Was du brauchen wirst

Komponenten für Ihren lichtempfindlichen Smart Switch sind einfach zu beschaffen. Du brauchst:

  • Jedes Modell Raspberry Pi mit Raspbian.
  • EIN Relaisplatine, leicht bei Amazon zu finden.
  • Ein Adafruit TSL2561 Leuchtkraftsensor.
  • Überbrückungsdrähte.
  • Einige Lichter zum Automatisieren!

So funktioniert ein lichtempfindlicher Smart Switch

Durch die Verwendung eines Relais auf die gleiche Weise wie bei uns automatisches Garagentoröffnerprojekt So automatisieren Sie Ihr Garagentor mit IFTTT und Raspberry PiIn diesem Tutorial zeigen wir Ihnen, wie Sie Ihr Garagentor mit nur einem Raspberry Pi und IFTTT automatisieren können.

instagram viewer
Weiterlesen können Sie einen Raspberry Pi so programmieren, dass ein Beleuchtungskreis zu festgelegten Zeiten ein- und ausgeschaltet wird. Durch Hinzufügen eines Leuchtkraftsensors zur Mischung kann der Pi den Umgebungslichtpegel erkennen und das Licht nur dann einschalten, wenn es wirklich benötigt wird.

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, um zu bestimmen, wann sie aufleuchten:

  1. Ein programmierter Zeitplan.
  2. Das Umgebungslicht.
  3. Ein Override-Signal, das über das Netzwerk gesendet wird.

Schritt 1: Verbinden Sie den Raspberry Pi mit dem Relais

Wenn Sie mit der Verwendung des GPIO noch nicht vertraut sind, lesen Sie zunächst Alles, was Sie über Raspberry Pi GPIO Pins wissen müssen.

Überprüfen Sie zunächst, ob auf Ihrer Relaisplatine ein Jumper vorhanden ist, der die VCC- und JD-VCC-Pins miteinander verbindet. Wenn ja, entfernen Sie es.

Jumper zwischen JD-VCC und VCC-Relaisplatine

Schließen Sie die Relaisplatine bei ausgeschaltetem Gerät wie folgt an Ihren Pi an:

  • Pi Pin 2 (5V) an den JD-VCC auf der Relaisplatine.
  • Pi Pin 6 (GND) zu GND auf der Relaisplatine.
  • Pi Pin 15 (GPIO 22) an IN1 auf der Relaisplatine
  • Pi Pin 17 (3,3 V) an VCC auf der Relaisplatine.
Raspberry Pi Zero W an eine Relaisplatine angeschlossen

Schritt 2: Schließen Sie den Leuchtkraftsensor an

Der TSL2561 ist ein Lichtsensor, der Infrarot-, Vollspektrum- und vom Menschen sichtbares Licht erfassen kann. Es kann einen sehr präzisen digitalen Messwert an den Raspberry Pi senden. Der Sensor meldet den Lichtpegel auf einer Skala von 0,1 (kein Licht) bis 40.000 (helle Sonne).

Das TSL2561-Board spricht mit dem Raspberry Pi mit dem 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 Strom, 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 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
Raspberry Pi Zero W an den Lux-Sensor TSL2561 angeschlossen

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.

Schnittstellenoptionen im Dienstprogramm raspi-config

Schlagen Eingeben dann wählen Sie Fertig um den Konfigurationsbildschirm zu verlassen. Starten Sie Ihren Pi neu, damit die Änderung wirksam wird:

sudo neu starten

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 richtig angeschlossen ist, wird folgende Antwort angezeigt:

IC-Detect-Dienstprogramm, das die Lux-Sensoradresse meldet

Hier meldet das Dienstprogramm, dass es ein I2C-Gerät (den Lux-Sensor) an der I2C-Adresse 39 gefunden hat.

Mit den Abhängigkeiten sind Sie noch nicht ganz fertig. Sie benötigen auch einige Bibliotheken. Erstellen Sie zunächst einen Ordner, in dem alles, was mit diesem Projekt zu tun hat, gespeichert wird:

mkdir ~ / Beleuchtung. cd ~ / beleuchtung

Als nächstes herunterladen Flasche, ein leichtes Framework, das einen einfachen Webserver auf Ihrem Pi erstellt. Sie werden es verwenden, 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 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-Klon https://github.com/adafruit/Adafruit_Python_GPIO.git. Git-Klon 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. # - * - Codierung: utf-8 - * - aus __future__ importiere absolute_import, Division, print_function, unicode_literals. aus tsl2561 TSL2561 importieren. if __name__ == "__main__": tsl = TSL2561 (debug = True) print (tsl.lux ())

Drücken Sie Strg + X. Befolgen Sie zum Speichern die Anweisungen auf dem Bildschirm, um das Programm 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 hell wird. Führen Sie dann das Testskript erneut aus und sehen Sie, wie sich die Nummer ändert.

Schritt 4: Erstellen Sie die Automatisierungsskripte

Der Raspberry Pi schaltet die Lichter ein, wenn es dunkel wird, schaltet sie aber auch zu bestimmten Zeiten aus. Zum Beispiel möchten Sie vielleicht, dass Ihre Lichter angehen, wenn es abends dunkel wird, und dann gegen Mitternacht ausgehen, um Strom zu sparen. Sie könnten am frühen Morgen wieder einschalten und sich dann ausschalten, wenn es hell wird.

Um einen Zeitplan mit mehreren Zeitzonen wie dieser zu verwalten, gibt es zwei verschiedene Skripte. Ein (onzone.py) läuft jede Minute während der Zeiten, in denen das Licht eingeschaltet sein soll, wenn es dunkel ist. Das andere (offzone.py) wird jede Minute ausgeführt, wenn die Lichter unabhängig von der Lichtstärke ausgeschaltet sein sollen.

Zeitplan für intelligente Beleuchtungsskripte

Die Skripte sollen ausgeführt werden mit Cron Jobs So planen Sie Aufgaben unter Linux mit Cron und CrontabDie Fähigkeit, 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 . Wenn Sie auswählen, zu welchen Tages- und Nachtstunden jedes Skript ausgeführt werden soll, können Sie ganz einfach festlegen, zu welchen Stunden Ihre Lichter automatisch eingeschaltet werden können. Sie können so viele Ein- und Ausschaltperioden einrichten, wie Sie möchten.

Neben Skripten zur automatischen Steuerung der Lichter gibt es ein drittes Skript zur Verwaltung von Überschreibungssituationen. Auf diese Weise können Sie die Beleuchtung unabhängig von der Umgebungslichtstärke aus der Ferne einschalten.

Skript 1: Die EIN-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, erhält der Sensor einen Lux-Wert, um festzustellen, ob es dunkel ist. Wenn dies der Fall ist, wird überprüft, ob die Lichter ein- oder ausgeschaltet 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, es sei denn, sie wurden überschrieben. 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 akzeptieren kann, um die folgenden Aktionen auszuführen:

  1. Schalten Sie das Licht unabhängig von der Umgebungslichtstärke einige Minuten lang ein.
  2. Schalten Sie das Licht aus.
  3. Finden Sie heraus, ob die Lichter gerade ein- oder ausgeschaltet sind.
  4. Finden Sie heraus, wie lange die Lichter eingeschaltet bleiben sollen, wenn sie außer Kraft gesetzt 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 alles verfolgen.

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 war PiÄndern Sie den Pfad entsprechend.

Listen Sie in der ersten Zeile alle Stunden auf, zu denen die Lichter aufleuchten sollen, wenn es dunkel ist. Alle Stunden, in denen Sie das Licht ausschalten möchten, gehen in die zweite Zeile.

Stellen Sie nun das Override-Skript so ein, 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 sie und beenden Sie sie:

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 neu starten

Schritt 6: Testen Sie das Relais

Testen Sie vor dem Anschließen der Leuchten mithilfe der Override-Funktion, ob alles funktioniert. 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 antwortet, dass die Lichter drei Minuten lang eingeschaltet wurden.

Während das Relais geschlossen ist, können Sie die anderen Override-Funktionen testen. Hier erfahren Sie, wie viele Minuten 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

Schließlich 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 Netzstecker, bevor Sie die Lampen an das Relais anschließen. Verwenden Sie die normalerweise offenen (NO) Anschlüsse auf der Relaisplatine anstelle eines normalen Schalters wie folgt:

Einsetzen des Relais in den Beleuchtungskreis

Schließlich können Sie Ihren Lux-Sensor an einem Ort installieren, an dem er das Umgebungslicht erfasst. Beachten Sie, dass der TSL2561 als gesättigt gemeldet wird, wenn er direktem hellem Sonnenlicht ausgesetzt ist. 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 Eingabe von Befehlen in einen Webbrowser ist ziemlich umständlich. Ein besserer Weg ist es, so etwas wie ein Amazon Echo anzuschließen, um die Dinge einfacher zu machen. Kombination des Alexa-Dienstes und des Webhooks-Dienstes auf IFTTT ist eine einfache Möglichkeit, Sprachsteuerung hinzuzufügen.

Sehen Sie unsere Anleitung zur Verwendung von IFTTT um Ihnen den Einstieg zu erleichtern.

IFTTT Applet zum Verbinden von Smart Lights mit Alexa

Eine andere Möglichkeit ist die Verwendung von Siri Shortcuts. Eine einzelne Verknüpfung mit Menüs kann den Status der Lichter abfragen und die Übersteuerungsfunktionen verwenden, um sie ein- und auszuschalten.

Wenn Ihnen dieses Projekt gefallen hat, lesen Sie diese unbedingt durch seltsame Raspberry Pi-Projekte 10 seltsamste Himbeer-Pi-ProjekteIn jedem von uns steckt ein verrückter Wissenschaftler, und der Raspberry Pi lässt Ihren inneren Idioten herauskommen und spielen. Manchmal werden die Dinge komisch. Sehr seltsam. Weiterlesen für mehr Ideen.

Hamish ist freiberuflicher Schriftsteller, lebenslanger Technikliebhaber und bestätigter Nerd. Er arbeitete in den IT-Abteilungen einer Reihe multinationaler Unternehmen, bevor er schließlich seinen Chef entließ und es alleine machte.