Napravite Rasvjetno svjetlo za obavijesti Raspberry Pi u Gmailu

  • Michael Fisher
  • 0
  • 3648
  • 832
Oglas

U ovom brzom i jednostavnom projektu Raspberry Pi naučit ćete kako napraviti lampicu za obavijesti putem Gmaila. Ako imate nepročitane poruke e-pošte, Python skripta uključuje LED. Ovaj projekt zahtijeva vrlo malo dijelova, a može biti završen za manje od sat vremena! Naravno, možete LED dotjerati na bilo koji način, poput MineCraft blok-crvenog kamena ili drugih 3D predmeta otisnutih u prozirnu plastiku. Evo krajnjeg rezultata:

Što trebaš

  • 1 x Raspberry Pi
  • 1 x ploča
  • Otpornik 1 x 220 ohm
  • 1 x 5 mm LED
  • 1 x Gmail račun
  • Priključite žice od muškarca do žene

Bilo koji Raspberry Pi će raditi na ovom projektu - čak i Pi Zero! Potreban je samo jedan GPIO pin i nije osobito intenzivan CPU. Ako imate Pi starter kit, imate više nego dovoljno dijelova da biste to dovršili.

Izgradite plan


Ovo je stvarno jednostavan projekt. Svjetlosna dioda (LED) spojena je na GPIO pin (ulaz općeg izlaza) na Pi. Vrlo jednostavna Python skripta redovito će se pokretati kako bi provjeravala nepročitane poruke e-pošte i na taj način uključila ili isključila LED.

Hardver


Spojite pozitivnu anodu (dugačku nogu) LED-a na otpornik, a zatim na GPIO pin 14. Možete upotrijebiti bilo koji GPIO pin, ali prvo pogledajte isječak, jer se oni malo razlikuju od modela. Spojite negativnu katodu (kratka noga s ravnim rubom) na zemlju.

Postavljanje Pi


Pod uvjetom da vaš Pi ima instaliran operativni sustav (OS), nije potrebno puno postavljanja (niste sigurni što vam treba? Saznajte kako ovdje instalirati. Kako instalirati operativni sustav na Raspberry Pi. Kako instalirati operativni sustav na malinu Pi Evo kako instalirati OS na vaš Raspberry Pi i kako klonirati savršenu postavku za brzi oporavak od katastrofe.). Otvori novi terminal (Gore lijevo > izbornik > Pribor > Terminal) na Pi-u (pogledajte ove prečace da biste napravili nindžiranje kodiranja. Uštedite vrijeme u Linux terminalu pomoću ovih 20 prečaca. Uštedite vrijeme u Linux terminalu s ovih 20 prečaca Bez obzira jeste li početnik ili neko ko je odavno prevladao strah) , evo 20 prečaca koji vam mogu pomoći u prevladavanju nekih nespretnosti naredbenog retka.). Za spremanje skripte Python morate stvoriti novu mapu. Unesite sljedeću naredbu:

pwd

To se zalaže “Ispis radnog imenika”, i prikazat će vam u kojoj se mapi nalazite (prema zadanim postavkama ovo je) “/ Home / pi”). Otvorite mapu s dokumentima i stvorite novu mapu (mapu) koja se zove “gmail_python”:

cd Dokumenti / sudo mkdir gmail_python

“mkdir” naredba stoji “Napravite direktorij”. Sve što slijedi nakon toga upotrijebit će se za naziv direktorija. Sada biste mogli vidjeti svoj direktorij:

ls

Ako ste pogriješili, možete lako ukloniti ovaj direktorij:

sudo rm -r gmail_python

Sada idite u novi direktorij:

cd gmail_python /

Napravite novu skriptu Python-a:

sudo nano check_messages.py

Ovo će stvoriti skriptu i otvoriti je spremnu za uređivanje u Nano-u. Mogli biste, naravno, upotrijebiti neki drugi program, poput Vima, iako ovaj tvit sažima moje osjećaje oko toga:

Koristim Vim već otprilike dvije godine, najviše zato što ne mogu otkriti kako izaći iz njega.

