Jak vytvořit inteligentní spínač citlivý na světlo pomocí Raspberry Pi a IFTTT

  • Michael Fisher
  • 0
  • 4005
  • 906
reklama

Spínače soumraku a spínače časovače jsou šikovnými způsoby, jak automatizovat světla. Nebylo by skvělé, kdybyste je mohli oba zkombinovat, nebo je dokonce připojit k internetu a vytvořit skutečně inteligentní systém osvětlení?

Raspberry Pi, relé, světelný senzor a pomlčka kódu jsou vše, co potřebujete k dosažení tohoto automatického osvětlení nirvany na šňůře.

Co budete potřebovat

Komponenty pro váš inteligentní spínač snímající světlo jsou snadno zdrojové. Budeš potřebovat:

  • Jakýkoli model Raspberry Pi se systémem Raspbian.
  • Reléová deska, snadno dostupná na Amazonu.
  • Senzor jasu Adafruit TSL2561.
  • Propojovací vodiče.
  • Některá světla se automatizují!

Jak funguje inteligentní spínač citlivý na světlo

Pomocí relé stejným způsobem jako v našem projektu automatického otvírání garážových vrat Jak automatizovat garážová vrata pomocí IFTTT a Raspberry Pi Jak automatizovat garážová vrata pomocí IFTTT a Raspberry Pi V tomto tutoriálu vám ukážeme, jak automatizovat vaše garážová vrata garážová vrata používající pouze Raspberry Pi a IFTTT. , můžete naprogramovat Raspberry Pi, aby zapínal a vypínal světelný obvod ve stanovených časech. Přidání senzoru jasu do mixu znamená, že Pi dokáže detekovat úroveň okolního světla, a rozhodnout se rozsvítit světla, pouze když jsou skutečně potřebná.

Protože Pi je malý počítač, který lze připojit k síti, můžete jej nastavit tak, aby byl ovládán také přes internet. Vaše inteligentní světla budou mít tři vstupy k určení, kdy se rozsvítí:

  1. Naprogramovaný rozvrh.
  2. Úroveň okolního světla.
  3. Potlačovací signál odeslaný přes síť.

Krok 1: Připojte Raspberry Pi k relé

Pokud jste novým v používání GPIO, začněte si přečtením všeho, co potřebujete vědět o Raspberry Pi GPIO Pins.

Nejprve zkontrolujte, zda vaše reléová deska obsahuje propojku propojující piny VCC a JD-VCC. Pokud ano, odeberte jej.

Když je vše vypnuté, připojte desku relé k vašemu Pi takto:

  • Pi Pin 2 (5v) k JD-VCC na desce relé.
  • Pi Pin 6 (GND) na GND na desce relé.
  • Pi Pin 15 (GPIO 22) na IN1 na desce relé
  • Pi Pin 17 (3,3 V) na VCC na desce relé.

Krok 2: Připojte snímač jasu

TSL2561 je světelný senzor, který dokáže detekovat infračervené, plné spektrum a světlo viditelné člověkem. Může poslat velmi přesné digitální čtení do Raspberry Pi. Senzor hlásí hladinu světla na stupnici od 0,1 (bez světla) do 40 000 (jasné slunce).

Deska TSL2561 hovoří s Raspberry Pi pomocí protokolu i2c. I2C potřebuje pouze dvě spojení, jedno pro hodiny, aby obě zařízení byla synchronizována, a jedno pro přenášená data. Senzor lux samozřejmě potřebuje také trochu energie, takže jsou k dispozici celkem čtyři připojení:

  • Připojte Pi Pin 1 (3,3 V) k Vin (nebo VCC) na lux senzoru
  • Připojte Pi Pin 3 (SDA) k SDA na lux senzoru
  • Připojte Pi Pin 5 (SCL) k SCL na lux senzoru
  • Připojte Pi Pin 9 (GND) k GND na lux senzoru

Krok 3: Konfigurace a instalace závislostí

Než budete pokračovat, musíte zkontrolovat, zda je na vašem Raspberry Pi povoleno I2C (ve výchozím nastavení je zakázáno). Do terminálu zadejte následující text:

sudo raspi-config

Vybrat Možnosti rozhraní> P5 I2C, pak zvolte Ano.

Udeřil Vstoupit pak vyberte Dokončit pro ukončení obrazovky konfigurace. Aby se změna projevila, restartujte svůj Pi:

sudo restart

