Oglas

Stikala za zamrznitev do zore in stikala za merjenje časa so oba priročna načina za avtomatizacijo luči. Ali ne bi bilo čudovito, če bi obojega združili ali ga celo priklopili na internet za resnično pameten sistem razsvetljave?

Raspberry Pi, rele, senzor svetlobe in pomična koda so vse, kar potrebujete za to samodejno osvetlitev nirvane na obrobju.

Kaj boste potrebovali

Komponente vašega svetlobnega zaznavanja pametnega stikala so enostavne za vire. Potrebovali boste:

  • Vsak model Raspberry Pi, ki poganja Raspbian.
  • A relejna plošča, zlahka najdeno na Amazonu.
  • An Senzor svetilnosti Adafruit TSL2561.
  • Jumper žice.
  • Nekaj ​​luči za avtomatizacijo!

Kako deluje pametno stikalo, ki zaznava svetlobo

Z uporabo releja na enak način kot naš projekt avtomatskega odpiranja garažnih vrat Kako avtomatizirati svoja garažna vrata s IFTTT in malino PiV tej vadnici vam bomo pokazali, kako avtomatizirati svoja garažna vrata, pri čemer uporabljate le Raspberry Pi in IFTTT. Preberi več , lahko programirate Raspberry Pi, da v določenem času vklopite in izklopite svetlobni krog. Dodajanje senzorja svetilnosti mešanici pomeni, da Pi lahko zazna raven svetlobe v okolju in se odloči, da bo lučke vklopil le, kadar so resnično potrebne.

instagram viewer

Ker je Pi majhen računalnik, ki ga je mogoče povezati v omrežje, ga lahko nastavite tudi za nadzor prek interneta. Vaše pametne luči bodo imele tri vhode za določitev, kdaj se prižgejo:

  1. Programiran urnik.
  2. Raven svetlobe v okolju.
  3. Signal preglasitve, poslan preko omrežja.

1. korak: Priklopite malino Pi na rele

Če niste novi v uporabi GPIO, začnite z branjem Vse, kar morate vedeti o Raspberry Pi GPIO nožicah.

Najprej preverite, ali ima vaša relejna plošča mostiček, ki povezuje zatiče VCC in JD-VCC. Če ga ima, ga odstranite.

Preskok releja na JD-VCC do VCC

Z izklopljenim napajalnikom priključite relejno ploščo na vaš Pi tako:

  • Pi Pin 2 (5v) na JD-VCC na relejni plošči.
  • Pi Pin 6 (GND) do GND na plošči releja.
  • Pi Pin 15 (GPIO 22) do IN1 na relejski plošči
  • Pi Pin 17 (3.3v) za VCC na relejni plošči.
Malina Pi Zero W priključena na relejno ploščo

2. korak: Priključite senzor svetilnosti

TSL2561 je senzor svetlobe, ki lahko zazna infrardečo, poln spekter in človeško vidno svetlobo. Na Raspberry Pi lahko pošlje zelo natančno digitalno branje. Senzor poroča o nivoju svetlobe na lestvici od 0,1 (brez svetlobe) do 40 000 (svetlo sonce).

Odbor TSL2561 se pogovarja z Raspberry Pi s protokolom i2c. I2C potrebujeta samo dve povezavi, eno za uro, da sta dve napravi sinhronizirani, in eno za prenos podatkov. Seveda senzor luksa potrebuje tudi nekaj moči, tako da so skupaj lahko štirje priključki:

  • Priključite Pi Pin 1 (3.3v) na Vin (ali VCC) na lux senzorju
  • Na lux senzorju povežite Pi Pin 3 (SDA) in SDA
  • Priključite Pi Pin 5 (SCL) na SCL na lux senzorju
  • Priključite Pi Pin 9 (GND) v GND na lux senzorju
Malina Pi Zero W povezana s senzorjem TSL2561 lux

3. korak: Konfigurirajte in namestite odvisnosti

Preden nadaljujete, boste morali preveriti, ali je na vašem Raspberry Pi omogočen I2C (privzeto je onemogočen). V terminal vnesite naslednje:

sudo raspi-config

Izberite Možnosti vmesnika> P5 I2C, nato izberite Da.

Možnosti povezovanja v pripomočku raspi-config

Hit Vnesite nato izberite Dokončaj za izhod iz zaslona config. Znova zaženite Pi, da spremembe začnejo veljati:

sudo reboot

Nekatere odvisnosti so potrebne, da Pi lahko komunicira s senzorsko ploščo. Vnesite naslednje ukaze:

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

Lahko preverite, ali vse deluje, tako da vtipkate:

sudo i2cdetect -y 1

