Trådlös jul Light Timer med Raspberry Pi och Python (7 / 11 steg)

Steg 7: Python Code

En annan disclaimer: Jag är inte heller en datavetare eller programmerare, än mindre en Python expert. Om koden nedan ser hemskt, ineffektiva eller bara får du krypa, gärna skicka en länk till bättre kod, för att människor läser detta i framtiden.

Uppdatering 12/13/2013: se mmoon's kommentar nedan en länk till lite nättare kod.

Nu när du har kretsen byggt, är det dags att börja använda Raspberry Pi! Detta är en annan del som förvirrande för första gången Raspberry Pi användaren - det inte var direkt uppenbart hur man faktiskt styra GPIO stiften, eftersom det tydligen är mer än ett sätt att göra det. En Google-sökning på "raspberry pi gpio python" avslöjar flera olika tutorials och Python-paket som du kan hämta. Du kan också Kontrollera stiften direkt från en terminal utan att använda Python alls. Så, det tog mig ett tag att lista ut att den standard Raspbian distribution redan kommer med en Pythonmodul för kontrollerande GPIO stift. Phew!

Kom ihåg att jag antar att du redan har en Raspberry Pi och kör denna punkt, med Raspbian, som kommer med både Python 2.x och 3.x (från och med December 2013). Jag skrev koden i Python 3.2.3 med IDLE 3 (integrerad utvecklingsbibliotek) - det är en genväg för det på Raspbian standardskrivbordet.

För att köra koden:

1. öppna en terminal ("LXTerminal" ikonen på skrivbordet), skriva sudo idle3, och slå till gå in. Detta går IDLE "som root", som krävs för GPIO tillgång med Python.
2. Ladda ner christmas_timer.py (nedan) och sedan öppna den i IDLE 3, eller skapa en ny Python fil och kopiera och klistra in koden nedan.
3. ta en minut att titta på koden och kommentarer. Det enda du behöver redigera är avsnittet mot i början med alla de "på" och "off" gånger (MonOn MonOff, TueOn, etc).
4. du är nu nästan redo att köra koden! Men först... (gå till nästa steg)

# Raspberry Pi anpassade Christmas light timer

# import GPIO modul
importera RPi.GPIO som GPIO

# Ställ in GPIO pins som resultat
# Denna konvention är för "P1" header pin konventionen
# där stiften börjar med P1 i övre vänstra
# och gå till P26 i nedre högra, med odds i den
# vänstra kolumnen och jämnar i den högra kolumnen.
# Så, pins P1-11 och P1-12 motsvarar GPIO17 och
# GPIO18 respektive.
GPIO.setmode (GPIO. STYRELSEN)
GPIO.setup (11, GPIO. OUT)
GPIO.setup (12, GPIO. OUT)

# import datum och tid moduler
importera datetime
Importera tid

# Ange de tider du vill ha lamporna att slå på och av för
# varje dag i veckan. Standard är för ljus för att slå på på
# 5:30 pm och iväg kl 10:30 på vardagar, på kl 5:00 och av
# kl 11:30 på helger. Observera att detta använder 24-timmarsformat.

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)

# Lagra dessa tider i en matris för enkel åtkomst senare.
OnTime = [MonOn, TueOn, WedOn, ThuOn, FriOn, SatOn, SunOn]
OffTime = [MonOff, TueOff, WedOff, ThuOff, FriOff, SatOff, SunOff]

# Ställ in en "väntetid" i sekunder. Detta säkerställer att programmet pausar
# kort efter det slår ljuset på eller av. Annars, sedan den
# loop kommer att utföra mer än en gång per sekund, det kommer att försöka hålla
# att när de redan är på (eller inaktivera när de är
# redan borta.

waitTime = 3

# Starta loopen som kommer att köra tills du avbryter programmet eller vända
# av din Raspberry Pi.

samtidigt sant:

# få den aktuella tiden i timmar, minuter och sekunder
currTime = datetime.datetime.now()
# få den aktuella dagen i veckan (0 = måndag, 1 = tisdag, 2 = onsdag...)
currDay = datetime.datetime.now().weekday()

