Publicitate
Întrerupătoarele de întunecare-până-zori și comutatoarele de timp sunt ambele modalități utile de a-ți automatiza luminile. Nu ar fi minunat dacă i-ai putea combina pe cei doi sau chiar i-ai conecta la internet pentru un sistem de iluminat cu adevărat inteligent?
Un Raspberry Pi, un releu, un senzor de lumină și o linie de cod sunt tot ce ai nevoie pentru a obține acest nirvana de iluminare automată pe un șir.
Ce ai nevoie
Componentele pentru comutatorul inteligent senzor de lumină sunt ușor de sursa. O să ai nevoie:
- Orice model Raspberry Pi care rulează Raspbian.
- A placa releului, ușor de găsit pe Amazon.
- Un Senzor de luminozitate Adafruit TSL2561.
- Fire de jumper.
- Câteva lumini de automatizat!
Cum funcționează un comutator inteligent cu lumină
Folosind un releu în același mod ca al nostru proiect de deschidere automată a ușilor de garaj Cum să vă automatizați ușa de garaj cu IFTTT și zmeură PiÎn acest tutorial, vă vom arăta cum să vă automatizați ușa garajului folosind nimic altceva decât Raspberry Pi și IFTTT. Citeste mai mult
, puteți programa un Raspberry Pi pentru a porni și opri un circuit de iluminare la ore fixe. Adăugarea unui senzor de luminozitate la mix înseamnă că Pi poate detecta nivelul de lumină ambientală și alege să aprindă luminile numai atunci când sunt cu adevărat necesare.Deoarece un Pi este un computer minuscul care poate fi conectat la o rețea, îl puteți configura să fie controlat și pe internet. Luminile dvs. inteligente vor avea trei intrări pentru a determina când se aprind:
- Un program programat.
- Nivelul luminii ambientale.
- Semnal de anulare trimis prin rețea.
Pasul 1: Conectați zmeura Pi la releu
Dacă sunteți nou în utilizarea GPIO, începeți să citiți Tot ce trebuie să știți despre Pinioane de raspberry Pi GPIO.
În primul rând, verificați dacă placa de releu are un jumper care conectează pinii VCC și JD-VCC. Dacă are, scoateți-l.

Cu tot ce este pornit, conectați placa releu la Pi-ul dvs. după cum urmează:
- Pin Pin 2 (5v) la JD-VCC de pe placa releului.
- Pi Pin 6 (GND) la GND pe placa releului.
- Pi Pin 15 (GPIO 22) până la IN1 de pe placa releului
- Pin Pin 17 (3.3v) până la VCC de pe placa releului.

Pasul 2: Conectați senzorul de luminozitate
TSL2561 este un senzor de lumină care poate detecta infraroșu, spectru complet și lumină vizibilă pentru om. Poate trimite o lectură digitală foarte precisă la Raspberry Pi. Senzorul raportează nivelul luminii pe o scară de la 0,1 (fără lumină) la 40 000 (soare luminos).
Consiliul de administrație TSL2561 discută cu Zmeura Pi folosind protocolul i2c. I2C are nevoie doar de două conexiuni, una pentru un ceas pentru a menține sincronizarea celor două dispozitive și una pentru transferul de date. Desigur, senzorul lux are nevoie și de o anumită putere, așa că există patru conexiuni pentru a face cu totul:
- Conectați Pin Pin 1 (3.3v) la Vin (sau VCC) pe senzorul lux
- Conectați Pi Pin 3 (SDA) la SDA pe senzorul lux
- Conectați Pi Pin 5 (SCL) la SCL pe senzorul lux
- Conectați Pi Pin 9 (GND) la GND pe senzorul lux

Pasul 3: Configurați și instalați dependențele
Înainte de a merge mai departe, va trebui să verificați dacă I2C este activat pe Raspberry Pi (este implicit dezactivat). Introduceți următoarele în terminal:
sudo raspi-config
Selectați Opțiuni de interfațare> P5 I2C, atunci alege da.

Lovit introduce apoi selectați finalizarea pentru a ieși de pe ecranul de configurare. Reporniți dispozitivul Pi pentru ca modificarea să intre în vigoare:
repornire sudo
Unele dependențe sunt necesare pentru ca Pi să poată comunica cu placa de senzori. Introduceți următoarele comenzi:
Actualizare sudo apt-get. sudo apt-get install -y python-smbus. sudo apt-get install -y i2c-tools
Puteți verifica că totul funcționează tastând:
sudo i2cdetect -y 1
Dacă dependențele dvs. sunt instalate și senzorul lux este conectat corect, veți vedea un răspuns de acest fel:

