Draadloze kerst lichttimer met Raspberry Pi en Python (7 / 11 stap)

Stap 7: Python Code

Een andere disclaimer: Ik ben ook niet een computerwetenschapper of programmeur, veel minder een Python-expert. Als de code hieronder ziet er verschrikkelijk, inefficiënt of gewoon maakt u ineenkrimpen, gelieve te voelen vrij to post een link naar betere code, omwille van de mensen dit leest in detoekomst.

Update 12/13/2013: Zie mmoon de opmerking hieronder voor een link naar wat netter code.

Nu hebt u het circuit gebouwd, is het tijd om te beginnen met behulp van de Raspberry Pi! Dit is een ander deel dat was verwarrend voor een first-time Raspberry Pi gebruiker - het was niet meteen duidelijk hoe u eigenlijk de GPIO pinnen, want blijkbaar is er meer dan één manier om het te doen. Een Google-zoekopdracht voor "raspberry pi gpio python" onthult meerdere verschillende tutorials en Python pakketten die kunt u downloaden. U kunt ook controleren de pinnen rechtstreeks vanaf een terminal die zonder het gebruik van Python at all. Dus, het kostte me een tijdje om erachter te komen dat de standaard distributie al Raspbian wordt geleverd met een Python module voor controlerende GPIO pinnen. Oef!

Vergeet niet dat ik ervan uitgaande u al een Raspberry Pi dat ben tot en uitvoeren van dit punt, met behulp van Raspbian, die wordt geleverd met zowel Python 2.x en 3.x (vanaf December 2013). Ik schreef de code in Python 3.2.3 IDLE 3 (geïntegreerde Development Library) - er's met een snelkoppeling voor het op het standaardbureaublad Raspbian.

Het uitvoeren van de code:

1. open een terminal ("LXTerminal" pictogram op het bureaublad), typ sudo idle3, en druk op invoeren. Dit loopt IDLE "als root", die vereist voor de GPIO toegang met Python is.
2. download christmas_timer.py (zie hieronder) en vervolgens opent in IDLE 3, of Maak een nieuwe Python bestand en kopieer en plak de onderstaande code.
3. Neem een minuut om te kijken naar de code en de opmerkingen. Het enige deel dat u hoeft te bewerken is de sectie richting van het begin met alle de "aan" en "uit" tijden (MonOn, MonOff, TueOn, enz.).
4. u bent bijna klaar de code uit te voeren! Maar eerst... (Ga naar de volgende stap)

# Raspberry Pi aangepaste Kerstmis licht timer

# GPIO importmodule
importeren van RPi.GPIO als GPIO

# instellen GPIO pinnen als uitgang
# Dit Verdrag is voor de "P1" koptekst pin Conventie
# waar de pinnen met P1 in de linker bovenhoek beginnen
# en ga naar P26 in het lagere recht, met kansen in de
# linkerkolom en evens in de rechterkolom.
# Dus pinnen P1-11 en P1-12 corresponderen met GPIO17 en
# GPIO18 respectievelijk.
GPIO.setmode (GPIO. RAAD VAN BESTUUR)
GPIO.setup (11, GPIO. UIT)
GPIO.setup (12, GPIO. UIT)

# datum en tijd modules importeren
datetime importeren
importeren

# Voer de gewenste de lichten voor het inschakelen en uitschakelen voor
# elke dag van de week. Standaard is voor verlichting in te schakelen op
# 5:30 pm en 10:30 uur op weekdagen, korting op om 5:00 pm, en uit
# 11:30 uur in het weekend. Merk op dat dit is met behulp van een 24-uurs klok.

MonOn = datetime.time(hour=17,minute=30,second=0)
MonOff = datetime.time(hour=22,minute=30,second=0)
TueOn = datetime.time(hour=17,minute=30,second=0)


TueOff = datetime.time(hour=22,minute=30,second=0)
WedOn = datetime.time(hour=17,minute=30,second=0)
WedOff = datetime.time(hour=22,minute=30,second=0)
ThuOn = datetime.time(hour=17,minute=30,second=0)
ThuOff = datetime.time(hour=22,minute=30,second=0)
FriOn = datetime.time(hour=17,minute=30,second=0)
FriOff = datetime.time(hour=22,minute=30,second=0)
SatOn = datetime.time(hour=17,minute=0,second=0)
SatOff = datetime.time(hour=23,minute=30,second=0)
SunOn = datetime.time(hour=17,minute=0,second=0)
SunOff = datetime.time(hour=23,minute=30,second=0)