#Check att se om det är dags att sätta lamporna på
om (currTime.hour - OnTime [currDay] .hour == 0 och
currTime.minute - OnTime [currDay] .minute == 0 och
currTime.second - OnTime [currDay] .second == 0):

# Ange GPIO PIN-koden till hög, motsvarighet till
# att trycka på knappen på fjärrkontrollen
GPIO.output (11, GPIO. HÖG)

# vänta under en mycket kort tid sedan ställa
# värdet till låg, motsvarande släpper den
# ON knappen
Time.Sleep(.5)
GPIO.output (11, GPIO. LÅG)

# vänta några sekunder så att slingan inte kommer
# tillbaka genom och tryck på knappen "on" igen
# medan lampor ae redan på
Time.Sleep(waitTime)

#check att se om det är dags att stänga av belysningen
Elif (currTime.hour - OffTime [currDay] .hour == 0 och
currTime.minute - OffTime [currDay] .minute == 0 och
currTime.second - OffTime [currDay] .second == 0):

# Ange GPIO PIN-koden till hög, motsvarighet till
# att trycka på OFF knappen på fjärrkontrollen
GPIO.output (12, GPIO. HÖG)

# vänta under en mycket kort tid sedan ställa
# värdet till låg, motsvarande släpper den
# AV-knapp
Time.Sleep(.5)
GPIO.output (12, GPIO. LÅG)

# vänta några sekunder så att slingan inte kommer
# tillbaka genom och tryck på "off" knappen igen
# medan lampor ae redan borta
Time.Sleep(waitTime)

Se Steg
Relaterade Ämnen

Att bygga robotar med Raspberry Pi och Python

målet med denna handledning är att hjälpa dig att börja programmering med Python att styra din Arduino robotar med en Raspberry PI. Vi går över grunderna som installation och några enkla exempel att styra din robot från en Python GUI från Raspberry P...

IBeacon porttelefon med Raspberry Pi och Azure

I slutet av mars gick jag till en hackathon på Universal Studios. Vi skapat ett system där gäster kunde förbifartsleden kö linjen genom att fylla i en serie som skulle leda dem runt landet Ritten är i där den genomsnittliga sluttid var 66% av nuvaran...

Lilypad Arduino jul tröja med blinkande ljus och musik

jag tar en kurs här terminen kallas ungdom och teknik i bibliotek, där jag fick i uppdrag att designa något med en Lilypad utveckling styrelse. I följande steg kommer jag gå igenom hur jag skapade min jul tröja med blinkande ljus och musik.Steg 1: ma...

Hur man bygger en människor räknare med Raspberry Pi och Ubidots

I detta enkla projekt använder vi en rörelsesensor för att upptäcka om ett objekt passerar framför våra Raspberry Pi. Sedan ska vi räkna hur många gånger det händer, och skicka det här värdet till Ubidots.Kundräknare är vanligtvis dyra enheter använd...

Aeroponics med Raspberry Pi och luftfuktighetsgivaren

Detta instructable kommer att lära dig hur man installerar en Aeroponics systemet som kontrolleras av Raspberry Pi. Aeroponics är växtodling teknik som har rötter hängande och är upphängd i luften. Näringslösning som skickas till dem i form av en fin...

2 sätt byta med Raspberry PI och Berry IO

Min allra första instructable...Jag postat en video på youtube på ett projekt jag gjorde under min semester, här är en länk:Efter mycket mail och frågor från människor som ber om detaljerna till denna 2 sätt byta, jag bestämde mig att utarbeta detta...

Kontrollera en stegmotor med Raspberry Pi och Piface

Uppdaterad April 2015Jag har gjort detta eftersom jag har hittat några projekt med hjälp av PiFace.Forumämnet på www.raspberrypi.org:http://www.raspberrypi.org/phpBB3/viewtopic.php?f=37&t=54314&p=413902Här är ett enkelt projekt som bara behöver en...

HumidorPi: En Smart Humidor på de billiga med Raspberry Pi och nod-röd

