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 pro skutečně chytrý 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 s Raspbian.
  • A reléová deska, snadno najít na Amazonu.
  • An Senzor jasu Adafruit TSL2561.
  • Propojovací vodiče.
  • Některá světla automatizovat!

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

Použitím relé stejným způsobem jako naše projekt automatického otevírání garážových vrat Jak automatizovat garážová vrata pomocí IFTTT a Raspberry PiV tomto tutoriálu vám ukážeme, jak automatizovat garážová vrata pomocí nic jiného než Raspberry Pi a IFTTT. Přečtěte si více , můžete naprogramovat Raspberry Pi, aby zapínal a vypínal světelný obvod ve stanovených časech. Přidání senzoru jasu do směsi 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á.

instagram viewer

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 používáte GPIO, začněte čtením Vše, 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.

JD-VCC na VCC propojovací deska relé

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é.
Raspberry Pi Zero W připojený k reléové desce

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. Čidlo hlásí hladinu světla na stupnici od 0,1 (bez světla) do 40 000 (jasné slunce).

Rada 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
Raspberry Pi Zero W je připojen k senzoru TSL2561 lux

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 deaktivováno). Do terminálu zadejte následující text:

sudo raspi-config

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

Možnosti rozhraní v nástroji raspi-config

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:

aktualizace sudo apt-get. 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 vaše závislosti nainstalovány a senzor lux je správně připojen, zobrazí se odpověď takto:

Nástroj IC-Detect, který hlásí lux adresu senzoru

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

Se závislostmi jste ještě neudělali dost. 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 ~ / osvětlení. cd ~ / osvětlení

Dále 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é budete potřebovat, 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:

git klon https://github.com/adafruit/Adafruit_Python_GPIO.git. git klon 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žte tento kód (se svolením Adafruit):

#! / usr / bin / env python. # - * - kódování: utf-8 - * - z __future__ importovat absolutní_import, dělení, print_funkce, unicode_literály. z tsl2561 importovat 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 čí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 znovu zapnout brzy ráno, když se rozsvítí, zase se vypnou.

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.

Plán inteligentního osvětlení skriptu

Skripty budou naplánovány na spuštění pomocí cron úloh Jak naplánovat úkoly v Linuxu pomocí Cron a CrontabSchopnost 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í. Přečtěte si více . 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ítí světla. Pokud ano, vypne je, pokud nebyly přepsány.

Skript používá proměnnou nazvanou lowlux aby se rozhodlo, v jakém okamžiku je dost tmavá, aby se rozsvítila světla. 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: OFF 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 zapnutá, 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 zapnuta kvůli přepsání:

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:

Vložení relé do obvodu osvětlení

Nakonec si můžete nainstalovat lux senzor na místo, kde zachytí úroveň okolního světla. Upozorňujeme, ž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še průvodce používáním IFTTT které vám pomohou začít.

IFTTT Applet pro připojení inteligentních světel k Alexovi

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 na ně podívat zvláštní projekty Raspberry Pi 10 nejpodivnějších projektů Raspberry PiV každém z nás je šílený vědec a Raspberry Pi nechává vyjít a hrát si vnitřní loon. Někdy jsou věci divné. Vážně divné. Přečtěte si více pro více nápadů.

Hamish je spisovatel na volné noze, celoživotní milovník technologie a potvrzený blbeček. Pracoval v IT odděleních několika nadnárodních společností, než konečně vypálil svého šéfa a nechal to sám.