Če so vaše odvisnosti nameščene in je vaš lux senzor pravilno priključen, boste videli takšen odgovor:

IC-Detect pripomoček za poročanje o storitvi lux senzorja

Tukaj program poroča, da je na I2C naslovu 39 našel napravo I2C (luks senzor).

Z odvisnostmi še niste povsem končali. Potrebovali boste tudi nekaj knjižnic. Najprej naredite mapo, v kateri bodo vse, kar je povezano s tem projektom, shranjene v:

mkdir ~ / razsvetljava. cd ~ / razsvetljava

Naprej, prenos steklenica, lahek okvir, ki bo ustvaril preprost spletni strežnik na vašem Pi. Uporabili ga boste za nadzor luči iz spleta.

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

Druge knjižnice, ki jih potrebujete, so na Githubu, tako da če v vašem Raspberry Pi še ni nameščen Git, ga dodajte zdaj:

sudo apt-get install git

Zdaj klonirajte dve knjižnici, kot je ta:

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

In nazadnje, ustvarite testni skript z ustvarjanjem nove datoteke:

nano test.py

Prilepite to kodo (z dovoljenjem) Adafruit):

#! / usr / bin / env python. # - * - kodiranje: utf-8 - * - iz __future__ uvoz absolutnega uvoza, delitve, print_function, unicode_literals. iz uvoza tsl2561 TSL2561. če je __name__ == "__main__": tsl = TSL2561 (odpravljanje napak = True) tiskanje (tsl.lux ())

Pritisnite Ctrl + X Če želite shraniti, sledite navodilom na zaslonu za izhod.

Ko končate, zaženite testni skript:

python test.py

Če je vse nameščeno in deluje, boste dobili nazaj številko. Ta številka je luksuzno odčitavanje s senzorja. Poskusite blokirati senzor ali ga premakniti, tako da dobi več ali manj svetlobe. Nato znova zaženite testni skript in si oglejte, kako se številka spreminja.

4. korak: ustvarite skripte za avtomatizacijo

Raspberry Pi bo lučke vklopil, ko se zatemni, ob določenih trenutkih pa jih tudi ugasnil. Na primer, morda želite, da se vaše luči prižgejo, ko zvečer potemni, nato pa se ugasnite okoli polnoči, da prihranite elektriko. Lahko se vrnejo zgodaj zjutraj, nato pa se izklopijo, ko postane svetloba.

Za upravljanje razporeda z več časovnih pasov, kot je ta, obstajata dve različni skripti. Ena (onzone.py) bo delovala vsako minuto v času, ko želite, da so vaše luči prižgane, če je temno. Drugi (offzone.py) bo delovala vsako minuto v času, ko želite, da so luči ugasnjene, ne glede na svetlost.

Pametni razpored scenarijev osvetlitve

Scenarije bo predvidoma zagnati z uporabo delovnih mest cron Kako razporejati naloge v Linuxu s Cron in CrontabSposobnost avtomatizacije nalog je ena tistih futurističnih tehnologij, ki že obstaja. Vsak uporabnik Linuxa ima lahko koristi od sistema načrtovanja in uporabniških opravil, zahvaljujoč cron, enostavni osnovni storitvi. Preberi več . Če izberete, katere ure dneva in noči se vsak skript začne izvajati, boste enostavno nastavili ure, po katerih se bodo vaše luči samodejno prižgale. Nastavite lahko toliko časov, kolikor želite.

Poleg skriptov za samodejno krmiljenje luči obstaja tudi tretji skript za upravljanje preglasnih situacij. Tako boste lahko lučke vklopili na daljavo, ne glede na stopnjo osvetlitve okolice.

Scenarij 1: cona ON

Ta scenarij Python se bo izvajal vsako minuto dneva, ko želite, da se luči prižgejo, če je temno. Prenesite skript tako, da kopirate in prilepite ta ukaz v terminal:

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

Vsakič, ko se onzone.py zažene, bo od senzorja prejel vrednost luksa, da vidi, ali je temna. Če je, bo nato preveril, ali so luči vklopljene ali ugasnjene. Če so izklopljeni, jih bo vklopil. Če ni mračno, bo skript videl, ali so luči prižgane. Če so, jih bo izklopil, razen če so jih preglasili.

Skript uporablja spremenljivko imenovano lowlux da se odločite, v kateri točki je dovolj temno, da vklopite luči. Lahko ga spremenite v nekaj, kar je primerno za vašo lastno namestitev, tako da spremenite vrednost v tej vrstici blizu vrha onzone.py:

lowlux = 50

Scenarij 2: OFF cona