# Deze tijden worden opgeslagen in een array voor gemakkelijke toegang later.
OnTime = [MonOn, TueOn, WedOn, ThuOn, FriOn, SatOn, SunOn]
OffTime = [MonOff, TueOff, WedOff, ThuOff, FriOff, SatOff, SunOff]

# Een "wachttijd" in seconden instellen. Dit zorgt ervoor dat het programma wordt onderbroken
# kort na het schakelt de verlichting in of uit. Anderszins, sinds de
# loop meer dan eenmaal een seconde zal uitvoeren, zal het proberen te houden
# draaien de lichten op wanneer ze zijn al op (of af wanneer ze zijn
# al weg.

waitTime = 3

# Start de lus wordt uitgevoerd totdat u het programma stopt of draaien
# uit je Raspberry Pi.

terwijl juist:

# krijgen de huidige tijd in de uren, minuten en seconden
currTime = datetime.datetime.now()
# get de huidige dag van de week (0 = maandag, 1 = dinsdag, 2 = woensdag...)
currDay = datetime.datetime.now().weekday()

#Check om te zien of het tijd om de lichten weer op
Als (currTime.hour - OnTime [currDay] .hour == 0 en
currTime.minute - OnTime [currDay] .minute == 0 en
currTime.second - OnTime [currDay] .twee == 0):

# Stel de GPIO pin op hoog, equivalent van
# de ON-knop op de afstandsbediening te drukken
GPIO.output (11, GPIO. HOOG)

# wachten voor een zeer korte periode van tijd stel
# de waarde te laag, het equivalent van het vrijgeven van de
# ON-knop
time.Sleep(.5)
GPIO.output (11, GPIO. LAAG)

# wachten voor een paar seconden, zodat de lus komt niet
# terug door en druk opnieuw op de toets "on"
# terwijl de lichten ae reeds op
time.Sleep(waitTime)

#check om te zien als het is tijd om de lichten uit te schakelen
Elif (currTime.hour - OffTime [currDay] .hour == 0 en
currTime.minute - OffTime [currDay] .minute == 0 en
currTime.second - OffTime [currDay] .twee == 0):

# Stel de GPIO pin op hoog, equivalent van
# de OFF-knop op de afstandsbediening te drukken
GPIO.output (12, GPIO. HOOG)

# wachten voor een zeer korte periode van tijd stel
# de waarde te laag, het equivalent van het vrijgeven van de
# UIT-knop
time.Sleep(.5)
GPIO.output (12, GPIO. LAAG)

# wachten voor een paar seconden, zodat de lus komt niet
# terug door en druk opnieuw op de toets "off"
# terwijl de lichten ae al weg
time.Sleep(waitTime)

Gerelateerde Artikelen

Bouwen van robots met Raspberry Pi en Python

Bouwen van robots met Raspberry Pi en Python

het doel van deze tutorial is zodat u kunt beginnen met programmeren met Python om te controleren uw robots van de Arduino met een Raspberry PI. We gaan over de basics zoals installatie en enkele eenvoudige voorbeelden om te controleren uw robot van
Draadloze Multi-Channel Voice-Controlled stopcontacten met Raspberry Pi

Draadloze Multi-Channel Voice-Controlled stopcontacten met Raspberry Pi

Update van 2/11/2014: dank aan iedereen die gestemd voor dit project in de Raspberry Pi-wedstrijd!Dit project is een combinatie van verschillende middelen van het verschil:Mijn single-outlet-vergrendelingsbeheerproject met Raspberry Pi en Python, oor
Dim een LED met raspberry pi 3 en python

Dim een LED met raspberry pi 3 en python

Hallo! Ik ga u tonen hoe te een LED met Raspberry Pi dim.Moeilijkheidsgraad: Gemakkelijk/BEGINNER.Stay tuned voor de volgende instructables!Stap 1: Wat hebben we nodig?Hallo! Ik ga u tonen hoe te een LED met Raspberry Pi dim.Moeilijkheid: gemakkelijk
Internet van dingen met Raspberry Pi - 1

Internet van dingen met Raspberry Pi - 1

Toen ik was nieuw voor IOT (Internet van dingen), zag ik dat er nauwelijks tutorials die eenvoudig genoeg voor een beginner om te begrijpen en waren waren uit te proberen. Er was ofwel te veel technisch jargon, of de hardware te ingewikkeld was.Dus n
Pompoen - verandering LED kleur via Twitter met Raspberry Pi - IoT Tweet