- Ja sam Devloper (@iamdevloper) 17. veljače 2014

Šalu na stranu, pogledajte ovu usporedbu između dva nano vs. vim: Terminalni uređivač teksta u usporedbi nano vs vim: Terminalni uređivači teksta u usporedbi Iako je Linux postao dovoljno jednostavan da ga praktički svi mogu koristiti bez upotrebe terminala, postoje neke od nas koji ga redovito koristimo ili smo znatiželjni kako neko može kontrolirati ... za potpuni kvar.

tisak CTRL + X za izlazak iz Nanoa i povratak na terminal.

Postavljanje Pythona


Sad kad je Pi postavljen, vrijeme je za pisanje koda. Za ovaj je projekt potrebna izvrsna Gmail Python knjižnica Charlie Guo-a. Preuzmite biblioteku s Githuba i izdvojite sadržaj. Unutar bi trebala biti mapa koja se zove “gmail”. Kopirajte cijelu ovu mapu u “/ Home / pi / Dokumenti / gmail_python”.

Vratite se na naredbeni redak i ponovno otvorite skriptu (ako pritisnete tipku gore možete se pomicati kroz prethodno unešene naredbe):

sudo nano check_messages.py

Primijetite kako je to ista naredba kojom ste stvorili datoteku - ako datoteka već postoji otvorit će se, u protivnom će se stvoriti. Evo Pythona:

uvezete gmail, RPi.GPIO kao GPIO, vremenski # uvozni moduli GPIO.setwarnings (lažno) GPIO.setmode (GPIO.BCM) # recite Pi koja zaglavlja koriste GPIO.setup (14, GPIO.OUT) # recite Pi ovo pin je izlazni g = gmail.login ('[email protected] ',' VAŠA PUTNICA ') nepročitano_mesations = g.inbox (). pošta (nepročitano = istina) total_messages = 0 za poruku u nepročitanoj poruci: total_messages + = 1 ako total_messages> 0: # postoje nepročitane poruke e-pošte, upalite svjetlo na GPIO.output (14, istina) ostalo: # nema nepročitanih poruka e-pošte, isključite svjetlo GPIO.output (14, lažno)

Za to ćete trebati unijeti svoje korisničko ime i lozinku. Ako želite, možete vidjeti potpuni izvorni kod za gmail dodatak. Ako vam se to ne čini ugodno (ili koristite dvofaktornu provjeru autentičnosti), morat ćete se povezati s Gmailom putem OAuth2. Ovo je malo uključeno u ovaj vodič, ali Google ima izvrstan vodič za početak rada.

Raščlanimo šifru. Prvo su neki moduli uvezeni. Moduli u Python-u su mali dijelovi koda napisani za svrhu (slično knjižnicama u Arduino IDE). RPi.GPIO je Pi specifičan modul za pristup GPIO, gmail je modul koji ste prethodno preuzeli, a vrijeme je modul ugrađen u Python za pružanje vremenskih funkcija. Sada “GPIO.setmode” i “GPIO.setup” koriste se za kazivanje Pi-a da je pin 14 izlaz, a koji želite koristiti “Šifriranje širokokutnih pinova” (više informacija o BCM).

Ova se linija povezuje s vašim gmail računom. Stvara objekt koji se zove “g”, i poziva metodu prijave prethodno uvezenog gmail modula. Ne zaboravite upisati svoju gmail adresu i zaporku.

g = gmail.login ('[email protected] ',' VAŠA PUTNICA ')

Sada pronađite sve nepročitane poruke i spremite ih u varijablu zvanu “nepročitane poruke”:

undead_messages = g.inbox (). pošta (nepročitano = istina)

Primjetite kako “nepročitana = True” kao parametar - ovo možete promijeniti da biste preuzeli poruke na temelju različitih parametara, poput pošiljatelja ili predmeta. Pogledajte dokumentaciju programskog sučelja aplikacijskog sučelja (API) za puno više informacija.

Zatim se za petlju nad svakom porukom koristi petlja "petlja":

za poruku u nepročitanoj poruci: total_messages + = 1

