1Aug

Vytvořte ukazatel LED s malinovou pi( pro e-mail, počasí nebo cokoli)

Raspberry Pi vytváří pěknou kompaktní platformu, která přiloží kontrolní světlo pro všechny druhy projektů - oznámení o počasí, nové e-maily atd. Přečtěte si, jak vám ukážeme, jak připojit modul LED k vašemu Pi a nastavit některé základníoznámení.

Proč to chci dělat?

Protože je to zábava. Na rozdíl od mnoha našich výukových lekcí, kde uvádíme nahoře malý obrazec, který přesně popisuje, jaký přínos budete mít z projektu, blur je v tomto případě dost krátký, protože přínosem je prostě bavit se.

Malina Pi je perfektní zařízení pro hraní, experimentování s elektronikou a naučení některých programů.Nikdo potřebuje např. ukazatel okolní dešťové vody v kuchyni, ale budování jednoho je zábavné cvičení a skvělá připomínka, která vám s sebou přinese váš deštník v potenciálně bouřlivých dnech.

Co potřebuji?

Chcete-li sledovat spolu s tutoriálem, budete potřebovat několik věcí.Za prvé, předpokládáme, že jste již následovali náš předchozí tutoriál: Příručka HTG pro začátek s Raspberry Pi( a proto máte základy, které se týkají instalace Rasbiny na Malinci Pi).

Pokud chcete tento projekt realizovat s určitým rozpočtem, s jistotou vám můžeme říci, že nejnovější model Raspberry Pi je pro tuto práci významnou nadměrnou prácí a my bychom vám povzbudili, abyste vyfoukli prach ze starého Raspberry Pi, který mátestrčil do skříně nebo vyzvednout levné použité jeden eBay nebo podobně.Rozpočet moudrý long-in-the-zub a Malina Pi 1 Model A nebo model B odrazil eBay za 10-15 dolarů je ideální pro tento projekt přes koupi zbrusu nové $ 35 současné generace Pi.

Kromě toho, že máte nainstalovanou funkční jednotku Pi se systémem Raspbian, budete potřebovat následující funkce:

  • 1 Modul LedBorg( ~ $ 5.00 s přepravou 4 USD z Velké Británie do USA, pracuje se všemi modely Raspberry Pi).
  • 1 Zřetelná Malina Pi Pouzdro je kompatibilní s Vaším konkrétním Pi modelem, jako je tento malinový pouzdro Pi 1 Model B.

Poznámka: Čirý / matný případ Pi je zcela volitelný, ale pokud používáte v současné době neprůhledné pouzdro, váš LED indikátor bude skrytý uvnitř.Budete muset vyříznout díru ve vašem případě a nechat světlo vypnout nebo použít prodlužovací kabel GPIO s odbočovací soupravou - jako je to od firmy Adafruit Industries - k přitahování LedBorg do vašeho Raspberry Pi. Při použití průlomového kabelu přidáváte asi 8 dolarů na náklady projektu, nabízí to více možností pro přizpůsobení konečného produktu tím, že můžete snadno umístit LED uvnitř nebo pod něco, co chcete osvětlit.

Instalace modulu LedBorg

Zatímco byste si jistě dokázali vybudovat zcela indikační LED indikátor( a dotaz na vyhledávač se objeví spousta lidí, kteří tak učinili) organizace Piborg vyrábí takový kompaktní a levný LED modul, LedBorg, že jsme nemohli odolat tomu, abychom ji použili jako základ pro náš projekt indikace maliníku Pi LED.

Instalace modulu je snap, protože je navržen tak, aby se vešel přímo na piny GPIO na Pi. Nejprve vypněte Pi a otevřete pouzdro.

Nejdůležitější součástí procesu instalace je to, že modul je orientován tak, aby ikona LedBorg byla nejblíže k modulu RCA na desce Raspberry Pi( a tak okraj LedBorg je zarovnán s okraji desky Pi spřekrývající se část LedBorg visící nad deskou Pi a ne mimo okraj).Viz fotografie výše.

Zatímco máte desku Pi otevřenou, nyní by bylo skvělé, kdy byste měli pokrýt palubní LED indikátory( vedle portů USB), zvláště pokud používáte jasný případ. Nechcete, aby bylo zamyšlené čtení vašeho indikátoru LedBorg, protože indikátory napájení a sítě jsou tak jasné.

Pokryli jsme si vrstvu bílé elektrické pásky. To je natolik stmívalo, že jsme je stále dokázali zmínit, ale byly mnohem tlumenější než LedBorg, že to už nebylo rušivé.

