Kako izgraditi pametni prekidač osjetljiv na svjetlost s Raspberry Pi i IFTTT

  • Joseph Goodman
  • 0
  • 3228
  • 483
Oglas

Sumrak i prekidači vremenske zore su praktični načini za automatizaciju vaših svjetala. Ne bi li bilo sjajno ako biste to dvoje mogli kombinirati ili ih čak spojiti na Internet radi uistinu pametnog sustava rasvjete?

Raspberry Pi, relej, svjetlosni senzor i crtica koda su sve što je potrebno za postizanje ove automatske rasvjete nirvane na podmetanju.

Što će vam trebati

Dijelovi za vaš pametni prekidač osjetljiv na svjetlost lako su izvor. Trebat će vam:

  • Bilo koji model Raspberry Pi koji radi s Raspbian.
  • Relejna ploča, lako se može naći na Amazonu.
  • Senzor svjetline Adafruit TSL2561.
  • Jumper žice.
  • Neka svjetla za automatizaciju!

Kako djeluje pametni prekidač osjetljiv na svjetlost

Korištenjem releja na isti način kao i naš projekt automatskog otvarača garažnih vrata Kako automatizirati svoja garažna vrata pomoću IFTTT-a i maline Pi Kako automatizirati svoja garažna vrata pomoću IFTTT-a i maline Pi U ovom ćete vodiču pokazati kako automatizirati svoje garažna vrata koristeći samo Raspberry Pi i IFTTT. , možete programirati Raspberry Pi za uključivanje i isključivanje kruga rasvjete u određeno vrijeme. Dodavanje senzora svjetline u mješavinu znači da Pi može otkriti razinu ambijentalne svjetlosti i odabrati upaliti svjetla samo kada su stvarno potrebna.

Budući da je Pi maleno računalo koje se može povezati s mrežom, možete ga postaviti i za kontrolu putem interneta. Vaša će pametna svjetla imati tri ulaza za određivanje kada se uključe:

  1. Programirani raspored.
  2. Razina svjetla u okolini.
  3. Signal prekoračenja poslan preko mreže.

Korak 1: Spojite Raspberry Pi na relej

Ako ste novi u korištenju GPIO-a, započnite s čitanjem svega što trebate znati o Raspberry Pi GPIO iglicama.

Prvo provjerite ima li na vašoj relejnoj ploči skakač koji spaja VCC i JD-VCC pinove zajedno. Ako ga ima, izvadite ga.

Sa isključenim napajanjem, povežite relejnu ploču na svoj Pi na sljedeći način:

  • Pi Pin 2 (5v) na JD-VCC na relejnoj ploči.
  • Pi Pin 6 (GND) u GND na ploči releja.
  • Pi Pin 15 (GPIO 22) do IN1 na ploči releja
  • Pi Pin 17 (3.3v) za VCC na ploči releja.

Korak 2: Spojite senzor svjetlosti

TSL2561 je senzor svjetla koji može otkriti infracrvenu svjetlost, puni spektar i svjetlost vidljivu za ljude. Raspberry Pi može poslati vrlo precizno digitalno čitanje. Senzor izvještava o razini svjetlosti na skali od 0,1 (bez svjetla) do 40 000 (jako sunce).

Ploča TSL2561 razgovara s Raspberry Pi koristeći i2c protokol. I2C trebaju samo dvije veze, jednu za sat kako bi se dva uređaja sinkronizirala, a jednu za prijenos podataka. Naravno, luksuzni senzor također treba malo napajanja, tako da postoje četiri veze za potpuno povezivanje:

  • Spojite Pi Pin 1 (3.3v) na Vin (ili VCC) na lux senzoru
  • Spojite Pi Pin 3 (SDA) na SDA na lux senzoru
  • Spojite Pi Pin 5 (SCL) na SCL na lux senzoru
  • Spojite Pi Pin 9 (GND) na GND na lux senzoru

Korak 3: Konfigurirajte i instalirajte ovisnosti

Prije nego što nastavite, morat ćete provjeriti je li I2C na vašem Raspberry Pi omogućen (po defaultu je onemogućen). Unesite sljedeće:

sudo raspi-config

Odaberi Opcije sučelja> P5 I2C, a zatim odaberite Da.

Pogoditi Unesi zatim odaberite Završi za izlazak iz konfiguracijskog zaslona. Ponovo pokrenite svoj Pi da bi promjena nastupila na snazi:

sudo reboot

Neke su ovisnosti potrebne da bi Pi mogao komunicirati s senzorskom pločom. Upišite sljedeće naredbe:

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

Možete provjeriti da li sve radi upisivanjem:

