Smarte hjemme-dingser for dyre?  Bygg din egen!  Slik lager du en lysfølende smart bryter med Raspberry Pi og IFTTT.

Slik bygger du en lyssensorende smartbryter med bringebær Pi og IFTTT

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 belysningssystem? 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. Hva du tr

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 belysningssystem?

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.

Hva du trenger

Komponenter for den lette sensing-smarte bryteren er enkle å få. Du vil trenge:

  • Alle modeller Raspberry Pi som kjører Raspbian.
  • Et stafettbrett, lett å finne på Amazon.
  • En Adafruit TSL2561 lysføler.
  • Jumpertråder.
  • Noen lys å automatisere!

Slik fungerer en lysfølende smartbryter

Ved å bruke et relé på samme måte som vårt automatiske garasjeport-prosjekt. Hvordan automatisere garasjeporten din med IFTTT og Raspberry Pi Hvordan automatisere garasjeporten din med IFTTT og Raspberry Pi. I denne opplæringen viser vi deg hvordan du automatiserer garasjeporten din garasjeport med ingenting mer enn en Raspberry Pi og IFTTT. Les mer, kan du programmere en Raspberry Pi for å slå av og på en lyskrets til faste tider. Hvis du legger en lysføler til miksen, betyr det at Pi kan oppdage lysnivået i omgivelsene, og velge å 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:

  1. Et programmert skjema.
  2. Det omgivende lysnivået.
  3. Et overstyringssignal sendt over nettverket.

Trinn 1: Koble Raspberry Pi til stafetten

Hvis du er ukjent med å bruke GPIO, kan du begynne med å lese Alt du trenger å vite om Raspberry Pi GPIO Pins.

Kontroller først om stafettkortet ditt har en genser som forbinder VCC- og JD-VCC-pinnene sammen. Hvis den har det, fjerner du den.

JD-VCC til VCC relétavle-genser

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å stafettkortet
  • Pi Pin 17 (3.3v) til VCC på stafetttavlen.

Raspberry Pi Zero W koblet til et stafettkort

Trinn 2: Koble til lysstyrkesensoren

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

Raspberry Pi Zero W koblet til TSL2561 lux sensor

Trinn 3: Konfigurer og installer avhengigheter

Før du går videre, må du sjekke at I2C er aktivert på Raspberry Pi (den er deaktivert som standard). Skriv inn følgende i terminalen:

 sudo raspi-config 

Velg Grensesnittalternativer> P5 I2C, og velg deretter Ja .

Grensesnittalternativer i raspi-konfigurasjonsverktøyet

Trykk Enter og velg Fullfør for å avslutte konfigurasjonsskjermen. Start Pi på nytt for at endringen skal tre i kraft:

 sudo reboot 

Noen avhengigheter er nødvendige for at Pi skal kunne kommunisere med sensorkortet. Skriv inn følgende kommandoer:

 sudo apt-get update sudo apt-get install -y python-smbus sudo apt-get install -y i2c-tools 

Du kan sjekke at alt fungerer ved å skrive:

 sudo i2cdetect -y 1 

Hvis avhengighetene dine er installert og lux-sensoren er riktig tilkoblet, ser du et svar som dette:

IC-Detect verktøy rapportering lux sensor adresse

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 ~/lighting cd ~/lighting 

Last deretter ned flaske, et lett rammeverk som vil lage en enkel webserver på din Pi. Du bruker 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 ikke allerede har Git installert, kan du legge til det nå:

 sudo apt-get install git 

Klon nå to biblioteker, slik:

 git clone https://github.com/adafruit/Adafruit_Python_GPIO.git git clone https://github.com/adafruit/Adafruit_Python_PureIO.git 

Og til slutt, lag et testskript ved å opprette en ny fil:

 nano test.py 

Lim inn denne koden (med tillatelse fra Adafruit):

 #!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function, unicode_literals from tsl2561 import TSL2561 if __name__ == "__main__": tsl = TSL2561(debug=True) print(tsl.lux()) 

Trykk Ctrl + X for å lagre, følg 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 skal lyse når det blir mørkt om kvelden, og deretter gå av rundt midnatt for å spare strøm. De kan 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 dine 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å.

Smart belysning skript plan

Skriptene vil bli planlagt kjørt ved hjelp av cron-jobber. Hvordan planlegge oppgaver i Linux med Cron og Crontab Hvordan planlegge oppgaver i Linux med Cron og Crontab. Muligheten 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 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 kalt lowlux for å bestemme på hvilket tidspunkt det er mørkt nok til å slå på lysene. Du kan endre den til noe som passer til din egen installasjon ved å endre verdien i denne linjen nær toppen av onzone.py:

 lowlux = 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:

  1. Slå på lysene i et antall minutter uansett omgivelseslysnivå.
  2. Slå av lysene.
  3. Finn ut om lysene for øyeblikket er av eller på.
  4. 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 automatiseringsskriptene 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, endrer du banen deretter.

Liste over alle timene der du vil at lysene skal lyse når det er mørkt i 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

 sudo reboot 

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 samme nettverk som Pi-enheten din, 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étavlen i stedet for en vanlig bryter, slik:

Sett reléet inn i belysningskretsen

Endelig kan du installere lux-sensoren din et sted der den fanger lysets omgivelsesnivå. Vær oppmerksom på at TSL2561 vil melde seg som 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 inn 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.

IFTTT Applet for å koble smarte lys til Alexa

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-prosjektene. 10 rare Raspberry Pi-prosjekter. 10 rare Raspberry Pi-prosjekter. Det 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.

Utforsk mer om: IFTTT, Raspberry Pi, Smart Lighting.