Giter Site home page Giter Site logo

aussenbeleuchtung's Introduction

Aussenbeleuchtung

Die Aussenbeleuchtung besteht aus 7 LED - Streifen, welche eingeschaltet werden sollen, sobald eine Bewegung bei einem Bewegungssensor festgestellt wurde.

Die Logik über die Ansteuerung der LED-Streifen findet auf dem Raspberry Pi (RPi) in einem Python-Skript statt, welches als Service automatisch nach dem Aufstarten ausgeführt wird. Die Kommunikation zwischen dem RPi und den Streifen erfolgt über MQTT. Der dazu benötigte Broker, wird ebenfalls auf dem RPi ausgeführt, welcher ebenfalls automatisch nach dem Einschalten gestartet wird.

Pro LED-Streifen gibt es einen Mikrokontroller (Esp32 doit devkit v1), welcher die Kommunikation via MQTT sicherstellt und weiters den LED-Streifen ansteuert und die Bewegungssensoren (0-3 Sensoren pro Bord) auswerten. Die Programmierung des Mikrokontrollers erfolgte mittels der PlatformIO-IDE innerhalb von Visual Studio Code (VSCode).

Setup - RPi

Es wird keine spezielle Linux-Distribution benötigt. Die folgenden Anweisungen beziehen sich jedoch auf ein Debian Linux, wie dies bei der Standard-Distribution beim RPi der Fall ist. Es muss basierend auf der Standard-Installation nun noch der MQTT-Broker, wie auch der LED-Controller installiert werden:

MQTT

Der MQTT Broker wird wie folgt installiert und als Service an das Aufstarten angehängt:

sudo apt-get update
sudo apt-get install -y mosquitto mosquitto-clients
sudo systemctl enable mosquitto.service

Python setup

Das Python skript ledController.py benötigt die MQTT-Bibliotheken, welche mit den folgenden Kommandos installiert werden können:

sudo apt-get install -y python-pip
sudo pip install paho-mqtt

Python script als Service starten

Die Datei ledController.py in den Ordner /user/bin verschieben:

  sudo mv ledController.py /usr/bin/ledController.py

Sicherstellen, dass das Skript ausführbar ist:

  sudo chmod +x /usr/bin/ledController.py

Die Datei ledController.service in den folgenden Ordner verschieben:

  sudo mv ledController.service /lib/systemd/system/ledController.service

Um die Änderungen von systemctl zu laden und den neuen Service dem Autostart hinzuzufügen, werden die folgenden Kommandos benötigt:

  sudo systemctl daemon-reload
  sudo systemctl enable ledController.service

Um zu kontrollieren, dass der Service wie gewünscht funktioniert, die folgenden Kommandos ausführen:

  sudo systemctl start ledController.service
  sudo systemctl status ledController.service

Der Service sollte nun als active (running) aufgeführt sein.

Setup - Esp32

Nach dem ersten Aufstarten, kennt der Mikrokontroller die WiFi Zugangsdaten noch nicht, und kann sich somit nicht verbinden. Kommt keine solche Verbindung zu stande, wird vom Mikrokontroller ein Ad-Hoc-Netzwerk erstellt. Man kann sich daher mit dem offenen Netzwerk AutoConnectAP verbinden und die Konfiguration der WiFi-Zugangsdaten durchführen. Nach dem Verbinden mit AutoConnectAP erscheint der folgende Dialog:

Unter Configure WiFi das richtige Netzwerk aussuchen und das entsprechende Passwort eingeben. Von nun an, korrekte Daten vorrausgesetzt, verbindet sich der Mikrokontroller automatisch mit dem Netzwerk, und der AP AutoConnectAP wird nicht mehr aufgebaut.

Nachdem der Kontroller mit dem WiFi verbunden ist, kann dieser nun noch fertig konfiguriert werden. Hierzu im Browser die folgende Seite aufrufen:

http://stripe0.local

Es erscheint ein Konfigurierungsdialog wie folgt:

Nachdem die Client ID gesetzt und gespeichert wurde, kann die Seite unter der entsprechenden ID aufgerufen werden. D.h. für Client ID = 1 ist die Konfigurationseite erreichbar unter: http://stripe1.local

OTA

Um den Kontroller aktualisieren zu können, kann auf die OTA (Over-The-Air) Programmierung zurückgegriffen werden. Der Update-Server kann (am Beispiel der Client-ID = 1) erreicht werden über:

http://stripe1.local/update

Nach dem Kompilieren in der PlatformIO IDE, die Datei firmware.bin, welche aktualiesiert werden muss, kann am folgenden Ort gefunden werden (für die MAC Umgebung fetheresp32-OSX):

.pio/build/featheresp32-OSX/firmware.bin

Falls das unsichtbare Verzeichniss .pio nicht angezeigt wird unter macOS, dann kann dies geändert werden durch drücken von Command + Shift + . (Punkt).

aussenbeleuchtung's People

Contributors

frep avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.