Za petlje su vrlo korisne. Blok koda ponavljaju nekoliko puta, često s nešto drugačijom vrijednosti svaki put. Ovo za petlju prelazi svaku poruku u nepročitanim porukama i koracima “total_messages” varijabla.

Napokon, nekoliko jednostavnih “ako” koriste se izjave. Ako postoje nepročitane poruke, uključite LED, u suprotnom isključite ako nije.

Imajte na umu da je Python osjetljiv na velika i mala slova i koristi bijeli razmak. Ako imate problema s pokretanjem koda, pokušajte s ovom web stranicom. Zalijepite Python i pritisnite “potvrdite iznad python koda” dugme. To bi vam tada trebalo reći koje su pogreške (ako postoje) prisutne u vašem Pythonu.

Prebacite se na terminal i pokrenite svoju skriptu:

python check_messages.py

Ova naredba će pokrenuti vašu skriptu. Pokušajte ručno promijeniti neke adrese e-pošte u pristigloj pošti da biste pročitali status i ponovo pokrenite skriptu - trebali biste vidjeti kako se LED uključuje i isključuje kako bi odrazio pretinac pristigle pošte..

Postavljanje Cron-a

Sada kada skripta radi vrijeme je za automatizaciju. Najlakši način za to je kroz posao na cron. Cron poslovi koriste se za planiranje zadataka i skripti, poput automatiziranih sigurnosnih kopija. Otvorite Crontab (popis planiranih zadataka):

crontab -e

Ako već nisu postavljeni zakazani zadaci, ova će datoteka biti prazna (može sadržavati dokumentaciju ili komentare, a prethodi im “#”). Ako već imate unosa ovdje, jednostavno unesite novu naredbu u novi redak:

* * * * * python ~ / pi / Documents / gmail_python / check_messages.py

Pet “zvijezde” (“* * * * *”) odredite koliko često trebate izvoditi zadatak (ovdje se možete stvarno sjetiti, npr. svake druge srijede u 14:00). Ovih pet zvjezdica određuje da se zadatak treba izvoditi svake minute. Ovo je najmanji dozvoljeni interval (saznajte više o zakazivanju rasporeda zadataka) Kako zakazati zadatke u Linuxu pomoću Cron-a i Crontaba Kako planirati zadatke u Linuxu pomoću Cron-a i Crontaba-a. Mogućnost automatizacije zadataka jedna je od futurističkih tehnologija koja se već nalazi ovdje. Svaki Linux korisnik može imati koristi od sustava zakazivanja i zadataka korisnika, zahvaljujući cron-u, jednostavnoj pozadinskoj usluzi.). Sljedeći, “piton” kaže planeru da izvrši skriptu kao python datoteku. Konačno, “~ / Pi / Dokumenti / gmail_python / check_messages.py” je apsolutni put datoteke do vaše skripte - relativni put neće raditi.

Sada biste trebali imati svoje Gmail svjetlo za obavijesti! Bilo bi vrlo jednostavno to izmijeniti u potrazi za porukama na temelju drugačijeg zahtjeva ili filtra (naučite kako ovdje koristiti filtre. 10 Problema s e-poštom koje možete riješiti Gmail filtrima. 10 Problemi s e-poštom koje možete riješiti Gmail filtrima ? Želite li brže nego ikad prijeći u poštu s poštom? Isprobajte neke od ovih sjajnih filtera Gmaila da biste uočili razliku.) Ili izvršite drugi komad koda - možda biste mogli stvoriti Twitter bot koji će tvitovati na temelju e-poruka (saznajte više o izgradnja Pi Twitter bota Kako izgraditi Raspberry Pi Twitter Bot Kako sagraditi Raspberry Pi Twitter Bot Twitter je najveće svjetsko skladište kratkih poruka od ljudi koji nemaju što za reći - i sada i vi možete automatizirano pridonijeti tom epskom projektu. Twitter bot, pokretan vašom malinom…).

Međutim, na kraju kodirate okvir s obavijestima, volio bih znati kako to ide u komentarima!




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.