sudo i2cdetect -y 1

Ako su vaše ovisnosti instalirane i vaš lux senzor ispravno spojen, vidjet ćete takav odgovor:

Ovdje uslužni program izvještava da je pronašao I2C uređaj (lux senzor) na I2C adresi 39.

Nisi još uvijek gotov sa ovisnostima. Trebat će vam i nekoliko knjižnica. Prvo napravite mapu u kojoj će se sve što je povezano s ovim projektom držati u:

mkdir ~ / osvjetljenje cd ~ / osvjetljenje

Zatim preuzmite bocu, lagani okvir koji će stvoriti jednostavan web poslužitelj na vašem Pi-u. Upotrijebit ćete ga za upravljanje svjetlima s weba.

wget https://bottlepy.org/bottle.py

Ostale biblioteke koje su vam potrebne nalaze se na Githubu, pa ako vaš Raspberry Pi već nema instaliran Git, dodajte ga sada:

sudo apt-get install git

Klonirajte dvije knjižnice, poput ove:

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

I na kraju, stvorite testnu skriptu stvaranjem nove datoteke:

nano test.py

Zalijepite ovaj kod (ljubazno od Adafruit):

#! / usr / bin / env python # - * - kodiranje: utf-8 - * - iz __future__ uvozi apsolutni_import, podjelu, print_function, unicode_literals iz tsl2561 uvoza TSL2561 ako __name__ == "__main__": tsl = TSL2561 (debug = True ) ispis (tsl.lux ())

tisak Ctrl + X za spremanje, slijedite upute na zaslonu za izlaz.

Kada završite, pokrenite testnu skriptu:

python test.py

Ako je sve instalirano i ispravno, vratit ćete broj. Taj je broj lux čitanje sa senzora. Pokušajte blokirati senzor ili ga premjestiti tako da dobije manje ili više svjetla. Zatim ponovo pokrenite testnu skriptu i pogledajte kako se mijenja broj.

Korak 4: Stvorite skripte za automatizaciju

Raspberry Pi će upaliti svjetla kada potamne, ali i isključiti ih u određeno vrijeme. Na primjer, možda želite da se vaša svjetla ugase kad zamrači uvečer, a onda se isključite oko ponoći kako biste uštedjeli struju. Mogli bi ponovo ući rano ujutro, a zatim se isključiti kad svjetlost postane svjetlost.

Postoje dvije različite skripte za upravljanje rasporedom s više vremenskih zona. Jedan (onzone.py) pokrenut će se svake minute u vrijeme kad želite da se ugase svjetla ako je mračno. Drugi (offzone.py) pokrenut će se svake minute u vrijeme kada želite da se svjetla ugase bez obzira na razinu svjetla.

Scenarije se planiraju izvoditi pomoću programa cron. Kako planirati zadatke u Linuxu s Cron i Crontab Kako planirati zadatke u Linuxu s Cron i Crontab. Mogućnost automatizacije zadataka jedna je od futurističkih tehnologija koja se već nalazi ovdje. Svaki korisnik Linuxa može imati koristi od zakazivanja sustava i zadataka korisnika, zahvaljujući cron-u, pozadinskoj usluzi jednostavnoj upotrebi. , Ako odaberete koji će se dan i noć pokrenuti svaki scenarij, lako će se odrediti sati kada se svjetla mogu upaliti automatski. Možete postaviti onoliko razdoblja uključivanja i isključivanja koliko želite.

Uz skripte za automatsko upravljanje svjetlima, postoji i treća skripta za upravljanje prevladavajućim situacijama. Ovo će vam omogućiti daljinsko uključivanje svjetla bez obzira na razinu ambijentalne svjetlosti.

Scenarij 1: Zona ON

Ovaj će Python skripta pokrenuti svaku minutu dana kad želite da se svjetla upale ako je mračno. Preuzmite skriptu kopiranjem i lijepljenjem ove naredbe u terminal:

wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py

Svaki put kada se pokrene onzone.py, od senzora će dobiti lux vrijednost da vidi je li mrak. Ako jeste, provjerit će jesu li svjetla uključena ili isključena. Ako su isključeni, uključit će ih. Ako nije mračno, skripta će vidjeti jesu li svjetla uključena. Ako jesu, isključit će ih, osim ako nisu preglasani.

Skripta koristi varijablu zvanu lowlux da se odlučite u kojem je trenutku dovoljno mračno da uključite svjetla. Možete ga promijeniti u nešto što je prikladno za vašu instalaciju mijenjanjem vrijednosti u ovom retku blizu vrha onzone.py:

lowlux = 50

Scenarij 2: OFF zona

