Skelbimas

Šiame greitame ir lengvame „Raspberry Pi“ projekte sužinosite, kaip įjungti „Gmail“ el. Pašto pranešimų signalą. Jei turite neskaitytų el. Laiškų, „Python“ scenarijus užsidega. Šiam projektui reikia labai nedaug dalių ir jis gali būti baigtas per valandą! Jūs, be abejo, galite apsirengti savo šviesos diodais bet kokiu noru, pavyzdžiui, „MineCraft“ raudonojo akmens bloku ar kitu 3D objektu, atspausdintu iš skaidraus plastiko. Štai toks galutinis rezultatas:

Ko tau reikia

  • 1 x aviečių pi
  • 1 x lentos
  • 1 x 220 omų rezistorius
  • 1 x 5 mm šviesos diodas
  • 1 x „Gmail“ paskyra
  • Vyriškos ir moteriškos jungiamosios vielos

Bet kuris „Raspberry Pi“ šiam projektui veiks - net „Pi Zero“! Reikia tik vieno GPIO PIN kodo, ir jis nėra ypač reikalingas procesoriui. Jei turite Pi starterio rinkinys turite daugiau nei pakankamai dalių, kad tai atliktumėte.

Sukurkite planą

„Gmail-Notification“ LED
Tai tikrai paprastas projektas. Šviesos diodas (LED) yra prijungtas prie GPIO (bendrosios paskirties įvesties išvesties) kaiščio Pi. Labai paprastas „Python“ scenarijus bus reguliariai vykdomas norint patikrinti neskaitytus el. laiškus ir atitinkamai įjungti arba išjungti šviesos diodą.

instagram viewer

Aparatūra

„Gmail“ pranešimas-grandinė
Prijunkite teigiamą šviesos diodo anodą (ilgąją koją) prie rezistoriaus, o po to prie GPIO 14 kontakto. Galite naudoti bet kurį GPIO PIN kodą, tačiau pažiūrėkite į pinout pirma, nes jie šiek tiek skiriasi pagal modelius. Prijunkite neigiamą katodą (trumpą koją su plokščiu kraštu) prie žemės.

Pi sąranka

„Gmail-Notification-Pi“
Jei jūsų „Pi“ yra įdiegta operacinė sistema (OS), nereikia daug sąrankos (nežinote, ko jums reikia?) Sužinokite, kaip įdiegti čia Kaip įdiegti operacinę sistemą „Raspberry Pi“Štai kaip įdiegti operacinę sistemą „Raspberry Pi“ ir kaip klonuoti tobulą sąranką, kad greitai atsigautumėte. Skaityti daugiau ). Atidaryti naują terminalą (Viršuje kairėje > Meniu > Priedai > Terminalas) Pi (patikrinkite šiuos spartieji klavišai, kad taptų kodavimo ninja Sutaupykite laiko „Linux“ terminale naudodami šiuos 20 nuorodųNesvarbu, ar esate terminalo naujokas, ar tas, kuris seniai įveikė baimę, čia yra 20 nuorodų, kurios gali padėti įveikti kai kurias komandinės eilutės nepatogumus. Skaityti daugiau ). Norėdami išsaugoti „Python“ scenarijų, turite sukurti naują aplanką. Įveskite šią komandą:

pwd

Tai reiškia „Spausdinti darbo katalogą“ ir parodys, kuriame aplanke esate (pagal numatytuosius nustatymus tai yra „/ home / pi“). Eikite į dokumentų aplanką ir sukurkite naują katalogą (aplanką) pavadinimu „gmail_python“:

CD dokumentai / sudo mkdir gmail_python

„Mkdir“ komanda reiškia „Sukurti katalogą“. Viskas, kas bus po to, bus naudojama katalogo pavadinime. Dabar turėtumėte pamatyti savo katalogą:

ls

Jei padarėte klaidą, galite lengvai pašalinti šį katalogą:

sudo rm -r gmail_python

Dabar eikite į naują katalogą:

cd gmail_python /

Sukurkite naują Python scenarijų:

sudo nano check_messages.py

Tai sukurs scenarijų ir atidarys jį paruoštą redaguoti Nano. Jūs, žinoma, galėtumėte naudoti kitą programą, pvz Vim, nors šis tviteris apibendrina mano jausmus dėl to:

Aš naudoju „Vim“ jau apie 2 metus, daugiausia todėl, kad negaliu išsiaiškinti, kaip jo išeiti.

- Aš esu „Devloper“ (@iamdevloper) 2014 m. Vasario 17 d

