Annonse
Dusk-til-dawn-brytere og timer-brytere er begge nyttige måter å automatisere lysene på. Ville det ikke være flott om du kunne kombinere de to, eller til og med koble dem opp på internett for et virkelig smart lyssystem?
En Raspberry Pi, et relé, en lyssensor og en strøk med kode er alt du trenger for å oppnå denne automatiske belysningsnirvanaen på en fjærring.
Det du trenger
Komponenter for den lette sensing-smarte bryteren er enkle å få. Du vil trenge:
- Enhver modell Raspberry Pi som kjører Raspbian.
- EN stafettstyret, lett å finne på Amazon.
- en Adafruit TSL2561 lysføler.
- Jumpertråder.
- Noen lys å automatisere!
Slik fungerer en lysfølende smartbryter
Ved å bruke stafett på samme måte som vår automatisk garasjeportåpnerprosjekt Slik automatiserer du garasjeporten din med IFTTT og Raspberry PiI denne opplæringen viser vi deg hvordan du automatiserer garasjeporten din ved å bruke noe mer enn en Raspberry Pi og IFTTT. Les mer , kan du programmere en Raspberry Pi for å slå av og på en belysningskrets til faste tider. Hvis du legger en lysstyrkesensor til miksen, betyr det at Pi kan oppdage det omgivende lysnivået, og velger å slå på lysene bare når det virkelig trengs.
Fordi en Pi er en liten datamaskin som kan kobles til et nettverk, kan du også konfigurere den til å bli kontrollert over internett. De smarte lysene dine har tre innganger for å bestemme når de tennes:
- Et programmert skjema.
- Det omgivende lysnivået.
- Et overstyringssignal sendt over nettverket.
Trinn 1: Koble Raspberry Pi til stafetten
Hvis du er ny på å bruke GPIO, kan du begynne med å lese Alt du trenger å vite om Raspberry Pi GPIO Pins.
Først må du sjekke om stafettkortet ditt har en genser som forbinder VCC og JD-VCC pinnene sammen. Hvis den har det, fjerner du den.
Når alt er slått av, kobler du stafettkortet til din Pi som følger:
- Pi Pin 2 (5v) til JD-VCC på stafetttavlen.
- Pi Pin 6 (GND) til GND på stafetttavlen.
- Pi Pin 15 (GPIO 22) til IN1 på stafetttavlen
- Pi Pin 17 (3.3v) til VCC på stafetttavlen.
Trinn 2: Koble til lyssensoren
TSL2561 er en lyssensor som kan oppdage infrarødt lys, fullspektrum og menneskesynlig lys. Det kan sende en veldig presis digital lesing til Raspberry Pi. Sensoren rapporterer lysnivået i en skala fra 0,1 (ingen lys) til 40 000 (lys sol).
TSL2561-styret snakker med Raspberry Pi ved å bruke i2c-protokollen. I2C trenger bare to tilkoblinger, en for en klokke for å holde de to enhetene synkronisert, og en for dataene som overføres. Selvfølgelig trenger lux-sensoren også litt strøm, så det er fire tilkoblinger du kan lage totalt:
- Koble Pi Pin 1 (3.3v) til Vin (eller VCC) på lux-sensoren
- Koble Pi Pin 3 (SDA) til SDA på lux-sensoren
- Koble Pi Pin 5 (SCL) til SCL på lux-sensoren
- Koble Pi Pin 9 (GND) til GND på lux-sensoren
Trinn 3: Konfigurer og installer avhengigheter
Før du går videre, må du kontrollere at I2C er aktivert på Raspberry Pi (den er deaktivert som standard). Skriv inn følgende i terminalen:
sudo raspi-config
Å velge Grensesnittalternativer> P5 I2C, velg deretter Ja.
Truffet Tast inn velg deretter Bli ferdig for å gå ut av konfigurasjonsskjermen. Start Pi på nytt for at endringen skal tre i kraft:
starte på nytt
Noen avhengigheter er nødvendige for at Pi skal kunne kommunisere med sensorkortet. Skriv inn følgende kommandoer:
sudo apt-get oppdatering. sudo apt-get install -y python-smbus. sudo apt-get install -y i2c-verktøy
Du kan sjekke at alt fungerer ved å skrive:
sudo i2cdetect -y 1
Hvis avhengighetene dine er installert og lux-sensoren din er riktig tilkoblet, ser du et svar som dette:
Her rapporterer verktøyet at det har funnet en I2C-enhet (lux-sensoren) på I2C-adresse 39.
Du er ikke helt ferdig med avhengighetene ennå. Du trenger også noen få biblioteker. Lag først en mappe for å oppbevare alt relatert til dette prosjektet i:
mkdir ~ / belysning. cd ~ / belysning
Last deretter ned flaske, et lett rammeverk som vil lage en enkel webserver på Pi-en din. Du vil bruke det til å kontrollere lysene dine fra nettet.
wget https://bottlepy.org/bottle.py
De andre bibliotekene du trenger er på Github, så hvis Raspberry Pi-en ikke allerede har Git installert, kan du legge til den nå:
sudo apt-get install git
Klon nå to biblioteker, slik:
git klon https://github.com/adafruit/Adafruit_Python_GPIO.git. git klon https://github.com/adafruit/Adafruit_Python_PureIO.git
Og til slutt lager du et testskript ved å opprette en ny fil:
nano test.py
Lim inn denne koden (med tillatelse fra Adafruit):
#! / usr / bin / env python. # - * - koding: utf-8 - * - fra __future__ import absolute_import, division, print_function, unicode_literals. fra tsl2561 import TSL2561. Hvis __name__ == "__main__": tsl = TSL2561 (feilsøking = True) skriv ut (tsl.lux ())
trykk Ctrl + X for å lagre ved å følge instruksjonene på skjermen for å avslutte.
Når du er ferdig, kjører du testskriptet:
python test.py
Hvis alt er installert og fungerer, får du tilbake et nummer. Dette tallet er en lux-lesing fra sensoren. Prøv å sperre sensoren, eller flytt den slik at den blir mer eller mindre lys. Kjør deretter testskriptet igjen og se hvordan antallet endres.
Trinn 4: Lag automatiseringsskriptene
Raspberry Pi slår på lysene når det blir mørkt, men slår dem også av på bestemte tidspunkter. For eksempel vil du kanskje at lysene dine skal tennes når det blir mørkt om kvelden, og deretter gå av rundt midnatt for å spare strøm. De kunne komme på igjen tidlig på morgenen, for deretter å slå seg av når det blir lett.
For å administrere en plan med flere tidssoner som dette, er det to forskjellige skript. En (onzone.py) kjører hvert minutt i løpet av de gangene du vil at lysene skal være på hvis det er mørkt. Den andre (offzone.py) kjører hvert minutt i løpet av tider du vil at lysene skal være slukket uansett lysnivå.
Skriptene vil bli planlagt kjørt bruker cron jobber Hvordan planlegge oppgaver i Linux med Cron og CrontabEvnen til å automatisere oppgaver er en av de futuristiske teknologiene som allerede er her. Hver Linux-bruker kan dra nytte av planleggingssystem og brukeroppgaver, takket være cron, en brukervennlig bakgrunnstjeneste. Les mer . Ved å velge hvilke timer på dagen og natten hvert skript kjøres, vil det være enkelt å stille inn timene som lysene dine skal slås på automatisk. Du kan sette opp så mange av og på perioder du vil.
I tillegg til skript for automatisk kontroll av lysene, er det et tredje skript for å håndtere overstyringssituasjoner. Dette lar deg slå på lysene eksternt uavhengig av det omgivende lysnivået.
Skript 1: ON-sonen
Dette Python-skriptet kjøres hvert minutt på dagen du vil at lysene skal tennes hvis det er mørkt. Last ned skriptet ved å kopiere og lime inn denne kommandoen i terminalen:
wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
Hver gang onzone.py kjøres, vil den få en lux-verdi fra sensoren for å se om det er mørkt. Hvis den er det, vil den deretter sjekke om lysene er på eller av. Hvis de er slått av, vil det slå dem på. Hvis det ikke er mørkt, vil skriptet se om lysene er på. Hvis de er det, vil det slå dem av med mindre de er blitt overstyrt.
Skriptet bruker en variabel som heter lowlux å bestemme på hvilket tidspunkt det er mørkt nok til å slå på lysene. Du kan endre den til noe som passer for din egen installasjon ved å endre verdien i denne linjen nær toppen av onzone.py:
lavluks = 50
Skript 2: OFF-sonen
Dette skriptet kjøres hvert minutt på dagen du vil at lysene skal være av, med mindre de er blitt overstyrt. Last ned skriptet:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Dette skriptet bryr seg ikke om hvor lyst eller mørkt det er. Jobben er ganske enkelt å slå av lysene hvis de er på (med mindre de er blitt overstyrt).
Skript 3: Override Server
Dette skriptet oppretter en enkel webtjeneste som kan godta kommandoer for å utføre følgende handlinger:
- Slå på lysene i et antall minutter uavhengig av lysnivået i omgivelsene.
- Slå av lysene.
- Finn ut om lysene for øyeblikket er på eller av.
- Finn ut hvor mye lenger lysene skal være på når de har blitt overstyrt.
Last ned skriptet:
wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Før du går videre til neste trinn, kjører du offzone.py-skriptet slik:
python offzone.py
Dette vil lage kontrollfilene som skriptene bruker for å holde oversikt over alt.
Trinn 5: Planlegg skriptene
Raspberry Pi-enheten din kan kjøre automatiseringsskript med cron. Sett opp planen slik:
sudo crontab -e
Lim inn disse to linjene i tekstredigeringsprogrammet:
* 7,8,9,17,18,19,20,21,22,23 * * * python /home/pi/lighting/onzone.py> NULL. * 0,1,2,3,4,5,6,10,11,12,13,14,15,16 * * * python /home/pi/lighting/offzone.py> NULL
Merk: Hvis brukernavnet du logget på Raspberry Pi med, ikke var standard pi, endre banen deretter.
Liste over alle timene der du vil at lysene skal lyse når det er mørkt på første linje. Alle timene der du vil ha lysene slukket går i andre linje.
Sett nå overstyringsskriptet til å kjøre automatisk når Pi starter opp:
sudo nano /etc/rc.local
Lim inn denne linjen nederst i filen, lagre og avslutt deretter:
nohup python /home/pi/lighting/lightserver.py &
Til slutt, start Raspberry Pi på nytt slik at du kan sjekke at serverskriptet lastes som det skal
starte på nytt
Trinn 6: Test reléet
Før du kobler til lysene dine, må du teste at alt fungerer ved å bruke overstyringsfunksjonen. Skriv inn følgende i en nettleser i det samme nettverket som din Pi, og erstatt IP-adressen med adressen til din egen Raspberry Pi:
11.22.33.44:1234/overrideon/3
Hvis alt er bra, vil du høre stafettklikk, og nettleseren vil svare at lysene har blitt slått på i tre minutter.
Mens reléet er lukket, kan du teste de andre overstyringsfunksjonene. Dette forteller deg hvor mange minutter lysene vil være på på grunn av overstyringen:
11.22.33.44:1234/getoverrideremaining
Dette skulle fortelle deg at lysene er på:
11.22.33.44:1234/lightstatus
Endelig kan du slå dem av igjen med:
11.22.33.44:1234/overrideoff
Reléet klikker når det åpnes.
Trinn 7: Koble til lysene
Slå av og koble fra Raspberry Pi før du kobler lysene til reléet. Bruk de normalt åpne (NO) kontaktene på relékortet i stedet for en vanlig bryter, slik:
Endelig kan du installere lux-sensoren din et sted der den fanger lysets omgivelsesnivå. Vær oppmerksom på at TSL2561 vil rapportere å være mettet hvis den møter direkte sterkt sollys, så det er best å holde den i skyggen hvis mulig.
Flere bringebær Pi-prosjekter du kan prøve
Å overvinne det nye oppsettet for smart belysning ved å skrive kommandoer i en nettleser er ganske tungvint. En bedre måte er å koble opp noe som en Amazon Echo for å gjøre ting enklere. Kombinere Alexa-tjenesten og Webhooks-tjenesten på IFTTT er en enkel måte å legge til talestyring på.
Se vår guide til bruk av IFTTT for å hjelpe deg i gang.
Et annet alternativ er å bruke Siri-snarveier. En enkelt snarvei med menyer kan spørre om statusen til lysene og bruke overstyringsfunksjonene for å slå dem av og på.
Hvis du likte dette prosjektet, må du huske å sjekke ut disse rare Raspberry Pi-prosjekter 10 rare Raspberry Pi-prosjekterDet er en gal forsker i hver av oss, og Raspberry Pi lar din indre lune komme ut og leke. Noen ganger blir ting rart. Virkelig rart. Les mer for flere ideer.
Hamish er en frilansskribent, livslang elsker av teknologi og bekreftet nerd. Han jobbet i IT-avdelingene til en rekke multinasjonale selskaper før han til slutt skjøt sjefen sin og gikk alene.