Licht – Chicken Pi
Tags: Chicken Pi, LED, openHAB, Raspberry Pi, Schaltung, Smart Home
Wie in dem Projekt Chicken Pi vorgestellt, habe ich nun die ersten Komponenten zusammen gebaut. Begonnen wird mit: “Es werde Licht!”. Der Einbau des Lichts ist relativ simple. Voraussetzung ist, dass es einen passenden Case, sowie schon einen Raspberry Pi Zero gibt, sodass diese Komponenten nur noch angeschlossen werden müssen. Folgende Dinge habe ich für das Licht gekauft:
- 2x LED – LED Farbe Yellow (585nm); Strom 50mA; leg yes; Paket 5 mm [THT]
- 2x Widerstand – Widerstand 100Ω; Toleranz ±5%; Leistung 0.25W
- 1x Pushbutton – switching circuit SPST; switch status Released; contact resistance 0.1Ω; Paket THT; default state Normally Open
- Ein wenig Schrumpfschlauch und Klingeldraht
Der Schaltplan anbei zeigt den simplen Anschluss. Dabei habe ich den Schalter NICHT direkt mit den Lichtern verbaut, sondern auf einen separaten GPIO gesetzt. Dadurch kann ich die Schaltung im Code leichter steuern und später direkt am Stall, als auch via openHAB App die Schaltung vornehmen. Für mich ist es einfacher, Schaltungen in Software abzubilden, anstatt in Hardware (zeitliche Steuerung, flexibler in der Smart Home Integration).
Wie ich das Ganze in Python integriert habe, ist hier zu finden. Das Repository enthält immer den aktuellen Stand meines Chicken Pi Projektes: https://github.com/lochmueller/chicken-pi. Unten findest du die entscheidenden Zeilen im Code. Die Steuerung der GPIOs übernimmt gpiozero und die REST API für openHAB, wird mittels Flask erzeugt. Sowohl der Button, als auch der API-Endpunkt führen immer einen toggle aus, sodass sich das Licht z.B. einfach via Button ein- und Smartphone ausschalten lässt. Die GPIO-Belgung (in meinem Beispiel: Button=2, LEDs=4) kann individuell angepasst werden.
from flask import Flask, jsonify
from gpiozero import LED, Button
app = Flask(__name__)
led = LED(4)
led.off()
button = Button(2)
def light_toggle():
led.toggle()
button.when_pressed = light_toggle
@app.route('/light', methods=['GET'])
def get_light():
return jsonify({'active': led.is_lit})
@app.route('/light', methods=['POST'])
def post_light():
light_toggle()
return '', 204
[…] geht es im Hobby-Bau! Nach dem Basis-Konzept und der Integration des Lichts wurden nun zwei Temperatur-Sensoren montiert. Dabei habe ich mich an zwei Tutorials […]