Hvordan bygge automatiske inngangslampe med en Raspberry Pi
HvordanRetur hjem til et mørkt hus kan være deprimerende, så la oss bruke noen få hylle komponenter for å bygge et lyst velkommen hjem prosjekt ved hjelp av Raspberry Pi.
Du vil trenge:
- Enhver Raspberry Pi Zero, A +, B +, Raspberry Pi 2 eller Raspberry Pi 3
- Den nyeste Raspbian OS
- Energenie stikkontakter og Pi Remote
- En reed-bryter
- Jumper ledninger
- magneter
- Alt koden kan bli funnet her
Prosjektet
Først må vi knytte Energenie til de første 26 pinnene til GPIO på din nedslitte Raspberry Pi. (Til referanse er pin 1 tappen nærmest SD-kortsporet.) Brettet vil passe pent over Raspberry Pi uten at deler henger over.
Fest nå en jumperkabel til jenter til GPIO20 og GND gjennom de ubrukte GPIO-pinnene. (Hvis du ønsker å utvide jumperkablene, bruk bare kabler fra mann til kvinne til ønsket lengde er nådd.) På den ene enden av den kvinnelige jumperkabelen festes reed-bryteren og deretter den andre.
Mottakeren i Energenie-enheten har et relé for å slå strømmen på og avVed hjelp av klebrig, støttet plast festes bryteren til en dørramme og fest magneter til bryteren, men på selve døren slik at bryteren er stengt når døren er lukket.
Start din Raspberry Pi og åpne en terminal. For å installere Energenie-biblioteket for Python 3 bruk $ sudo pip-3.2 installere energenie.
Når du har installert, åpner du en ny Python 3-sesjon via programmeringsmenyen. For å koble våre Energenie-enheter med vår Raspberry Pi åpne IDLE-skallet og skriv fra energenie import switch_on, switch_off. Nå koble til din Energenie og trykk på den grønne knappen i seks sekunder.
Energenie-enheten passer pent over de første 26 pinnene i Pi 2 eller over alle GPIO-pinnene i en eldre Raspberry PiDette tvinger det til å lete etter en ny sender. Tilbake i ditt IDLE-skall, skriv inn switch_on (1). Dette vil para din Raspberry Pi til enheten og betegne den '1' og prosessen kan gjentas for fire enheter. Med IDLE åpent klikker du på Arkiv> Nytt vindu og lagrer arbeidet som entrylight.py.
Vi starter med å importere bibliotekene for dette prosjektet:
fra energenie import switch_on, switch_off
importtid
importer RPi.GPIO som GPIO
Energenie-biblioteket kontrollerer enhetene for våre lys, og tiden brukes til å kontrollere hvor lenge enhetene er drevne og RPi.GPIO er biblioteket som brukes til å jobbe med GPIO.
GPIO.setmode (GPIO.BCM)
GPIO.setup (20, GPIO.IN, GPIO.PUD_UP)
slå av()
Deretter satte vi GPIO-en til å bruke Broadcom pin-kartleggingen og satte GPIO20 til å være en inngang med dens indre motstand dratt høyt, og snu strømmen til den nålen. Endelig slår vi av Energenie-enhetene for å sikre at de er klare.
Hovedkoden bruker et forsøk ... unntatt struktur for å vikle rundt en uendelig sløyfe. Denne delen av koden krever at du plasserer ordene nøyaktig for hver linje, så sørg for at det ser ut som følgende bilde.
Inne i løkken bruker vi en betinget utsagn for å sjekke om inngangen har blitt utløst, det vil si at døren er åpnet. Hvis sant er enhetene slått på i 30 sekunder og slått av igjen.
Vi fullfører betinget utsagn med en annen betingelse. Dette vil slå enhetene av og sløyfe kontinuerlig. Vi lukker forsøket ... bortsett fra struktur med en metode for å lukke prosjektet, trykker CTRL + C på prosjektet og slår av enhetene dersom behovet oppstår.
Med koden fullført, lagre arbeidet ditt og klikk på Kjør> Kjør modul for å teste koden.
Energenie
Styring av høyspenningsenheter er et prosjekt for de som kjenner sine ting, men med Energenie kan vi redusere risikoen betydelig.
Energenie-enheter i kjernen er bare 433MHz-mottakere som styrer et relé; en komponent som bruker lav spenning for å styre en magnetbryter i en høyspentkrets. På Raspberry Pi har vi en sender som kan instruere mottakerne å slå på og av.
Energenie-enheter er en sikker måte å kontrollere strømnettet på. Standard Python-biblioteket for Energenie er ganske tungvint, og krever at brukeren kontrollerer GPIO-pinnene som brukes av senderen for å koble til hver enhet og utstede riktig instruksjon.
Dette biblioteket har blitt gjort mye enklere takket være Ben Nuttal, medlem av Raspberry Pi Foundations utdanningsteam, og Amy Mather, kjent for mange som Mini Girl Geek, en teenage hacker og maker. Dette forbedrede biblioteket, som vi har brukt i denne opplæringen, krever at vi kjenner nummeret til hver enhet og kan utstede en instruksjon til en eller alle enheter samtidig.
Biblioteket finnes på GitHub, hvis du ønsker å inspisere koden og lære mer om hvordan det fungerer.
- Likte denne artikkelen? Utvid din kunnskap om Linux, få mer fra koden din, og oppdag de nyeste åpen kildekodeutviklingen i Linux Format. Les vår sampler i dag og dra nytte av tilbudet på innsiden.