Prečo to mám robiť?
Pretože je to zábava. Na rozdiel od mnohých našich tutoriálov, v ktorých je na začiatku zobrazená malá reklama, ktorá presne popisuje, aký prínos získate z projektu, blur je v tomto prípade dosť krátky, pretože výhodou je jednoducho baviť sa.
Raspberry Pi je dokonalé zariadenie na hranie, experimentovanie s elektronikou a naučiť sa nejaké programovanie. nikto potreby napríklad ukazovateľ okolitého dažďa v kuchyni, ale budovanie jednej je zábavné cvičenie a skvelá pripomienka, aby ste s vami mohli dať svoj dáždnik v potenciálne dažďových dňoch.
Čo potrebujem?
Ak chcete pokračovať spolu s tutoriálom budete potrebovať niekoľko vecí. Po prvé, predpokladáme, že ste už nasledovali náš predchádzajúci tutoriál: Príručka HTG pre Začíname s Raspberry Pi (a preto máte základy, ktoré sa vzťahujú na inštaláciu Rasbian na naše Raspberry Pi).
Ak chcete tento projekt robiť s rozpočtom, môžeme s istotou povedať, že najnovší model Raspberry Pi je významným nadbytkom pre túto prácu a my by sme vás povzbudili, aby ste vyhodili prach zo starého Raspberry Pi, ktorý ste dostali v skrini alebo vyzdvihnúť lacný použitý jeden eBay alebo podobne. Rozpočet múdry dlho-v-zub a malina Pi 1 model A alebo model B odhodil eBay za 10-15 dolárov je ideálnym pre tento projekt pred nákupom zbrusu nové $ 35 prvej generácie Pi.
Okrem toho, že máte nainštalovanú funkčnú jednotku Pi s programom Raspbian, budete potrebovať tieto veci:
- 1 modul LedBorg (~ $ 5.00 s prepravou 4 USD z Veľkej Británie do USA, pracuje so všetkými modelmi Raspberry Pi).
- 1 Clear Malina Pi Case je kompatibilná s vaším konkrétnym Pi modelom, ako je tento prípad Raspberry Pi 1 Model B.
Poznámka: Čiestý / matný prípad Pi je úplne voliteľný, ale ak v súčasnosti používate nepriehľadný prípad, váš LED indikátor bude skrytý dovnútra. Budete musieť vyrezať dieru vo svojom prípade, aby ste nechali svetlo alebo použite predlžovací kábel GPIO s odbočovačom - ako je tento od Adafruit Industries - aby ste priviedli LedBorg do vášho Raspberry Pi. Pri použití odpojovacieho kábla pridáte asi 8 dolárov na náklady projektu, ponúka väčší potenciál pre prispôsobenie konečného produktu tým, že ľahšie umiestnite LED do vnútra alebo pod niečo, čo chcete osvetliť.
Inštalácia modulu LedBorg
Inštalácia modulu je okamžitá, pretože je navrhnutá tak, aby priamo zapadla na piny GPIO na Pi. Najprv vypnite Pi a otvorte kufor.
Najdôležitejšou súčasťou inštalačného procesu je orientácia modulu tak, aby ikona LedBorg bola najbližšia k modulu RCA na doske Raspberry Pi (a teda okraj LedBorg je zarovnaný s okrajmi dosky Pi s previsom časť LedBorg visiace nad doskou Pi a nie od okraja). Pozrite si fotografiu vyššie.
Zatiaľ čo máte otvorenú dosku Pi, teraz by bol skvelý čas na pokrytie indikátorov LED na palube (vedľa portov USB), najmä ak používate jasný prípad. Nechcete, aby bolo mätúce čítanie indikátora LedBorg, pretože indikátory napájania a siete sú také jasné.
Pokryli sme to vrstvou bielej elektrickej pásky. To ich dostatočne stmievalo, aby sme ich stále mohli porovnávať, ale boli oveľa tmavšie ako LedBorg, že to už nebolo rušivé.
Akonáhle máte nainštalovaný LedBorg a prípadne ste pokryli LED indikátory Pi elektrickou páskou, je čas vrátiť prípad späť. Spustite svoj Pi pred tým, než sa presuniete do ďalšej fázy tutoriálu.
Inštalácia softvéru LedBorg
Skôr než začneme, musíte sa uistiť, že ste chytili správny balík pre vašu verziu Rasbian a revíziu # vašej rady Raspberry Pi.
Ak vaša Raspberry Pi doska nemá montážne otvory, je to revízia 1. Ak má vaša Raspberry Pi montážne otvory (umiestnené na portoch USB a medzi portom napájania a HDMI), potom je to revízia 2. Taktiež potrebujete poznať verziu jadra vašej Rasbiovej inštalácie. Otvorte terminál a zadajte nasledujúci príkaz na kontrolu:
uname -r
Akonáhle budete mať číslo revízie a číslo jadra, môžete navštíviť sekciu Balíky, aby ste získali odkaz na váš balík. V našom prípade používame dosku Revision 1 s jadrom 3.6.11, aby sme získali súbor raspbian-2013-02-09-rev1.zip.
Aby sme mohli nainštalovať všetky dobroty, potrebujeme otvoriť terminál na Pi. a potom zadajte nasledujúce príkazy na inštaláciu balíka LedBorg.
Poznámka: Adresa URL v treťom príkaze musíte nahradiť adresou URL balíka pre vašu kombináciu dosky / jadra.
mkdir ~/ledborg-setup cd ~/ledborg-setup wget -O setup.zip https://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip unzip setup.zip chmod +x install.sh./install.sh
V tomto okamihu máte teraz balík GUI pre ovládače LedBorg a samotné ovládače. Na vašej pracovnej ploche Raspbian sa zobrazí ikona balíka GUI:
Je tu v sekcii Režim demo, v ktorej môžete tiež zapnúť LedBorg do prvého z mnohých indikátorov. Výberom CPU v sekcii Farby sa LED začne meniť zo zelenej na žltú na červenú, čo naznačuje zaťaženie procesora ARM Raspberry Pi. Odporúčame meniť rýchlosť na pomalé, keď ste na ňom - rýchlo aktualizuje LED príliš rýchlo a robí indikátor CPU rozptyľujúc miesto užitočného.
Okrem používania rozhrania GUI na výber farieb môžete vybrať farby z terminálu pomocou hodnôt RGB. Otvorte terminál a zadajte nasledujúci príkaz na vypnutie LED:
echo '000' > /dev/ledborg
Spôsob, akým LedBorg spracováva hodnoty RGB, znamená, že 0 znamená, že kanál je vypnutý, 1 znamená, že kanál je polovičný výkon a 2 znamená, že kanál má plný výkon. Napríklad 001 nastaví červený kanál na 0%, zelený kanál na 0% a modrý kanál na 50% výkon.
Zmeňte hodnotu na hodnotu 002 a výstup LED zostane modrý, ale stane sa jasnejšou, pretože modrý kanál je teraz na 100% výstupe. Zmeňte hodnotu na hodnotu 202 a kombinujte červené a modré farby na plný výkon, aby ste získali purpurovú farbu.
Teraz, keď vieme, ako ručne manipulovať s LED, pozrite sa na používanie skriptov na to, aby sa naša LED rozsvietila z jednoduchého svetla na aktuálny indikátor.
Konfigurácia vášho LedBorg ako ukazovateľa dažďa
Po prvé, musíme získať prístupový kľúč API pre Weather Underground. Pre osobnú potrebu a malé rozvojové projekty je API zadarmo. Navštívte tu stránku prihlásenia API Weather a zaregistrujte si kľúč API.
Akonáhle máte kľúč API, navštívte Weather Underground a vyhľadajte mesto, ktoré chcete sledovať. V našom prípade budeme sledovať San Fransisco, CA. Adresa URL stránky San Fransisco je:
https://www.wunderground.com/US/CA/San_Francisco.html
Dôležitou časťou pre naše účely je posledná časť URL: /CA/San_Francisco.html. Použijeme ho na úpravu predpovedanej webovej adresy pre nástroj API. Základná webová adresa je:
https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json
Môžete vytvoriť predpoveď pre akékoľvek mesto USA zadaním kľúča rozhrania API, dvojjazyčného kódu štátu a názvu mesta z adresy URL, ktorú ste vytiahli z výsledkov vyhľadávania v režime Počasie pod zemou.
Po zadaní adresy URL rozhrania API pomocou kľúča rozhrania API a štátu alebo mesta môžete upraviť nasledujúci skript Python tak, že vytvoríte nový textový dokument na svojom počítači pomocou nástroja Leafpad a vložíte do neho nasledujúci kód:
from urllib2 import urlopen import json
req = urlopen('https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json') parsed_json = json.load(req) pop = int(parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])
# Toto je hodnota ladenia. # Upravte hash a zmeňte # celé číslo na test 0 až 100 # LED reakcia.
# pop = 0
print 'Current chance of precipitation is {}.'.format(pop)
# The default setting is to turn on the LED # for any chance of rain above 20%. You can adjust # the value in 'if pop > 20:' as you wish.
if pop > 20: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('002') del LedBorg print ('Rain!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No rain!')
Uložte súbor ako wunderground.py v adresári / home / pi /. Otvorte terminál a zadajte nasledujúci príkaz:
python wunderground.py
Ak ste kľúč API a svoje kódy stavu / mesta správne zadali, mali by odstrániť odpoveď, ktorá vyzerá takto:
Posledným krokom je nastavenie úlohy cron, aby sa automaticky spustil skript, ktorý sme práve uložili v pravidelnom intervale, aby sme udržali indikátor LED aktuálny. Keďže táto úloha je potrebná pre tento skript aj pre indikátor e-mailu, ktorý nasleduje, budeme pokrývať nastavenie úlohy cron po tom, čo sme vám ukázali, ako nastaviť ďalší skript.
Konfigurácia vášho LedBorg ako indikátora služby Gmail
Kto nemá rád fix dopamínu, ktorý prichádza s vidieť nový e-mail vo svojej doručenej pošte? V tejto časti tutoriálu vám ukážeme, ako používať LedBorg ako nový ukazovateľ služby Gmail. Rovnako ako v poslednej dobe budeme kombinovať externý vstup (v tomto prípade feed Atom namiesto rozhrania API) a jednoduchý skript na riadenie našej LED.
Musíme rozšíriť funkčnosť našej inštalácie Pythonu trochu inštaláciou FeedParser, nástroja na čítanie RSS / Atom Python. Otvorte terminál a zadajte nasledujúci príkaz:
sudo easy_install feedparser
Po dokončení inštalácie môžeme nastaviť, aby sme vytvorili náš kontrolný skript služby Gmail. Znova pomocou programu Leafpad vložte do editora nasledujúci text. Zmeňte používateľské meno a heslo tak, aby sa zhodovalo s používateľským menom a heslom účtu Gmail, ktorý chcete skontrolovať.
import feedparser
# Enter your Gmail username # and password. Don't include # the @gmail.com portion of # your username.
username = 'username' password = 'password'
mail = int(feedparser.parse('https://' + username + ':' + password +'@mail.google.com/gmail/feed/atom')['feed']['fullcount'])
# Toto je hodnota ladenia. # Upravte hash a zmeňte # celé číslo na 0 alebo 1 na testovanie # LED reakcia.
# mail = 0
if mail > 0: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('020') del LedBorg print ('Mail!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No mail!')
Uložte skript ako gmailcheck.py. Otvorte terminál a zadajte nasledujúci príkaz:
python gmailcheck.py
Ak máte e-mailovú schránku v priečinku doručenej pošty v službe Gmail, LED dióda sa zmení na zelenú a dostanete takú odpoveď:
Prejdite do nasledujúcej časti tutoriálu a nastavte skript Gmail tak, aby sa spúšťal podľa plánu.
Nastavenie úlohy Cron na spustenie skriptu
Prvá vec, ktorú chceme urobiť, je vypnúť LED, ak je v súčasnosti na našich predchádzajúcich experimentoch. Na typ terminálu:
echo “000” > /dev/ledborg
Aj keď ste stále na príkazovom riadku, môžete otvoriť editor cron. Ak ste predtým nikdy nenastavili úlohu cron, dôrazne odporúčame, aby ste si našu sprievodcu použili tu. To znamená, že vás prevedieme základným programom tu.
Na typ terminálu:
sudo crontab –e
To otvorí Raspbian cron tabuľku v textovom editore Nano. Pomocou klávesov so šípkami prejdite dole dole. Toto je miesto, kde nastavíme opakovanú prácu cron pre naše skripty Pythonu.
Ak chcete nastaviť dažďový skript, do tabuľky cron zadajte nasledujúci riadok:
*/5 * * * * python /home/pi/wunderground.py
Stlačte kombináciu klávesov CTRL + X na ukončenie; vyberte áno, ak chcete uložiť a prepísať existujúcu tabuľku cron. Hodnota, ktorú sme zadali v tabuľke cron "* / 5 * * * *", nastaví skript na každých 5 minút navždy.
Každých 5 minút je skvelý čas na skript, ktorý kontroluje predpovedaný dážď - dokonca môžete tvrdiť, že je to trochu príliš agresívne - ale ak sa snažíte držať na vrchu e-mailu, je to príliš dlhá doba na oznamovanie, Ak nastavujete rozvrh pre notifikačný skript služby Gmail, zadajte nasledujúci riadok v tabuľke cron:
*/1 * * * * python /home/pi/wunderground.py
Táto položka spustí skript gmailcheck.py každú minútu, aby sa oveľa rýchlejšie upozornilo na aktualizáciu.
To je všetko, čo je k tomu! Môžete experimentovať s vlastnými skripty Pythonu tak, že zrušíte vyhlásenia if / else z našich a vyskúšate ich s úplne novými premennými. Ak môžete nájsť vstupný zdroj pre dáta, môžete ho zmeniť na premennú vo vašom Python skriptovom akciovom trhu, počty peľov, Twitter sa spomína, ak je preň API, môžete ho zmeniť na okolitý LED indikátor.
Na záver chcem poďakovať všetkým veľkým zdrojom, ktoré som v tomto projekte pracovala. Je to trochu viac ako desať rokov, odkedy som aktívne písal programy a trvalo niekoľko klepnutí, aby sa prach a hrdza dostali von. Prispievatelia v programe / r / LearnPython mi pomohli vyskočiť z výstupu rozhrania API pre Weather Underground a študovali, ako sa Michael v Mitch Tech zaoberal zdrojom Gmail Atom, ktorý z neho urobil analýzu pre LedBorg a študoval učiace moduly Pythonu v Code Academy skvelý spôsob, ako zobrať základnú syntax a štruktúru jazyka, ktorý som nikdy predtým nepoužíval.