Jakmile máte nainstalovaný LedBorg a případně zakryjete LED indikátory Pi elektrickou páskou, je čas vrátit případ zpět. Spusťte Pi, než se přesunete do další fáze tutoriálu.

Instalace softwaru LedBorg

PiBorg poskytuje skvělý softwarový balík pro LedBorg, který obsahuje jak GUI řadič, tak ovladače pro přístup k LedBorgu z příkazového řádku.

Než začnete, musíte se ujistit, že jste chytil správný balíček pro vaši verzi Rasbian a revizi # vaší rady Raspberry Pi.

Pokud vaše deska Raspberry Pi nemá žádné montážní otvory, je to Revize 1. Pokud vaše Raspberry Pi má montážní otvory( umístěné mezi USB porty a mezi porty napájení a HDMI), je to Revize 2. Také potřebujete znát jádroverze vaší Rasbské instalace. Otevřete terminál a zadejte následující příkaz, abyste zkontrolovali:

uname -r

Jakmile máte číslo revize a číslo jádra, můžete navštívit sekci Packages zde, abyste získali odkaz na váš balíček. V našem případě používáme desku Revision 1 s jádrem 3.6.11, takže bychom chytili soubor raspbian-2013-02-09-rev1.zip.

Abychom nainstalovali všechny dobroty, musíme otevřít terminál na Pi.a potom zadejte následující příkazy pro instalaci balíčku LedBorg.

Poznámka: Adresa URL ve třetím příkazu musíte nahradit adresou URL balíčku pro vaši kombinaci desky / jádra.

mkdir ~ / ledborg-setup
cd ~ / ledborg-setup
wget -O setup.zip http: //www.piborg.org/downloads/ledborg/ rspbian-2013-02-09-rev1.zip
rozbalit setup.zip
chmod + x install.sh
. /install.sh

V tomto okamžiku máte nyní obálku GUI pro ovladače LedBorg a samotné ovladače nainstalované.Na pracovní ploše Raspbian se zobrazí ikona pro balík GUI:

Spusťte a klikněte na ikonu LedBorg a spusťte wrapper GUI.Budete zacházet s rozhraním pro výběr barev takto:

Nyní je ten správný čas, abyste se ujistili, že váš modul je funkční.Vyberte si libovolnou barvu, vyjma černé barvy, a vyzkoušejte ji. Vyzkoušíme to vybráním několika barev:

Vypadá dobře! Je to jasné a matné plastové pouzdro, které jsme objednali pro projekt, nabízí mírné rozptýlení.Chcete-li přehrát modul LED ještě předtím, než budete pokračovat, klikněte na režim Demo:

V demo režimu můžete procházet všemi barvami různými rychlostmi, zkontrolovat vysoký / nízký výkon a jiným modulem LED v krocích.

Zde je v sekci Režim demo, že můžete také svůj LedBorg zapnout jako první z mnoha indikátorů.Volbou CPU v sekci Barvy se LED začne měnit ze zelené na žluté na červenou, což indikuje zatížení ARM procesoru Raspberry Pi. Doporučujeme, abyste změnili rychlost na pomalou dobu, když jste na ní - Rychle aktualizuje LED příliš rychle a přiměje ukazatel CPU místo toho, aby byl užitečný.

Kromě použití rozhraní GUI pro výběr barev můžete vybrat barvy z terminálu pomocí hodnot RGB.Otevřete terminál a zadejte následující příkaz, abyste vypnuli LED:

echo "000" & gt;/dev/ ledborg

Způsob, jakým LedBorg zpracovává hodnoty RGB je, že 0 znamená, že kanál je vypnutý, 1 znamená, že kanál je napůl napájen a 2 znamená, že kanál je plný.Například 001 nastaví červený kanál na 0%, zelený kanál na 0% a modrý kanál na 50% výkon.

Změňte hodnotu na 002 a výstup LED zůstane modrý, ale stane se jasnější, protože modrý kanál je nyní na výstupu 100%.Změňte hodnotu na hodnotu 202 a kombinace Červená a Modrá v plném výkonu, abyste získali purpurovou barvu.

Nyní, když víme, jak ručně manipulovat s LED diodami, podívejme se na použití skriptů pro změnu LED od jednoduchého světla po skutečný indikátor.

Konfigurace vašeho LedBorg jako indikátoru deště

Pro tuto část tutoriálu budeme společně kombinovat několik věcí, abychom změnili modul LedBorg LED na ukazatel dešťů založený na předpovědi počasí pro naši lokalitu. Použijeme Pythonův skript k vyvolání meteorologického rozhraní API, které zase pročte denní dešťovou srážku a poté přepněte LED do jasně modré barvy, aby indikovala předpokládaný déšť.