Ta skript se bo izvajal vsako minuto dneva, ko želite, da lučke ne ugasnejo, razen če jih preglasite. Prenesite skript:

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

Ta scenarij ne zanima, kako svetel je ali temen. Njegova naloga je preprosto, da luči ugasnejo, če so vklopljene (razen če so bile preglasne).

Scenarij 3: Preveri strežnik

Ta skript ustvari preprosto spletno storitev, ki lahko sprejme ukaze za naslednja dejanja:

  1. Lučke vključite za nekaj minut, ne glede na stopnjo osvetlitve okolice.
  2. Izklopite luči.
  3. Ugotovite, ali so luči trenutno vklopljene ali ugasnjene.
  4. Ugotovite, za koliko časa se lučke zadržijo, ko jih preklopite.

Prenesite skript:

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

Preden začnete na naslednji korak, zaženite skript offzone.py takole:

python offzone.py

Tako se ustvarijo nadzorne datoteke, ki jih skripte uporabljajo za spremljanje vsega.

5. korak: razporedite skripte

Vaš Raspberry Pi lahko zažene skripte za avtomatizacijo s cron. Nastavite razpored takole:

sudo crontab -e

Te dve vrstici prilepite v urejevalnik besedil:

* 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

Opomba: Če uporabniško ime, s katerim ste se prijavili v svoj Raspberry Pi, ni bilo privzeto pi, ustrezno spremenite pot.

Seznam vseh ur, kjer želite, da lučke prižgejo, ko je tema v prvi vrstici. Vse ure, kjer želite ugasniti luči, gredo v drugo vrstico.

Zdaj nastavite skript za preglasitev, da se samodejno zažene, ko se zažene Pi:

sudo nano /etc/rc.local

Prilepite to vrstico na dno datoteke in jo nato shranite in zapustite:

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

Končno znova zaženite Raspberry Pi, da lahko preverite, ali se strežniški skript nalaga, kot bi moral

sudo reboot

6. korak: preizkusite rele

Preden priklopite luči, preverite, ali vse deluje s pomočjo funkcije preglasitve. Vpišite naslednje v spletni brskalnik v istem omrežju kot vaš Pi in nadomestite IP naslov z naslovom vašega Raspberry Pi:

11.22.33.44:1234/overrideon/3

Če je vse v redu, boste zaslišali klik releja in brskalnik se bo odzval, da so lučke vklopljene tri minute.

Medtem ko je rele zaprt, lahko preizkusite ostale funkcije preglasitve. To vam bo povedalo, koliko minut bo lučka ostala zaradi preglasovanja:

11.22.33.44:1234/getoverrideremaining

To bi moralo povedati, da so luči prižgane:

11.22.33.44:1234/lightstatus

Končno jih lahko znova izklopite z:

11.22.33.44:1234/overrideoff

Rele bo kliknil, ko se odpre.

7. korak: Priključite luči

Pred priklopom luči na rele izklopite in izklopite svoj Raspberry Pi. Uporabite običajno odprte konektorje (NO) na relejski plošči namesto običajnega stikala:

Vstavitev releja v svetlobni krog

Končno lahko svoj lux senzor namestite na mesto, kjer bo zajemal nivo svetlobe v okolju. Upoštevajte, da bo TSL2561 poročal o zasičenosti, če naleti na direktno svetlo sončno svetlobo, zato jo je najbolje, če je le mogoče.

Več Raspberry Pi projektov, ki jih morate preizkusiti

Odstranitev nove pametne nastavitve osvetlitve na daljavo z vnašanjem ukazov v spletni brskalnik je precej okorna. Boljši način je, da priključite nekaj, kot je Amazon Echo, da stvari olajšate. Združevanje Alexa in storitve Webhooks na IFTTT je preprost način za dodajanje glasovnega nadzora.

Glej naše navodila za uporabo IFTTT da vam pomagamo začeti.

IFTTT Applet za povezavo pametnih luči z Alexa

Druga možnost je uporaba bližnjic Siri. Posamezna bližnjica z meniji lahko poizveduje stanje lučk in s pomočjo funkcij preglasitve vklopi in izklopi.

Če ste uživali v tem projektu, jih preverite čudni projekti Raspberry Pi 10 najbolj čudnih Raspberry Pi projektovV vsakem od nas je nori znanstvenik in Raspberry Pi pusti, da se vaša notranja dvorana izide in se igra. Včasih stvari postanejo čudne. Res čudno. Preberi več za več idej.

Hamish je svobodni pisatelj, vseživljenjski ljubitelj tehnologije in potrjen nerd. Delal je v IT oddelkih številnih multinacionalk, preden je končno odpustil šefa in odšel sam.