Juokdamiesi nuošalyje, patikrinkite tai palyginimas nano vs. vim: palyginti terminalo teksto redaktoriaiNors „Linux“ tapo pakankamai paprasta, kad ja galėtų naudotis bet kas niekada ir niekada nesinaudoję terminalu, yra keletas iš mūsų, kurie juo reguliariai naudojasi ar kuriems įdomu, kaip valdyti ... Skaityti daugiau visam suskirstymui.

Paspauskite CTRL + X išeiti iš Nano ir grįžti į terminalą.

„Python“ sąranka

„Gmail“ pranešimo kodas
Dabar, kai Pi sąranka, laikas parašyti kodą. Šis projektas reikalauja nepriekaištingo „Gmail Python“ biblioteka autorius Čarlis Guo. Atsisiųskite biblioteką iš „Github“ ir ištraukite turinį. Viduje turėtų būti aplankas, vadinamas „gmail“. Nukopijuokite visą aplanką į „/ home / pi / Documents / gmail_python“.

Grįžkite į komandų eilutę ir vėl atidarykite scenarijų (jei paspausite aukštyn mygtuką, galite slinkti anksčiau įvestomis komandomis):

sudo nano check_messages.py

Atkreipkite dėmesį, kaip tai yra ta pati komanda, kurią naudojote kurdami failą - jei failas jau yra, jis bus atidarytas, kitu atveju jis bus sukurtas. Štai Python:

importo gmail, RPi. GPIO kaip GPIO, laiko # importo moduliai GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) # nurodykite Pi, kokias antraštes naudoti. GPIO.setup (14, GPIO.OUT) # pasakykite Pi, kad šis kaištis yra išvestis g = gmail.login ('[email protected] ',' JŪSŲ PASLAPIS ') neskaitytos žinutės = g.inbox (). paštas (neskaitytos = tikros) total_messages = 0 pranešimui neskaitytuose pranešimuose: total_messages + = 1, jei total_messages> 0: # yra neskaitytų el. laiškų, įjunkite GPIO.output (14, True) dar: # nėra neskaitytų el. laiškų, išjunkite GPIO.output (14, False)

Norėdami tai atlikti, turėsite įvesti savo vartotojo vardą ir slaptažodį. Jei norite, galite peržiūrėti visą „gmail“ papildinio šaltinio kodą. Jei nesijaučiate patogiai tai darydami (arba naudojate dviejų veiksnių autentifikavimą), turėsite prisijungti prie „Gmail“ naudodami „OAuth2“. Tai šiek tiek įtraukta į šią mokymo programą, tačiau „Google“ turi puikią patirtį pradžios vadovas.

Suskirstykime kodą. Pirmiausia kai kurie moduliai yra importuojami. „Python“ moduliai yra maži tam tikslui sukurti kodo fragmentai (panašūs į „Arduino IDE“ bibliotekas). RPi. GPIO yra „Pi“ modulis, skirtas pasiekti GPIO, „gmail“ yra modulis, kurį anksčiau atsisiuntėte, o laikas yra „Python“ modulis, skirtas laiko nustatymo funkcijoms teikti. Dabar „GPIO.setmode“ ir „GPIO.setup“ naudojami pranešti Pi, kad 14 kaištis yra išėjimas, o jūs norite naudoti „Broadcom Pin Numbering“ (daugiau informacijos apie BCM).

Ši eilutė jungiama prie jūsų „Gmail“ paskyros. Tai sukuria objektą, vadinamą „g“, ir iškviečia anksčiau importuoto „gmail“ modulio prisijungimo metodą. Nepamirškite įvesti savo „Gmail“ el. Pašto adreso ir slaptažodžio.

g = gmail.login ('[email protected] ',' JŪSŲ PASLAPIS ')

Dabar nuskaitykite visus neskaitytus pranešimus ir saugokite juos kintamajame, vadinamame „neskaitytais pranešimais“:

neskaitytos žinutės = g.inbox (). paštas (neskaitytos = tikros)

Atkreipkite dėmesį, kaip „neskaitytas = teisingas“ perduodamas kaip parametras - galite tai pakeisti, jei norite gauti pranešimus, pagrįstus skirtingais parametrais, tokiais kaip siuntėjas ar tema. Patikrinkite Programų programavimo sąsajos (API) dokumentacija Norėdami gauti daugiau informacijos.

Tada „for loop“ yra naudojamas kiekvienam pranešimui perduoti:

pranešimui neskaitytuose pranešimuose: iš viso_pasakojimų + = 1

