Jeffrey Cross
Jeffrey Cross

Jasný nápad: Použití Raspberry Pi jako časovače lampy

Následující je výňatek z Začínáme s Raspberry Pi Matt Richardson a Shawn Wallace.

Řekněme, že odjíždíte na dlouhou dovolenou zítra ráno a chcete odradit případné zloděje z domova. Časovač lampy je dobrým odstrašujícím prostředkem, ale obchody s hardwarem jsou na noc zavřené a nebudete mít čas dostat se před letem ráno. Vzhledem k tomu, že jste fanouškem Raspberry Pi, máte kolem sebe několik zásob, a to:

  • Deska Raspberry Pi
  • Prkno
  • Jumperové vodiče, samice na samce.
  • Relé PowerSwitch Tail II
  • Připojovací vodič

S těmito zdroji můžete vytvořit vlastní programovatelný časovač lampy pomocí dvou výkonných nástrojů Linux:shell skripty acron.

Příkazy skriptování

Skript je soubor, který obsahuje řadu příkazů (stejně jako ty, které používáte pro ovládání a čtení pinů). Podívejte se na níže uvedený shell shell a vysvětlení klíčových řádků.

#! / bin / bash #

echo Export pin $ 1. #

echo $ 1> / sys / class / gpio / export #

echo Nastavení směru ven. echo out> / sys / class / gpio / gpio $ 1 / direction #

echo Nastavení špendlíku vysoké. echo 1> / sys / class / gpio / gpio $ 1 / hodnota

Tento řádek je vyžadován pro všechny skripty shellu.

„$ 1“ označuje první argument příkazového řádku.

Namísto exportu určitého čísla PINu skript používá první argument příkazového řádku.

Všimněte si, že první argument příkazového řádku zde také nahrazuje číslo PIN.

Uložit jako textový souboron.sh a proveďte jej pomocí příkazu chmod:

[email protected]: / home / pi # chmod + x on.sh

Poznámka

Stále musíte tyto příkazy vykonávat jako root. Typsudo su pokud dostanete chyby jako „Oprávnění bylo odepřeno“.

Argument příkazového řádku je způsob předávání informací do programu nebo skriptu tak, že je zadáte za název příkazu. Když píšete skript shellu, $ 1 odkazuje na první argument příkazového řádku, $ 2 odkazuje na druhý a tak dále. V případěon.shzadáte číslo PIN, které chcete exportovat a zapněte. Namístopevné kódování pin 25 do skriptu shellu, je univerzálnější odkazem na pin, který byl zadán na příkazovém řádku. Chcete-li pin 25 exportovat a zapnout, můžete nyní zadat:

[email protected]: / home / pi / # ./on.sh 25

Export pin 25. Nastavení směru ven. Nastavení špendlíku vysoko.

„./“ před názvem souboru označuje, že skript provádíte v adresáři, ve kterém se nacházíte.

Pokud stále svítí dioda LED připojená ke kolíku 25, měla by se zapnout. Udělejme další skript nazvaný shelloff.sh který LED diodu vypne. Bude to vypadat takto:

#! / bin / bash echo Nastavení špendlíku nízké. echo 0> / sys / class / gpio / gpio $ 1 / value echo Unexporting pin $ 1 echo $ 1> / sys / class / gpio / unexport

Nyní je vytvoříme a spustíme skript:

[email protected]: / home / pi / temp # chmod + x off.sh [email protected]: / home / pi / temp # ./off.sh 25 Nastavení špendlíku nízké. Nepromontovatelný kolík 25

Pokud vše fungovalo, LED dioda měla zhasnout.

Připojení lampy

Drobná LED dioda samozřejmě nevydá dostatek světla, aby se oklamali zlodějové, aby si mysleli, že jste doma, a proto připojme lampu k Raspberry Pi.

  1. Demontujte LED diodu připojenou ke kolíku 25.
  2. Připojte dva prameny připojovacího vodiče k prkénku, ten, který se připojí ke kolíku 25 Raspberry Pi a druhý k zemnící sběrnici.
  3. Proud drátu, který se připojuje ke kolíku 25, by měl být připojen ke svorce „+ in“ na PowerSwitch Tail.
  4. Proud drátu, který se připojuje k zemi, by měl být připojen ke svorce „-in“ PowerSwitch Tail. Porovnejte svůj obvod s Obr. 7, „Připojení PowerSwitch Tail II k Raspberry Pi“.
  5. Zapojte PowerSwitch Tail do zdi a zapojte lampu do PowerSwitch Tail. Zkontrolujte, zda je spínač lampy v poloze zapnuto.
  6. Teď, když to provedete./on.sh 25, lampa by se měla rozsvítit a pokud provedete./off.sh 25, lampa by se měla vypnout!

Poznámka