Nejprve musíme získat přístupový klíč API pro Weather Underground. Pro osobní potřebu a malé rozvojové projekty je rozhraní API zdarma. Navštivte stránku Registrace API počasí a zaregistrujte si klíč API.

Jakmile máte klíč API, navštivte Weather Underground a vyhledejte město, které chcete sledovat. V našem případě budeme sledovat San Fransisco, CA.Adresa URL stránky San Fransisco je:

http: //www.wunderground.com/US/CA/ San_Francisco.html

Důležitou součástí pro naše účely je poslední část URL: /CA/ San_Francisco.html. Použijeme to k úpravě předpovědi adresy URL nástroje API.Výchozí adresa URL je:

http: //api.wunderground.com/api/ KEY API /forecast/q/STATE/ CITY.json

Prognózu můžete vygenerovat pro jakékoliv město USA zadáním kódu API, dvoumístného kódu státu a názvu města z adresy URL, kterou jste vybrali z vašeho počasíPodzemní výsledky vyhledávání.

Jakmile máte adresu URL API s klíčem API a vloženým státem / městem, můžete upravit následující Python skript vytvořením nového textového dokumentu na vašem Pi pomocí Leafpadu a vložením následujícího kódu:

z urllib2 import urlopen
import json

req = urlopen( 'http: //api.wunderground.com/api/ API KEY /forecast/q/STATE/ CITY.json')
parsed_json = json.load( req)
pop = int( parsed_json ['prognóza'] ['txt_forecast'] [[0] ['pop'])

# Následuje hodnota ladění.
# Upravte hash a změňte
# celé číslo na hodnotu 0-100 pro testování
# LED odezvy.

# pop = 0

print 'Aktuální šance na srážky je{ }.'. formát( pop)

# Výchozí nastavení je zapnout LED
# pro každou příležitost deště nad 20%.Hodnotu
# můžete nastavit na hodnotu "if pop> 20:", jak chcete.

pokud pop & gt;20:
LedBorg = otevřený( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
tisk( 'Rain!')
else:
LedBorg =w ')
LedBorg.write( ' 000 ')
del LedBorg
tisk( ' Bez deště! ')

Uložte soubor jako wunderground.py do adresáře /home/pi/.Otevřete terminál a zadejte následující příkaz:

python wunderground.py

Pokud jste správně zadali klíč API a kód státu / města, měl by odkrýt odpověď, která vypadá takto:

Pokud je pro vaši oblast předvídáno sráženíváš výstup LedBorg by měl vypadat takto:

Nyní čeká na deštivý den, aby správně testoval scénář, by bylo nudné.Pokud dnes ve vaší oblasti nedojde k dešti a chcete vidět rozsvícení LED, upravte skript wunderground.py a nahraďte hodnotu "pop = pop" v řádku 13 hodnotou větší než 20, např. 60že se naše prognóza vrátila. Nezapomeňte změnit řádek zpět na "pop = pop" po dokončení.

Posledním krokem je nastavit úlohu cron pro automatické spuštění skriptu, který jsme právě uložili v pravidelném intervalu, aby byl indikátor LED stále aktuální.Vzhledem k tomu, že tento úkol je nezbytný jak pro tento skript, tak pro následující e-mailový indikátor, budeme pokrývat nastavení cron úlohy poté, co jsme vám ukázali, jak nastavit druhý skript.

Konfigurace vašeho LedBorg jako ukazatele Gmailu

Kdo nemá rád dopaminovou opravu, která přichází se zprávou o novém e-mailu? V této části tutoriálu vám ukážeme, jak používat LedBorg jako nový indikátor služby Gmail. Stejně jako v minulosti budeme kombinovat externí vstup( v tomto případě zdroj dat Atom namísto rozhraní API) a jednoduchý skript, který řídí naše LED.

Musíme rozšířit funkčnost instalace Pythonu trochu tak, že nainstalujeme FeedParser, nástroj pro čtení informací RSS / Atom Python. Otevřete terminál a zadejte následující příkaz:

sudo easy_install feedparser

Jakmile je instalace dokončena, můžeme nastavit, abychom vytvořili náš kontrolní skript Gmail. Opět pomocí programu Leafpad vložte následující text do editoru. Změňte uživatelské jméno a heslo tak, aby odpovídalo uživatelskému jménu a účtu účtu Gmail, který chcete zkontrolovat.

importparserser

# Zadejte své uživatelské jméno Gmail
# a heslo. Nezahrnujte část
# @ gmail.com
# vaše uživatelské jméno.

username = "uživatelské jméno"
heslo = "heslo"

mail = int( feedparser.parse( "https: //" + username + ":"] [" fullcount "])

# Následující je hodnota ladění.
# Upravte hash a změňte
# celé číslo na 0 nebo 1 pro testování
# LED odezvy.

# mail = 0

pokud je adresa & gt;0:
ledBorg = otevřený( '/dev/ ledborg', 'w')
LedBorg.write( '020')
del LedBorg
print( 'Mail!')w ')
LedBorg.write( ' 000 ')
del LedBorg
tisk( ' Ne mail! ')

Uložit skript jako gmailcheck.py. Otevřete terminál a zadejte následující příkaz:

python gmailcheck.py

Pokud máte e-mailovou schránku v doručené poště v Gmailu, dioda LED se změní na zelenou a dostanete odpověď jako taková:

Pokud máte v doručené poště v Gmailu své e-maily, vaše LedBorgbude vypadat takto:

Stejně jako skript pro kontrolu déšť jsme zahrnovali hodnotu ladění.Nemáte-li žádný nový e-mail, můžete buď poslat e-mail, abyste zvýšili počet vašich doručených zpráv na 1, nebo můžete vypsat hash komentářů a změnit ladicí linku na "mail = 1" a otestovat skript. Nezapomeňte vrátit linku po dokončení testování.

Projděte se do další části tutoriálu a nastavte skript Gmail tak, aby byl spuštěn podle plánu.

Nastavení úlohy Cron pro spuštění skriptu

Nyní, když máme k dispozici dva skripty, musíme nastavit úlohu cron, aby bylo možné je běžet po celý den, aby byl indikátor LED stále aktuální.

První věc, kterou chceme udělat, je vypnout LED, jestliže je v současné době z našich předchozích experimentů.Na typu terminálu:

echo "000" & gt;/dev/ ledborg

Zatímco jste stále na příkazové řádce, můžete otevřít editor cron. Pokud jste nikdy předtím nenastavili úlohu cron, důrazně doporučujeme zkontrolovat náš průvodce tím, že jej použijeme zde. To znamená, že vás provedeme základním programem tady.

Na typ terminálu:

sudo crontab -e

Otevře se tabulka Raspbian cron v textovém editoru Nano. Pomocí kláves se šipkami přejděte dolů až k dolnímu okraji. Toto je místo, kde nastavíme opakovanou práci cron pro naše skripty Pythonu.

Chcete-li nastavit deaktivní skript, do tabulky cron zadejte následující řádek:

* / 5 * * * * python /home/pi/ wunderground.py

Stisknutím kláves CTRL + X ukončete;zaškrtněte Ano, chcete-li uložit a přepsat existující tabulku cron. Hodnota, kterou jsme zadali v tabulce cron "* / 5 * * * *", nastaví skript každých 5 minut, navždy.

Každých 5 minut je skvělý čas pro scénář, který kontroluje předpokládaný déšť - můžete dokonce tvrdit, že je to příliš agresivní - ale pokud se snažíte držet na vrcholu e-mailu, je to příliš dlouhé rozpětíoznámení.Pokud nastavujete rozvrh pro oznamovací skript služby Gmail, zadejte následující řádek v tabulce cron:

* / 1 * * * * python /home/pi/ wunderground.py

Tato položka spouští skript gmailcheck.py každou minutu mnohem rychlejioznámení o aktualizaci.

To je vše, co je k tomu! Můžete experimentovat s vlastními skripty jazyka Python tak, že zrušíte příkazy if / else z našich a vyzkoušíte je pomocí zcela nových proměnných. Pokud najdete vstupní zdroj pro data, můžete jej proměnit v proměnnou ve vašem Python skriptovém akciovém trhu, počty pylů, Twitter se zmíní, pokud je pro něj API, můžete jej změnit na okolní indikátor LED.

Konečně chci poděkovat všem skvělým zdrojům, které jsem na tomto projektu pracovala. Bylo to trochu více než deset let od doby, kdy jsem aktivně psal programy a trvalo pár klepnutí, aby se prach a rez. Přispěvatelé v programu /r/ LearnPython mi pomohli hýbat ve výstupu rozhraní API pro Weather Underground, kde studovali, jak Michael v Mitch Tech se zabýval feedem Gmail Atom, který jej analyzoval pro LedBorg easy a studium modulů Python u Code Academy bylo skvělézpůsob, jak získat základní syntaxi a strukturu jazyka, který jsem nikdy předtím nepoužíval.