Ova se skripta pokreće svake minute u danu za koje želite da svjetla ne budu ugašena, osim ako nisu preglasana. Preuzmite skriptu:

wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py

Ovu skriptu ne zanima koliko je svijetla ili tamna. Njegov je posao jednostavno isključiti svjetla ako su uključena (osim ako nisu preglasana).

Skripta 3: Nadjačajni poslužitelj

Ova skripta stvara jednostavnu web uslugu koja može prihvatiti naredbe za sljedeće radnje:

  1. Uključite svjetla na nekoliko minuta, neovisno o razini osvjetljenja.
  2. Ugasite svjetla.
  3. Saznajte jesu li svjetla trenutno uključena ili isključena.
  4. Saznajte za koliko dugo svjetla treba da ostanu uključena nakon što su ih preglasali.

Preuzmite skriptu:

wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py

Prije prijelaska na sljedeći korak, pokrenite offzone.py skriptu ovako:

python offzone.py

Tako će se stvoriti kontrolne datoteke koje skripte koriste za praćenje svega.

5. korak: Zakažite skripte

Vaš Raspberry Pi može pokrenuti skripte za automatizaciju pomoću cron. Postavite raspored ovako:

sudo crontab -e

Zalijepite ta dva retka u uređivač teksta:

* 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

Napomena: Ako korisničko ime s kojim ste prijavljeni u svoj Raspberry Pi, nije bilo zadano pobožan, u skladu s tim promijenite put.

Navedite sve sate gdje želite da se svjetla pale kad je mrak u prvom redu. Svi sati gdje želite isključiti svjetla idu u drugom redu.

Sada postavite skriptu za poništavanje da se automatski pokrene kad se Pi pokrene:

sudo nano /etc/rc.local

Zalijepite ovaj redak na dno datoteke, a zatim spremite i izađite:

nohup python /home/pi/lighting/lightserver.py &

Napokon, ponovno pokrenite Raspberry Pi kako biste mogli provjeriti je li se skripta poslužitelja učitala kako treba

sudo reboot

Korak 6: Ispitajte relej

Prije spajanja svjetala, testirajte da li sve funkcionira pomoću funkcije preglasavanja. Utipkajte sljedeće u web-preglednik na istoj mreži kao i vaš Pi te zamijenite IP adresu s adresom vlastitog Raspberry Pi:

11.22.33.44:1234/overrideon/3

Ako je sve u redu, čut ćete klik releja i preglednik će odgovoriti da su svjetla uključena tri minute.

Dok je relej zatvoren, možete testirati ostale funkcije poništavanja. Ovo će vam reći koliko još minuta svjetla će ostati zbog preglasavanja:

11.22.33.44:1234/getoverrideremaining

Ovo bi trebalo da vam govori da su svjetla upaljena:

11.22.33.44:1234/lightstatus

Na kraju, možete ih ponovo isključiti pomoću:

11.22.33.44:1234/overrideoff

Relej će kliknuti dok se otvori.

Korak 7: Spojite svjetla

Prije spajanja svjetala na relej, isključite i iskopčajte uređaj Raspberry Pi. Koristite normalno otvorene (NO) priključke na ploči releja umjesto redovnog prekidača, kao što je ovaj:

Konačno, možete postaviti svoj lux senzor na mjesto gdje će snimiti razinu ambijentalne svjetlosti. Imajte na umu da će TSL2561 prijaviti da je zasićen ako naiđe na izravnu sunčevu svjetlost, tako da je najbolje da ga držite u hladu ako je moguće.

Više Raspberry Pi projekata za probati

Daljinsko nadjačavanje vašeg novog pametnog postavljanja osvjetljenja unosom naredbi u web preglednik prilično je nezgodno. Bolji način je spojiti nešto poput Amazonskog odjeka kako bi stvari bilo lakše. Kombinacija usluge Alexa i Webhooks na IFTTT jednostavan je način dodavanja glasovnog upravljanja.

Pogledajte naš vodič za korištenje IFTTT koji će vam pomoći da započnete s radom.

Druga je mogućnost upotreba Siri prečaca. Jedna prečac s izbornicima može postaviti stanje svjetla i pomoću funkcija za poništavanje ih uključiti i isključiti.

Ako ste uživali u ovom projektu, svakako pogledajte ove čudne Raspberry Pi projekte 10 Najčudniji Raspberry Pi Projekti 10 Najčudniji Raspberry Pi Projekti Postoji ludi znanstvenik unutar svakog od nas, a Raspberry Pi vam omogućuje da vam dođe unutra i igra se. Ponekad stvari postanu čudne. Zaista čudno. za više ideja.




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.