Detta är hur jag ändrade en standard 100 Cigar humidor konstant fuktighet och temperatur via WiFi. Pi del av projektet kan lätt anpassas för någon annan användning som kräver en temperatur och luftfuktighet sensor.Funktioner:• Total kostnad cirka 125...

NFC med Raspberry Pi och Arduberry

Arduberry är ett enkelt och billigt sätt att få Arduino sköldar till Raspberry Pi. Enheten är en sköld som glider över Raspberry Pi och tillåter dig att stapla och använda Arduino sköldar. Arduberry kräver ingen fysisk konfiguration att arbeta med de...

Morsealfabetet med Raspberry Pi och LED!

Detta kommer att komma igång med GPIO stiften på Raspberry Pi, använder ett API, och, naturligtvis, blinkande morsekod! När du har slutfört denna tutorial, du kan till exempel lära sig alla morsekod tecken, blinka din IP-adress vid start eller blink...

Enkla timelapse kamera med Raspberry Pi och en kaffe tin

Whi ssh pi t utveckla BerryCam jag trodde det skulle vara ganska coolt att skapa en timelapse kamera som kunde stå ute under en tid, att fånga en sekvens av bilder som kan vara senare gått samman till ett videoklipp. Från början tankar vände sig till...

Luta vinkel visualisering med Edison, accelerometer och Python

Jag köpte nyligen en Intel Edison arduino ombord. Efter blinkande ombord LED, ville jag göra något lite mer intressant men ganska enkelt. Efter att ha läst online, beslutade jag accelerometer baserad tilt avkänning.Varför accelerometer du frågar, väl...

Hemma temperaturövervakning med Raspberry Pi och Thingspeak (med BMP180)

Det är en ålder av IoT.Each dagen mer och fler människor ansluter sig till molnet. Så verkade det som göra orätt att temperatur/tryck givare och en raspberry pi B + (en nästan 1GHz pumpas upp odjuret) som låg runt tabellen dator. De behövs för att ko...

AirPlay Radio med Raspberry Pi och WiFi

Innan jag började arbeta för Pelagicore vann jag två Raspberry Pi: s (kort RP) som de sponsrade. En eftersom jag var en av de första människorna på foss-gbg epostlistan som de började. Det är för folk från Göteborg och omgivning som vill gå med andra...

Närvaro system med Raspberry Pi och NFC Tag reader

med min nya leksak Raspberry pi jag har gjort flera tester-projekt frånInstructables, adafruit etc. Men efter ett tag blev det tråkigt och jag har börjat letar efter något faktiskt bra för mig. Min tidigare lekplats var min nya telefon flera veckor s...

Timelapse med Raspberry Pi och hans kamera

Denna video var exempel.du aldrig drömt om att göra videor i timelapse, att filma en händelse i accelererad?Denna handledning kommer syftar till att ställa in kameran, sedan använda den för att göra en timelapse ta vanliga bilder och sedan montera de...

Upptäcka temperatur och luftfuktighet med Raspberry Pi och HTU21 / SHT21

Undrar vad är vädret? Låt oss kolla upp det med din Raspberry Pi! Denna handledning innehåller steg för steg instruktioner hur man upptäcker temperatur och luftfuktighet med smuts billig I2C sensor HTU21D och öppen källkod på din Raspberry Pi.Om det...

Ännu en annan Exploration Rover web-kontrollerade (med Raspberry Pi och Arduino. Android, Iphone, PC, MAC compatible)

Här är en annan exploration rover, byggt i 1 timme eller mindre, utan det krävs. Everthing du behöver finns i förpackningen! Det ger dig grund att bygga och förbättra din egen rover.RaspberryPi med wifi USB-adapter, USB-webbkamera, web-server (apache...

Smart hemautomation webserver på OpenWRT router WR703N kopplats ihop till Arduino, jämfört med Raspberry Pi och Ubuntu

Hämta WR703N Digest (340MB zip-fil):https://sourceforge.net/projects/wr703n/---------------------------------------------------------------------------------------------------------------------------------Kära läsare,Det finns många Linux styrelser p...