Aby mohla Pi komunikovat se senzorovou deskou, jsou nezbytné některé závislosti. Zadejte následující příkazy:

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

Můžete zkontrolovat, že vše funguje zadáním:

sudo i2cdetect -y 1

Pokud jsou nainstalovány vaše závislosti a Lux senzor je správně připojen, zobrazí se odpověď takto:

Zde obslužný program oznamuje, že našel zařízení I2C (lux senzor) na adrese I2C 39.

Se závislostmi ještě nejste úplně hotoví. Budete také potřebovat několik knihoven. Nejprve si vytvořte složku, aby vše související s tímto projektem zůstalo v:

mkdir ~ / lighting cd ~ / lighting

Dále si stáhněte láhev, lehký rámec, který vytvoří na vašem Pi jednoduchý webový server. Budete jej používat pro ovládání světel z webu.

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

Ostatní knihovny, které potřebujete, jsou na Githubu, takže pokud váš Raspberry Pi ještě nemá nainstalován Git, přidejte jej nyní:

sudo apt-get install git

Nyní klonujte dvě knihovny, jako je tato:

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

A konečně vytvořte testovací skript vytvořením nového souboru:

nano test.py

Vložit do tohoto kódu (se svolením Adafruit):

#! / usr / bin / env python # - * - kódování: utf-8 - * - z __future__ importu absolutní_import, dělení, print_function, unicode_literals z tsl2561 importu TSL2561, pokud __name__ == "__main__": tsl = TSL2561 (debug = True) ) tisk (tsl.lux ())

lis Ctrl + X uložit, podle pokynů na obrazovce ukončete.

Až budete hotovi, spusťte testovací skript:

python test.py

Pokud je vše nainstalováno a funguje, dostanete zpět číslo. Toto číslo je luxusním údajem ze senzoru. Zkuste senzor zablokovat nebo jej přesunout tak, aby dostal více či méně světla. Poté znovu spusťte testovací skript a podívejte se, jak se číslo mění.

Krok 4: Vytvořte automatizační skripty

Raspberry Pi rozsvítí světla, když ztmavne, ale v určitých časech je také vypne. Můžete například chtít, aby se vaše světla rozsvítila, když večer večer ztmavne, a pak kolem půlnoci zhasněte, abyste ušetřili elektřinu. Mohli by se zase brzy ráno zapnout, až se rozsvítí, vypnou se.

Chcete-li spravovat plán s více časovými zónami jako je tento, existují dva různé skripty. Jeden (onzone.py) poběží každou minutu v době, kdy chcete, aby vaše světla svítila, pokud je tma. Jiný (offzone.py) poběží každou minutu v době, kdy chcete, aby světla zhasla, bez ohledu na úroveň světla.

Skripty budou naplánovány na spouštění pomocí úloh cron Jak naplánovat úlohy v Linuxu s Cron a Crontab Jak naplánovat úkoly v Linuxu s Cron a Crontab Schopnost automatizovat úkoly je jednou z těch futuristických technologií, které již existují. Každý uživatel Linuxu může těžit z plánování systému a uživatelských úkolů, díky cronu, snadno použitelné službě na pozadí. . Výběrem, které hodiny dne a noci se každý skript spustí, bude snadné nastavit hodiny, kdy se vaše světla mohou automaticky rozsvítit. Můžete nastavit libovolný počet dob ​​zapnutí a vypnutí.

Kromě skriptů pro automatické ovládání světel existuje i třetí skript pro správu situací potlačení. To vám umožní zapnout světla na dálku bez ohledu na úroveň okolního světla.

Skript 1: Zóna ON

Tento skript Pythonu bude spuštěn každou minutu dne, kdy chcete, aby se světla rozsvítila, pokud je tma. Stáhněte si skript zkopírováním a vložením tohoto příkazu do terminálu:

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

Pokaždé, když je spuštěn soubor onzone.py, získá ze senzoru lux hodnotu, aby zjistil, zda je tmavý. Pokud ano, zkontroluje, zda jsou světla zapnutá nebo vypnutá. Pokud jsou vypnuté, zapne se. Pokud není tma, skript zjistí, zda světla svítí. Pokud ano, vypne je, pokud nebyly přepsány.

Skript používá proměnnou nazvanou lowlux aby se rozhodlo, v jakém bodě je dost světla na zapnutí světel. Můžete to změnit na něco, co je vhodné pro vaši vlastní instalaci změnou hodnoty v tomto řádku v horní části stránky onzone.py:

lowlux = 50

Skript 2: Zóna OFF

Tento skript bude spuštěn každou minutu dne, kdy chcete, aby světla zůstala vypnutá, pokud nebyla přepsána. Stáhněte si skript:

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

Tento skript se nestará o to, jak je světlo nebo tma. Jeho úkolem je jednoduše zhasnout světla, pokud jsou zapnutá (pokud nebyla přepsána).

Skript 3: Server přepsání

Tento skript vytváří jednoduchou webovou službu, která může přijímat příkazy k provádění následujících akcí:

  1. Zapněte světla na několik minut bez ohledu na úroveň okolního světla.
  2. Vypněte světla.
  3. Zjistěte, zda jsou světla aktuálně zapnutá nebo vypnutá.
  4. Zjistěte, jak dlouho mají světla zůstat rozsvícená, když byla potlačena.

Stáhněte si skript:

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

Před přechodem na další krok spusťte skript offzone.py takto:

python offzone.py

Tím se vytvoří kontrolní soubory, které skripty používají ke sledování všeho.

Krok 5: Naplánujte skripty

Váš Raspberry Pi může spouštět automatizační skripty s cronem. Nastavte plán takto:

sudo crontab -e

Vložte tyto dva řádky do textového editoru:

* 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

Poznámka: Pokud uživatelské jméno, do kterého jste se přihlásili do Raspberry Pi, nebylo výchozí pi, podle toho změňte cestu.

V prvním řádku uveďte všechny hodiny, kdy se mají světla rozsvítit, když je tma. Všechny hodiny, ve kterých chcete světla zhasnout, jdou ve druhém řádku.

Nyní nastavte přepisovací skript tak, aby se automaticky spouštěl při spuštění Pi:

sudo nano /etc/rc.local

Vložte tento řádek do dolní části souboru, poté jej uložte a ukončete:

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

Nakonec restartujte Raspberry Pi, abyste mohli zkontrolovat, zda se skript serveru načítá tak, jak má

sudo restart

Krok 6: Otestujte relé

Před připojením světel otestujte, že vše funguje pomocí funkce potlačení. Do webového prohlížeče ve stejné síti jako Pi zadejte následující text a nahraďte IP adresu adresou vlastního Raspberry Pi:

11.22.33.44:1234/overrideon/3

Pokud je vše v pořádku, uslyšíte kliknutí relé a prohlížeč odpoví, že světla byla rozsvícena po dobu tří minut.

Když je relé sepnuto, můžete otestovat další funkce potlačení. To vám řekne, za kolik dalších minut zůstanou světla kvůli přepsání zapnuta:

11.22.33.44:1234/getoverrideremaining

To by vám mělo říci, že světla svítí:

11.22.33.44:1234/lightstatus

Nakonec je můžete vypnout pomocí:

11.22.33.44:1234/overrideoff

Po otevření se relé klikne.

Krok 7: Připojte světla

Před připojením světel k relé vypněte a odpojte Raspberry Pi. Používejte normálně otevřené (NE) konektory na desce relé místo běžného spínače, například:

Nakonec si můžete nainstalovat lux senzor na místo, kde zachytí úroveň okolního světla. Všimněte si, že TSL2561 bude nahlášeno jako nasycené, pokud narazí na přímé jasné sluneční světlo, takže je nejlepší ho udržet ve stínu, pokud je to možné.

Další projekty Raspberry Pi, které můžete vyzkoušet

Vzdáleně potlačit vaše nové nastavení inteligentního osvětlení zadáním příkazů do webového prohlížeče je docela těžkopádné. Lepším způsobem je připojit něco jako Amazon Echo, aby se věci zjednodušily. Kombinace služby Alexa a služby Webhooks na IFTTT je jednoduchý způsob, jak přidat hlasové ovládání.

Podívejte se na našeho průvodce používáním IFTTT, který vám pomůže začít.

Další možností je použití klávesových zkratek Siri. Jediná zkratka s nabídkami může dotazovat stav světel a pomocí funkcí potlačení je zapínat a vypínat.

Pokud se vám tento projekt líbil, nezapomeňte se podívat na tyto podivné projekty Raspberry Pi 10 nejpodivnějších projektů Raspberry Pi 10 nejpodivnějších projektů Raspberry Pi V každém z nás je šílený vědec a Raspberry Pi vám umožní vydat se na vnitřní loon a hrát. Někdy jsou věci divné. Opravdu divné. pro více nápadů.




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.