Zašto to želim učiniti?
Zato što je zabavno. Za razliku od mnogih naših tutorijalnih programa gdje ćemo uključiti i malo objašnjenje na vrhu koji ukazuje točno na koju korist ćete proizaći iz projekta, ovo je prilično kratko u ovom slučaju jer se korist jednostavno zabavlja.
Raspberry Pi savršen je uređaj za igranje, eksperimentiranje s elektronikom i naučiti neke programe. Nitko potrebe primjerice, pokazatelj ambijentalne kiše u svojoj kuhinji, no izgradnja je zabavna vježba i veliki podsjetnik da vam donese kišobran s vama u potencijalno olujnim danima.
Što trebam?
Da biste slijedili zajedno s tutorialom, trebat će vam nekoliko stvari. Prvo pretpostavljamo da ste već pratili naš prethodni vodič: HTG Vodič za početak korištenja maline Pi (i na taj način imate osnove pokriveno instaliranjem Rasbiana na Raspberry Pi).
Ako želite izvršiti ovaj projekt na proračunu, s povjerenjem vam možemo reći da je najnoviji model Raspberry Pi značajan prekoračenje za taj posao, a potaknuli biste nas da otpustite prašinu sa starog malina Pi koje ste dobili u ormaru ili pokupiti jeftinu upotrebu jednog eBaya ili slično. Proračun s dugačakim zubima Raspberry Pi 1 Model A ili Model B snopom s eBaya za 10-15 dolara savršeno je prikladan za ovaj projekt nad kupnjom potpuno nove 35 dolara za sadašnju generaciju Pi.
Uz funkcionalnu jedinicu Pi s Raspbian instaliranim na njoj trebate sljedeće:
- 1 LedBorg modul (~ 5,00 $ s 4 dolara isporučuje se od UK do SAD, radi sa svim modelima Raspberry Pi).
- 1 Clear Raspberry Pi Case kompatibilan s vašim Pi modelom poput ovog modela Raspberry Pi 1 Model B.
Bilješka: Prozirni / zamrljani slučaj Pi je potpuno opcionalan, ali ako trenutno koristite neprozirnu kutiju, LED indikator će biti skriven unutra. Morat ćete ili izrezati rupu u svojem kućištu kako bi se osvijetlila ili upotrijebila GPIO produžni kabel s kitom za izbacivanje - poput ove tvrtke Adafruit Industries - da biste povezali LedBorg na svoj Raspberry Pi. Prilikom korištenja kabela za izbacivanje dodaje se oko 8 dolara na trošak projekta i nudi više potencijala za prilagodbu krajnjeg proizvoda jer možete lakše staviti LED unutar stvari ili pod nešto što želite osvijetliti.
Instaliranje LedBorg
Instaliranje modula je ugriz kao što je dizajniran da se uklapa izravno preko GPIO igle na Pi. Prvo, iskopčajte Pi i otvorite slučaj.
Najvažniji dio instalacijskog postupka je da usmjeravate modul tako da je ikona LedBorg najbliža RCA modulu na ploči Raspberry Pi (i time je rub LedBorg-a isprepleten s rubovima ploče Pi s prekomjernim dio LedBorg koji visi preko ploče Pi, a ne s ruba). Pogledajte fotografiju iznad.
Dok ste otvorili pločicu Pi, sada bi bilo izvrsno vrijeme za pokrivanje LED indikatora na vozilu (pored USB priključaka), pogotovo ako koristite jasan slučaj. Ne želite da bude zbunjujuće za čitanje vašeg LedBorg pokazatelja jer su svjetla indikatora napajanja i mreže tako svijetla.
Naše smo pokrivale slojem bijele električne trake. To ih je dovoljno dimmed da ih još uvijek možemo referencirati, ali su bili toliko slabiji od LedBorg da više nije zbunjujući.
Nakon što instalirate LedBorg i opcionalno pokrivate Pi's LED indikatore električnom trakom, vrijeme je da zatvorite slučaj. Pokrenite svoj Pi prije nego što se prebacite na sljedeću fazu tutoriala.
Instaliranje softvera LedBorg
Prije nego što započnemo, morate se pobrinuti da uhvatite pravi paket za svoju verziju Rasbian i reviziju # svoje ploče s malinama.
Ako vaša lampa Raspberry Pi nema ugradne otvore, to je Revizija 1. Ako vaš Raspberry Pi ima ugradne otvore (nalazi se između USB priključaka i između napajanja i HDMI priključka), to je Revizija 2. Također morate znati verziju kernela vašeg Rasbian instalacije. Otvorite terminal i unesite sljedeću naredbu da biste provjerili:
uname -r
Nakon što dobijete broj izmjene i broj kernela, ovdje možete posjetiti odjeljak Paketi da biste preuzeli vezu za svoj paket. U našem slučaju koristimo ploču Revision 1 s kernelom 3.6.11 kako bismo iskoristili datoteku raspbian-2013-02-09-rev1.zip.
Da bismo instalirali sve pogodnosti, moramo otvoriti terminal na Pi. a zatim unesite sljedeće naredbe za instalaciju LedBorg paketa.
Bilješka: Morate zamijeniti URL u trećoj naredbi s URL-om paketa za kombinaciju ploče / kernela.
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
U ovom trenutku sada imate GUI omot za LedBorg vozače i sami vozači instalirali. Na radnoj površini Raspifa vidjet ćete ikonu za GUI zamotuljak:
Ovdje je u odjeljku Demo Mode da i LedBorg možete pretvoriti u prvi od mnogih pokazatelja. Odabirom CPU-a u odjeljku Boja LED će se početi mijenjati od zelene do žute do crvene da bi označio opterećenje ARM procesora Raspberry Pi. Preporučujemo da promijenite brzinu na usporavanje dok ste na njemu - Brzo ažurira LED prebrzo i čini indikator CPU-a omamljujući umjesto korisnim.
Osim korištenja GUI sučelja za odabir boja, možete odabrati boje s terminala pomoću RGB vrijednosti. Otvorite terminal i unesite sljedeću naredbu da isključite LED:
echo '000' > /dev/ledborg
Način na koji LedBorg obrađuje RGB vrijednosti je da 0 znači da je kanal isključen, 1 znači da je kanal pola snage, a 2 znači da je kanal pun snage. Tako bi na primjer 001 postavio Crveni kanal na 0%, zeleni kanal na 0% i plavi kanal s 50% snage.
Promijenite vrijednost na 002 i LED izlaz ostaje plava, ali postaje svjetliji jer plavi kanal sada ima 100% izlaza. Promijenite vrijednost na 202 i Crveno i Plavo kombinirano s punom snagom da biste napravili magenta boju.
Sada kad znamo kako ručno upravljati LED-om, pogledajmo pomoću skripti kako bismo naš LED diode pretvorili iz jednostavnog svjetla na stvarni pokazatelj.
Konfiguriranje vašeg LedBorg kao indikatora kiše
Prvo, trebamo dobiti API pristupni ključ za Weather Underground. Za osobnu upotrebu i mali razvojni projekti API je besplatan. Posjetite stranicu za registraciju Vrijeme API-ja i prijavite se za API ključ.
Nakon što dobijete API ključ, posjetite Weather Underground i potražite grad koji želite pratiti. U našem slučaju ćemo pratiti San Fransisku, CA. URL za predviđanje stranice San Fransisona je:
https://www.wunderground.com/US/CA/San_Francisco.html
Važan dio naših svrha je posljednji dio URL-a: /CA/San_Francisco.html. Koristit ćemo to za uređivanje URL predviđanja API alata. Osnovni URL je:
https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json
Možete generirati predviđanje za bilo koji grad u SAD-u unošenjem API ključa, dvoslovnog državnog koda i naziva grada iz URL-a koji ste izdvojili iz rezultatima pretraživanja podzemnih pretraga.
Nakon što ste unijeli URL API-ja s vašim API ključem i državom / gradom, tada možete urediti sljedeću Python skriptu stvaranjem novog tekstualnog dokumenta na svojem Pi pomoću Leafpad i zalijepite ga u nju:
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'])
# Slijedi vrijednost ispravljanja pogrešaka. # Obrišite hash i promijenite # cijeli broj na 0-100 za testiranje # LED odgovor.
# 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!')
Spremite datoteku kao wunderground.py u / home / pi / direktoriju. Otvorite terminal i upišite sljedeću naredbu:
python wunderground.py
Ako ste pravilno unijeli svoj API ključ i države / gradske kôdove, trebao bi povratiti odgovor koji izgleda kao:
Posljednji korak je da postavimo cron posao za automatsko pokretanje skripte koju smo upravo spremili na redovitom intervalu kako bi LED indikator bio trenutni. Budući da je ovaj zadatak neophodan i za ovu skriptu i za indikator e-pošte koji slijedi, obuhvatit ćemo postavljanje zadatka za cron nakon što vam pokazujemo kako postaviti drugu skriptu.
Konfiguriranje vašeg LedBorg kao pokazatelja usluge Gmail
Moramo malo proširiti funkcionalnost naše instalacije Python instaliranjem FeedParser, alata za čitanje Feed Python RSS / Atom. Otvorite terminal i unesite sljedeću naredbu:
sudo easy_install feedparser
Po dovršetku instalacije možemo postaviti da radimo na izradi skripte za provjeru usluge Gmail. Opet, koristeći Leafpad, zalijepite sljedeći tekst u urednik. Promijenite korisničko ime i zaporku kako biste se podudarali s korisničkim imenom i zaporkom Gmail računa koji želite provjeriti.
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'])
# Slijedi vrijednost ispravljanja pogrešaka. # Obrišite hash i promijenite # cijeli broj na 0 ili 1 za testiranje # LED odgovor.
# 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!')
Spremi skriptu kao gmailcheck.py. Otvorite terminal i upišite sljedeću naredbu:
python gmailcheck.py
Ako u sobi za pristiglu poštu imate e-poštu, LED će postati zelena i dobit ćete odgovor poput takvog:
Uđite u sljedeći dio udžbenika da biste postavili skriptu za Gmail da se pokrene u rasporedu.
Postavljanje Cron Joba za pokretanje skripte
Prvo što želimo je isključiti LED ako je trenutačno uključen iz naših prethodnih eksperimenata. Na vrsti terminala:
echo “000” > /dev/ledborg
Dok ste još uvijek u naredbenom retku, možete otvoriti cron editor. Ako nikad prije niste postavili posao, predlažemo da provjerite naš vodič da ga koristite ovdje. To je rekao, mi ćemo vas prošetati postavljanjem osnovnog rasporeda upravo ovdje.
Na vrsti terminala:
sudo crontab –e
To će otvoriti Raspbian cron tablicu u Nano uređivaču teksta. Pomoću tipki sa strelicama pomaknite se prema dolje do samog dna. Ovo je mjesto gdje ćemo postaviti ponavljajući posao cron za naše Python skripte.
Ako želite postaviti skriptu za kišu, unesite sljedeću retku u tablicu cron:
*/5 * * * * python /home/pi/wunderground.py
Pritisnite CTRL + X za izlaz; odaberite da za spremanje i prebrisanje postojećeg stola za cron. Vrijednost koju unesemo u tablicu "* / 5 * * * *" postavlja skriptu da se pokreće svaka 5 minuta, zauvijek.
Svaka 5 minuta je lijep raspon vremena za skriptu koja provjerava predviđenu kišu - čak se može pretpostaviti da je to previše agresivno - no ako pokušavate zadržati vrhunac e-pošte, to je malo predugačak raspon za obavijest, Ako postavljate raspored za skriptu obavijesti za Gmail, unesite sljedeći redak u tablicu cron:
*/1 * * * * python /home/pi/wunderground.py
Ovaj unos svake minute pokreće gmailcheck.py skriptu za mnogo bržu ažuriranu obavijest.
To je sve što je moguće! Možete eksperimentirati s vlastitim Python skriptima uklanjanjem if / other izjava iz naših i pokušavajući ih s potpuno nove varijable. Ako možete pronaći ulazni izvor za podatke, možete ga pretvoriti u varijablu u vašem Pythonovom scenariju tržišta dionica, broj polena, Twitter spominje, ako postoji API za njega možete ga pretvoriti u ambijentalni LED indikator.
Konačno, želim zahvaljivati svim velikim resursima koje sam koristio za ovaj projekt. Prošlo je nešto više od desetljeća otkako sam aktivno pisala programe i trebalo je nekoliko kucanja da bi dobili prašinu i hrđu. Doprinosi / r / LearnPython mi pomogli da se mučim u API izlazu za Weather Underground, proučavajući kako je Michael nad Mitch Techom bavio Gmail Atom feed napravio je parsiranje za LedBorg lako, a proučavanje Pythonovih modula učenja na Kodnoj akademiji bio je sjajan je način za preuzimanje osnovne sintakse i strukture jezika koji nikad prije nisam koristio.