Aici, utilitarul raportează că a găsit un dispozitiv I2C (senzorul lux) la adresa 39 a I2C.
Încă nu ai terminat cu dependențele. Veți avea nevoie și de câteva biblioteci. Mai întâi, creați un folder pentru a păstra tot ce are legătură cu acest proiect în:
mkdir ~ / iluminat. cd ~ / iluminat
În continuare, descărcați sticla, un cadru ușor care va crea un server web simplu pe Pi. Îl veți folosi pentru controlul luminilor dvs. de pe web.
wget https://bottlepy.org/bottle.py
Celelalte biblioteci de care aveți nevoie sunt pe Github, așa că dacă Raspberry Pi nu are deja Git instalat, adăugați-l acum:
sudo apt-get install git
Acum clonați două biblioteci, astfel:
clonă de git https://github.com/adafruit/Adafruit_Python_GPIO.git. clonă de git https://github.com/adafruit/Adafruit_Python_PureIO.git
Și, în sfârșit, creați un script de testare prin crearea unui nou fișier:
nano test.py
Lipiți acest cod (amabilitate din Adafruit):
#! / usr / bin / env python. # - * - codare: utf-8 - * - din __future__ import absolut_import, divizare, print_funcție, unicode_literals. din tsl2561 import TSL2561. dacă __name__ == "__main__": tsl = TSL2561 (debug = True) print (tsl.lux ())
presa Ctrl + X pentru a salva, urmând instrucțiunile de pe ecran pentru a ieși.
După ce ați terminat, executați scriptul de testare:
testul python.py
Dacă totul este instalat și funcționează, veți primi un număr. Acest număr este o lectură de lux din senzor. Încercați să blocați senzorul sau să-l mutați astfel încât să devină mai mult sau mai puțin lumină. Apoi rulați scriptul de testare din nou și vedeți cum se schimbă numărul.
Pasul 4: Creați scripturile de automatizare
Raspberry Pi va aprinde luminile când se va întuneca, dar le va stinge și în anumite momente. De exemplu, s-ar putea să doriți ca luminile dvs. să se aprindă când se întunecă seara, apoi stingeți în jurul nopții pentru a economisi electricitate. Puteau reîncepe dimineața devreme, apoi se puteau opri când devine lumină.
Pentru a gestiona un program cu mai multe zone de calendar ca acesta, există două scripturi diferite. Unu (onzone.py) va rula în fiecare minut în timpul în care doriți să se aprindă luminile dvs. dacă este întuneric. Celălalt (offzone.py) va rula în fiecare minut în timp ce doriți ca luminile să fie stinse, indiferent de nivelul luminii.