Dėl kilpų yra labai naudinga. Jie kelis kartus pakartoja kodo bloką, dažnai kiekvieną kartą naudodami šiek tiek kitokią reikšmę. Ši ciklo dalis peržengia kiekvieną neperskaitytų pranešimų pranešimą ir padidina kintamąjį „total_messages“.

Galiausiai, naudojami keli paprasti teiginiai. Jei yra neskaitytų pranešimų, įjunkite šviesos diodą, priešingu atveju išjunkite.

Atminkite, kad „Python“ yra mažosios ir mažosios raidės, be to, naudojami balti tarpai. Jei kyla problemų gaunant kodą, pabandykite šioje svetainėje. Įklijuokite „Python“ ir paspauskite mygtuką „patvirtinti virš python kodo“. Tada tai turėtų pasakyti, kokių (jei yra) klaidų yra jūsų Python'e.

Perjunkite į terminalą ir paleiskite scenarijų:

python check_messages.py

Ši komanda paleis scenarijų. Pabandykite rankiniu būdu pakeisti kai kuriuos el. Laiškus gautuosiuose, kad neskaitytumėte būsenos, ir paleiskite scenarijų dar kartą - turėtumėte pamatyti, kad šviesos diodas įsijungs arba išsijungs, kad atspindėtų gautuosius.

„Cron“ sąranka

Dabar, kai scenarijus veikia, laikas jį automatizuoti. Lengviausias būdas tai padaryti yra dirbant su cron. „Cron“ darbai naudojami planuojant užduotis ir scenarijus, tokius kaip automatinės atsarginės kopijos. Atidarykite „Crontab“ (suplanuotų užduočių sąrašas):

crontab -e

Jei dar nenustatyta suplanuotų užduočių, šis failas bus tuščias (jame gali būti dokumentų ar komentarų, prieš kuriuos rašoma „#“). Jei jau turite įrašų čia, tiesiog įveskite naują komandą naujoje eilutėje:

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

Penkios „žvaigždės“ („* * * * *“) nurodo, kaip dažnai reikia atlikti užduotį (čia galite pasijusti išgalvotai, pvz., Kas antrą trečiadienį, 2.00). Šios penkios žvaigždės nurodo, kad užduotis turėtų būti vykdoma kiekvieną minutę. Tai mažiausias leidžiamas intervalas (sužinokite daugiau apie „cronjob“ planavimas Kaip suplanuoti "Linux" užduotis naudojant "Cron" ir "Crontab"Galimybė automatizuoti užduotis yra viena iš tų futuristinių technologijų, kurios jau yra čia. Kiekvienas „Linux“ vartotojas gali gauti naudos iš planavimo sistemos ir vartotojo užduočių, nes „cron“ yra lengvai naudojama foninė paslauga. Skaityti daugiau ). Tada „python“ liepia planuotojui vykdyti scenarijų kaip python failą. Galiausiai „~ / pi / Documents / gmail_python / check_messages.py“ yra absoliutus failo kelias į jūsų scenarijų - santykinis kelias neveiks.

Dabar turėtumėte turėti savo „Gmail“ pranešimų lemputę! Tai būtų gana paprasta modifikuoti, jei norite ieškoti pranešimų, pagrįstų kitu reikalavimu ar filtru (sužinokite, kaip čia naudoti filtrus 10 el. Pašto problemų, kurias galite išspręsti naudodami „Gmail“ filtrusPerpildyti gautieji varo jus iš proto? Ar norite greičiau nei bet kada perskaityti gautuosius? Išbandykite kelis iš šių puikių „Gmail“ filtrų, kad pamatytumėte skirtumą. Skaityti daugiau ) arba vykdykite kitą kodo dalį - galbūt galėtumėte sukurti „Twitter“ žiniatinklio robotą, kuris tviteriu pagrįstas el. laiškais (Sužinokite daugiau apie „Pi Twitter“ roboto kūrimą Kaip sukurti „Raspberry Pi Twitter Bot“„Twitter“ yra didžiausia pasaulyje trumpų žinučių iš žmonių, neturinčių ką pasakyti, saugykla - ir dabar jūs taip pat galite prisidėti prie to epinio projekto su automatizuotu „Twitter“ robotu, kurį maitina jūsų Aviečių ... Skaityti daugiau ).

Nepaisant to, ar jūs užkoduosite savo pranešimų dėžutę, norėčiau sužinoti, kaip tai vyksta komentaruose!

Džo yra baigusi kompiuterių mokslą Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai jis neskraido dronais ar nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.