Uvnitř PowerSwitch Tail je několik elektronických součástek, které vám pomohou ovládat zařízení vysokého napětí, jako je lampa nebo mixér, pomocí nízkonapěťového signálu, jako je ten z Raspberry Pi. „Kliknutí“, které uslyšíte z PowerSwitch Tail, když je zapnuto nebo vypnuto, je relé, základní součást obvodu uvnitř. Relé funguje jako spínač pro vysokonapěťové zařízení, které lze zapnout nebo vypnout v závislosti na tom, zda je zapnutý nebo vypnutý signál řízení nízkého napětí z Raspberry Pi.

Obrázek 7. Připojení PowerSwitch Tail II k Raspberry Pi

Plánování příkazů pomocí cron

Takže nyní jste zabalili několik různých příkazů do dvou jednoduchých příkazů, které mohou pin zapnout nebo vypnout. S lampou připojenou k Raspberry Pi přes PowerSwitch Tail můžete zapnout nebo vypnout lampu jedním příkazem. Nyní můžete použítcron naplánovat, aby se světlo zapínalo a vypínalo v různých časech dne.cron je plánovač úloh Linuxu. S ním můžete nastavit příkazy, které mají být provedeny v určitých časech a datech, nebo můžete mít úlohy spuštěné v určitém období (například jednou za hodinu). Chystáte se naplánovat dvě úlohy; jeden z nich rozsvítí světlo v 8:00 hodin a druhý světlo vypne ve 2:00.

Poznámka

Stejně jako u jiných programů závislých na čase se budete chtít ujistit, že máte na svém Raspberry Pi nastaveno správné datum a čas, jak je popsáno v ???.

Chcete-li tyto úlohy přidat, budete muset upravit tabulku cron (seznam příkazů, které Linux provádí v zadaných časech):

[email protected]: / home / pi / # crontab -e

Spustí se textový editor, který změní tabulku cron root. Chcete-li změnit typ uživatele rootsudo su. V horní části souboru se zobrazí informace o úpravě tabulky cron. Pomocí kláves se šipkami přejděte na konec souboru a přidejte tyto dvě položky na konec souboru.

0 20 * * * / home/pi/on.sh 25 0 2 * * * /home/pi/off.sh 25

Poznámka

cron bude ignorovat všechny řádky, které začínají znakem hash. Pokud chcete dočasně zakázat linku bez jejího odstranění nebo přidat do souboru komentář, vložte před řádek znak hash.

TypControl-X ukončit, zadejtey uložte soubor, když vás vyzve, a stiskněte klávesu enter, chcete-li přijmout výchozí název souboru. Když je soubor uložen a vrátíte se na příkazový řádek, mělo by to říctinstalace nové crontab Chcete-li označit, že provedené změny budou provedeny uživatelemcron

Více o Cron

Cron vám umožní naplánovat úlohy pro konkrétní data a časy nebo v intervalech. Tam je pět časových polí (nebo šest jestliže vy chcete plánovat rok), každý oddělený mezerou následovaný jiným prostorem pak příkazem vykonat. Hvězdičky označují, že by úloha měla vykonávat každé období. Například:

Tabulka 1. Cron Entry pro zapnutí světla v 20:00 každý den

0 20 * * * /home/pi/on.sh 25
Minuta (: 00) Hodina (20:00) Každý den Každý měsíc Každý den v týdnu cesta k příkazu

Řekněme, že chcete, aby se lampa rozsvítila každý pracovní den. Jak by vypadala položka crontab:

Tabulka 2. Cron Entry pro zapnutí světla v 8:00 odpoledne Každý všední den

0 20 * * 1-5 /home/pi/on.sh 25
Minuta (: 00) Hodina (20:00) Každý den Každý měsíc od pondělí do pátku cesta k příkazu

Řekněme, že máte shell skript, který kontroluje, zda máte novou poštu a pokud vám to posílá e-maily. Zde je návod, jak tento skript spustit každých pět minut:

Tabulka 3. Cron Entry pro kontrolu pošty každých pět minut

*/5 * * * * /home/pi/checkMail.sh
Každých pět minut Každou hodinu Každý den Každý měsíc Každý den v týdnu cesta k příkazu

* / 5 označuje periodu každých pět minut.

Jak můžete vidět,cron je výkonný nástroj, který je k dispozici pro plánování úloh pro konkrétní data nebo časy a plánování úloh, které se mají uskutečnit v určitém intervalu.

Dále

Referenční stránka eLinuxu Raspberry Pi GPIO
Toto je nejobsáhlejší referenční příručka pro GPIO piny Raspberry Pi.
Adafruit: MCP230xx GPIO Expander na Raspberry Pi
Pokud nemáte dostatek pinů pro práci, Adafruit nabízí tento návod k použití čipu MCP23008 pro 8 dalších pinů GPIO a MCP23017 pro 16 dalších pinů GPIO.

Podíl

Zanechat Komentář