Pompoen - verandering LED kleur via Twitter met Raspberry Pi - IoT Tweet

Het hoofddoel van dit Instructable is te leren hoe te gebruiken Twitter API om te trek tweets in uw python code, zodat u real time-gegevens in uw projecten gebruiken kuntNa deze Tutorial zult u vertrouwd zijn met:Raspberry Pi Blink LEDTwitter's Apps
Home Temperatuurbewaking met Raspberry Pi en Thingspeak (met BMP180)

Home Temperatuurbewaking met Raspberry Pi en Thingspeak (met BMP180)

Het is de leeftijd van de IoT.Each dag meer en meer mensen zijn hun apparaten aansluiten op de wolk. Het leek zo doet onrecht aan de temperatuur/druk-sensoren en een raspberry pi B + (een bijna 1GHz opgepompt beest) die lagen rond de tafel van de com
Mensen Counter bijgewerkt met Raspberry Pi

Mensen Counter bijgewerkt met Raspberry Pi

Dit is een bijgewerkte versie van de UbiMaker Open Source mensen teller met nieuwe scripts.Waar ik fouten gemaakt heb, zal ik hen, merken, in de hoop dat u hoeft niet hetzelfde te doen!Mensen-tellers zijn een bijzonder nuttig instrument voor biblioth
Internet van dingen met Raspberry Pi-2

Internet van dingen met Raspberry Pi-2

Dit is een vervolg op mijn vorige instructable Internet of Things met Raspberry Pi - 1.(Als u niet bekend met webservers, PHP coderen en de basisconcepten van IOT bent, je moet waarschijnlijk gaan door deel 1 eerste.)In de vorige instructable, we opz
Domotica met Raspberry Pi, Arduino, Domoticz, MySensors.

Domotica met Raspberry Pi, Arduino, Domoticz, MySensors.

Hallo collega-makers,Dit is mijn eerste Instructable op Home Automation. Het idee is het bouwen van een controller en draadloze knooppunten controle en monitor.Na een heleboel hit en proef met veel verschillende controllers zoals OpenHab, DomotiGa, g
IR afstandsbediening met Raspberry Pi zonder LIRC

IR afstandsbediening met Raspberry Pi zonder LIRC

Ik wilde krijgen een IR externe input voor de Raspberry Pi. Ik manged om LIRC geïnstalleerd en getest. Alles was ok, behalve de allerlaatste stap. Toen ik wilde de externe sleutelwaarde van IR doorgegeven aan Python programma doorgeeft niet het corre
How to turn een USB-camera met Raspberry Pi in een Onvif IP Camera?

How to turn een USB-camera met Raspberry Pi in een Onvif IP Camera?

IntroductieDit instructable, zullen we een nieuwe interessante Camera oplossing, die nooit eerder hebben gezien! Ik zou willen tonen u hoe u verbinding kunt maken uw USB-camera en de Raspberry Pi met Camera SDK. Het doel is om te zetten uw webcam aan
Een kopie van uw foto's en video's in uw Androïde telefoon verzenden met Raspberry Pi via Bluetooth

Een kopie van uw foto's en video's in uw Androïde telefoon verzenden met Raspberry Pi via Bluetooth

IntroductieDit instructable gebouwd op een eerder instructable "Turn Raspberry Pi in een Bluetooth-apparaat' die ik heb gemaakt.De foto's en video's op mijn Android telefoon back-up automatisch naar Google + foto wolk. Ik wil echter een kopie opslaan
$10 slimme camera met Raspberry Pi

$10 slimme camera met Raspberry Pi

LIVE DEMO in de serverkamer op Naran.De meeste van ons hebben een of twee ongebruikte USB webcams rondslingeren in onze huizen. Maar die camera's zijn vaak het verzamelen van stof als hun nu verouderd en hebben beperkte mogelijkheden.Sommige mensen z
DIY RTC DS1307 Module en gebruik met Raspberry Pi

DIY RTC DS1307 Module en gebruik met Raspberry Pi

Hallo vrienden,Na veel onderzoek kwam ik bouw mijn eigen RTC met behulp van DS1307.Mij zal zitten using mijn RTC met Raspberry Pi.Ik zou hebben gekocht een module, maar dat was veel te duur... dus heb ik besloten om mijn eigen te bouwen.Laat aan de s