Scripturile vor fi programate să fie difuzate folosind cron joburi Cum să planificați sarcinile în Linux cu Cron și CrontabCapacitatea de a automatiza sarcinile este una dintre acele tehnologii futuriste care există deja aici. Fiecare utilizator Linux poate beneficia de planificarea sistemului și de sarcinile utilizatorului, datorită cron, un serviciu de fundal ușor de utilizat. Citeste mai mult . Alegând ce ore din zi și din noapte se execută fiecare script, va fi ușor să setați orele în care luminile dvs. se pot aprinde automat. Puteți configura cât mai multe perioade de pornire și oprire.
La fel ca și scripturi pentru controlul automat al luminilor, există un al treilea script pentru gestionarea situațiilor de anulare. Acest lucru vă va permite să aprindeți luminile de la distanță, indiferent de nivelul luminii ambientale.
Script 1: Zona ON
Acest script Python va fi rulat în fiecare minut al zilei în care doriți ca luminile să se aprindă dacă este întuneric. Descărcați scriptul copiind și lipind această comandă în terminal:
wget https://gist.githubusercontent.com/hamishdownell/ea151d2ff7c888ac09f8a850afaab4ee/raw/10b0e9d8ec42f8577750941da46a93d16b597c05/onzone.py
De fiecare dată când onzone.py este rulat, va primi o valoare lux de la senzor pentru a vedea dacă este întuneric. Dacă este, atunci va verifica dacă luminile sunt aprinse sau oprite. Dacă sunt oprite, le va activa. Dacă nu este întuneric, scriptul va vedea dacă luminile sunt aprinse. Dacă sunt, le va opri dacă nu au fost ignorate.
Scriptul folosește o variabilă numită lowlux pentru a decide în ce moment este suficient de întunecat pentru a aprinde luminile. Puteți să-l schimbați în ceva potrivit pentru propria instalare, modificând valoarea din această linie de lângă partea de sus a onzone.py:
lowlux = 50
Script 2: Zona OFF
Acest script va fi rulat în fiecare minut al zilei în care doriți ca luminile să rămână stinse, cu excepția cazului în care acestea au fost anulate. Descărcați scriptul:
wget https://gist.githubusercontent.com/hamishdownell/fb8970909145bbfefbbef8dba5f5a00f/raw/eae5a6057a51ca4727907c7d061f0a48b07da944/offzone.py
Acest scenariu nu-i pasă de cât de lumină sau întuneric este. Misiunea sa este pur și simplu să stingă luminile dacă sunt aprinse (cu excepția cazului în care au fost anulate).
Script 3: Serverul de înlocuire
Acest script creează un serviciu web simplu care poate accepta comenzi pentru a face următoarele acțiuni:
- Porniți luminile timp de câteva minute, indiferent de nivelul luminii ambientale.
- Opriți luminile.
- Aflați dacă luminile sunt în acest moment pornite sau oprite.
- Aflați cât timp trebuie să stea luminile atunci când au fost anulate.
Descărcați scriptul:
wget https://gist.githubusercontent.com/hamishdownell/2303bfd9fb30d42e79923bdb7e69ed4e/raw/7dcb456b81b8ae58ae48efa225adb41ba7d7f69c/lightserver.py
Înainte de a trece la pasul următor, rulați scriptul offzone.py astfel:
python offzone.py
Acest lucru va crea fișierele de control pe care scripturile le folosesc pentru a ține evidența a tot.
Pasul 5: Planificați scripturile
Raspberry Pi dvs. poate rula scripturile de automatizare cu cron. Configurați programul astfel:
sudo crontab -e
Inserați aceste două rânduri în editorul de text:
* 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
Notă: Dacă numele de utilizator cu care v-ați conectat la Raspberry Pi nu a fost implicit pi, schimbați calea în consecință.
Enumerați toate orele în care doriți să se aprindă luminile când este întuneric în prima linie. Toate orele în care doriți să se aprindă luminile în a doua linie.
Acum setați scriptul de înlocuire să funcționeze automat la pornirea Pi:
sudo nano /etc/rc.local
Lipiți această linie în partea de jos a fișierului, apoi salvați și ieșiți:
nohup python /home/pi/lighting/lightserver.py &
În cele din urmă, reporniți Raspberry Pi pentru a putea verifica dacă scriptul serverului se încarcă așa cum trebuie
repornire sudo
Pasul 6: Testează releul
Înainte de a conecta luminile, testați că totul funcționează folosind funcția de anulare. Introduceți următoarele într-un browser web în aceeași rețea ca Pi-ul dvs., înlocuind adresa IP cu adresa propriei Raspberry Pi:
11.22.33.44:1234/overrideon/3
Dacă totul este bine, veți auzi clicul releului și browserul va răspunde că luminile au fost aprinse timp de trei minute.
În timp ce releul este închis, puteți testa celelalte funcții de anulare. Acest lucru vă va spune pentru încă câteva minute luminile vor rămâne pornite din cauza anulării:
11.22.33.44:1234/getoverrideremaining
Acest lucru ar trebui să vă spună că luminile sunt aprinse:
11.22.33.44:1234/lightstatus
În cele din urmă, le puteți dezactiva din nou cu:
11.22.33.44:1234/overrideoff
Releul va face clic pe măsură ce se deschide.
Pasul 7: Conectează-ți luminile
Opriți și deconectați zmeura Pi înainte de a conecta luminile la releu. Folosiți conectorii de tip deschis (NU) de pe placa releului în locul unui comutator obișnuit, astfel:

În cele din urmă, puteți instala senzorul lux într-un loc în care va capta nivelul luminii ambientale. Rețineți că TSL2561 se va raporta ca fiind saturat dacă întâlnește lumina directă a soarelui, așa că este mai bine să îl păstrați la umbră, dacă este posibil.
Mai multe proiecte Raspberry Pi pe care să le încercați
Suprasolicitarea de la distanță a noii configurații de iluminare inteligentă prin introducerea comenzilor într-un browser web este destul de greoaie. O modalitate mai bună este de a conecta ceva ca un Amazon Echo pentru a facilita lucrurile. Combinând serviciul Alexa și serviciul Webhooks activat IFTTT este un mod simplu de a adăuga controlul vocal.
Vezi a noastră ghid pentru utilizarea IFTTT pentru a vă ajuta să începeți.

O altă opțiune este să utilizați comenzi rapide Siri. O singură comandă rapidă cu meniuri poate interoga starea luminilor și poate utiliza funcțiile de anulare pentru a le activa și dezactiva.
Dacă v-a plăcut acest proiect, asigurați-vă că le verificați proiecte ciudate de zmeură Pi 10 proiecte cele mai ciudate de zmeură PiExistă un om de știință nebun în fiecare dintre noi, iar zmeura Pi vă lasă să vă ieși jocul interior și să se joace. Uneori, lucrurile devin ciudate. Foarte ciudat. Citeste mai mult pentru mai multe idei.
Hamish este un scriitor independent, iubitor pe tot parcursul vieții al tehnologiei și tocilă confirmată. A lucrat în departamentele IT ale mai multor multinaționale înainte de a-și concedia definitiv șeful și de a merge singur.