ich bin komplett neu in der Python-Welt und habe mir nun etwas als mein erstes Projekt vorgenommen.
Ich würde nämlich gerne die Beleuchtung für mein Terrarium über ein Python-Script steuern.
Das Ganze läuft auf einem Raspberry Pi 3B mit Raspbian als Betriebssystem.
Den Raspberry habe ich soweit installiert und eine Relaiskarte mit 4 Relais angeschlossen.
Die 4 GPIOs (12, 16, 20, 21) für meine 4 Lampen kann ich als Ausgang bereits manuell ein und ausschalten und habe mich auch schonmal an einem "Blinkerprogramm" probiert. Alles funktioniert soweit einwandfrei.
Die Relais schalten übrigens nur die Steuerspannung für ein größeres Relais, damit die kleine Relaiskarte des Raspberry nicht so schnell abnutzt...

Es wäre natürlich einfach die Beleuchtung jeden Tag um die gleiche Uhrzeit immer wieder ein- und auszuschalten.
Jedoch möchte ich ein Programm schreiben, die für meine Terrariumbewohner automatisiert den Winterschlaf einläutet...
Dazu soll die Beleuchtung immer wie folgt herunterfahren, wenn ich GPIO 7 als Eingang über einen Schalter einschalte:
1. Woche
GPIO 12=1 (7:00 - 19:00 Uhr)
GPIO 16=1 (7:00 - 19:00 Uhr)
GPIO 20=0 (aus)
GPIO 21=1 (6:00 - 20:00 Uhr)
2. Woche
GPIO 12=1 (7:00 - 19:00 Uhr)
GPIO 16=1 (aus)
GPIO 20=0 (aus)
GPIO 21=1 (6:00 - 20:00 Uhr)
3. Woche
GPIO 12=1 (aus)
GPIO 16=1 (aus)
GPIO 20=0 (aus)
GPIO 21=1 (6:00 - 20:00 Uhr)
4. Woche
GPIO 12=1 (aus)
GPIO 16=1 (aus)
GPIO 20=0 (aus)
GPIO 21=1 (8:00 - 18:00 Uhr)
5. Woche
GPIO 12=1 (aus)
GPIO 16=1 (aus)
GPIO 20=0 (aus)
GPIO 21=1 (aus)
Nachdem ich den Schalter für GPIO 7 wieder ausschalte, soll das Ganze die Beleuchtung entgegengesetzt wieder hochfahren. Der GPIO 7 muss also permanent auf seinen Zustand abgefragt werden.
Das komplette Script soll automatisch beim Booten des Raspberry starten.
Leider habe ich nur noch keine Lösung gefunden, was nach einem Stromausfall passieren soll/kann...
Habt ihr da eventuell Ideen???
Hier mal mein bisheriges Script mit Namen "Lichtsteuerung_Terrarium.py":
#Programm: Lichtsteuerung Terrarium
#Bemerkungen: Automatische Einleitung der jährlichen Winterruhe
#Stand: 28.09.2019
################################
#GPIO Belegung:
#HID 160W = Strahler_1 = GPIO 12
#HID 160W = Strahler_2 = GPIO 16
#HID 160W = Strahler_3 = GPIO 20
#HQL 150W = Strahler_4 = GPIO 21
################################
#Import von GPIOs
import RPi.GPIO as GPIO
#Import von Datum/Uhrzeit
import datetime as dtm
#Import von Timer
import time as tm
#Warnungen ausschalten
GPIO.setwarnings(False)
#Ansprechen der GPIOs über ihre GPIO-Nummer
GPIO.setmode(GPIO.BCM)
#Pins als Outputs definieren
GPIO.setup(12, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.setup(20, GPIO.OUT)
GPIO.setup(21, GPIO.OUT)
#HIGH/LOW (3.3V/0V) für GPIOs definieren
GPIO.output(12, GPIO.HIGH)
GPIO.output(12, GPIO.LOW)
GPIO.output(16, GPIO.HIGH)
GPIO.output(16, GPIO.LOW)
GPIO.output(20, GPIO.HIGH)
GPIO.output(20, GPIO.LOW)
GPIO.output(21, GPIO.HIGH)
GPIO.output(21, GPIO.LOW)
################################
#Zeitsteuerung der Beleuchtung#
################################
Ich habe über die Möglichkeit von "datetime" oder "cronjobs" gelesen, weiß aber nicht, wie ich das auf meinen speziellen Fall anwenden kann/soll...(?)
Kann mir vielleicht jemand von euch weiterhelfen?
Besten Dank im Voraus!!!
