Mainos

Tässä nopeassa ja helpossa Raspberry Pi -projektissa opit tekemään Gmail-sähköposti-ilmoituksen valoksi. Jos sinulla on lukemattomia sähköposteja, Python-skripti syttyy LEDin. Tämä projekti vaatii hyvin vähän osia, ja se voidaan valmistaa alle tunnissa! Voit tietysti pukeutua LED-lamppuisi haluamallasi tavalla, kuten MineCraft redstone -lohkon tai muun selkeään muoviin tulostetun 3D-esineen. Tässä on lopputulos:

Mitä tarvitset

  • 1 x vadelmapi
  • 1 x leipälauta
  • 1 x 220 ohmin vastus
  • 1 x 5 mm LED
  • 1 x Gmail-tili
  • Uros naaras kytkeä johdot

Kaikki Raspberry Pi toimii tässä projektissa - jopa Pi Zero! Tarvitaan vain yksi GPIO-nasta, eikä se ole erityisen prosessoriintensiivinen. Jos sinulla on Pi-aloituspakkaus sinulla on enemmän kuin tarpeeksi osia tämän suorittamiseksi.

Rakenna suunnitelma

Gmail-Ilmoitus-LED
Tämä on todella yksinkertainen projekti. Valoa emittoiva diodi (LED) on kytketty Pi: n GPIO (yleiskäyttöinen tulolähtö) -tappiin. Hyvin yksinkertainen Python-skripti suoritetaan säännöllisesti tarkistaaksesi lukemattomat sähköpostit ja kytkeäksesi LEDin päälle tai pois päältä vastaavasti.

instagram viewer

Laitteisto

Gmail-ilmoitus kiertoon
Kytke LED: n positiivinen anodi (pitkä jalka) vastukseen ja sitten GPIO-nastaan ​​14. Voit käyttää mitä tahansa GPIO-nastaa, katso kuitenkin Sokka irti ensinnäkin, koska ne vaihtelevat hieman malleittain. Kytke negatiivinen katodi (lyhyt jalka ja litteä reuna) maahan.

Pi-asennus

Gmail-ilmoitus-Pi
Jos Pi: hen on asennettu käyttöjärjestelmä (OS), asennusta ei tarvita paljon (et ole varma mitä tarvitset? Opi asentamaan se täällä Kuinka asentaa käyttöjärjestelmä Raspberry Pi -sovellukseenTässä on ohjeet kuinka asentaa käyttöjärjestelmä Raspberry Pi -sovellukseen ja miten kloonata täydellinen asennus nopeasti nopeaan palautukseen. Lue lisää ). Avaa uusi terminaali (Ylävasen > valikko > Lisätarvikkeet > terminaali) Pi: llä (tarkista nämä pikavalinnat, jotka tekevät sinusta koodaavan ninjan Säästä aikaa Linux-päätteessä näiden 20 pikavalinnan avullaOlitpa terminaalin aloittelija vai joku, joka sai kauan sitten pelon selville, tässä on 20 pikavalintaa, jotka voivat auttaa sinua pääsemään komentorivin hankaluuteen. Lue lisää ). Sinun on luotava uusi kansio Python-komentosarjan tallentamiseksi. Kirjoita seuraava komento:

pwd

Tämä tarkoittaa ”Tulosta työhakemisto” ja näyttää sinulle missä kansiossa olet (oletuksena tämä on “/ home / pi”). Siirry asiakirjakansioon ja luo uusi hakemisto (kansio) nimeltään “gmail_python”:

CD-asiakirjat / sudo mkdir gmail_python

“Mkdir” -komento tarkoittaa “Tee hakemisto”. Kaikkia tätä seuraavia käytetään hakemistonimessä. Sinun pitäisi nyt voida nähdä hakemisto:

ls

Jos olet tehnyt virheen, voit poistaa tämän hakemiston helposti:

sudo rm -r gmail_python

Siirry nyt uuteen hakemistoon:

cd gmail_python /

Luo uusi Python-skripti:

sudo nano check_messages.py

Tämä luo skriptin ja avaa sen valmiina muokattavaksi nano. Voit tietysti käyttää toista ohjelmaa, kuten puhti, vaikka tämä tweet tiivistää tunteeni siitä:

Olen käyttänyt Vimiä nyt noin 2 vuotta, lähinnä siksi, etten osaa selvittää kuinka poistua siitä.

- I am Devloper (@iamdevloper) 17. helmikuuta 2014

Joking syrjään, katso tämä näiden kahden vertailu nano vs. vim: Päätetekstieditorit verrattuVaikka Linuxista on tullut tarpeeksi helppoa käytännössä kenen tahansa käytettäväksi ilman, että koskaan tarvitse käyttää terminaalia, on jotkut meistä, jotka käyttävät sitä säännöllisesti tai ovat uteliaita siitä, kuinka joku voi hallita ... Lue lisää täydellistä erittelyä varten.

Lehdistö CTRL + X poistua Nanosta ja päästä takaisin terminaaliin.

Python-asennus

Gmail-ilmoitus-koodi
Nyt kun Pi on asennettu, on aika kirjoittaa koodi. Tämä projekti vaatii erinomaista Gmail Python -kirjasto mennessä Charlie Guo. Lataa kirjasto Githubista ja purkaa sen sisältö. Sisällä pitäisi olla kansio nimeltä “gmail”. Kopioi tämä kansio kansioon / / home / pi / Documents / gmail_python.

Vaihda takaisin komentoriville ja avaa skripti uudelleen (jos painat ylös-näppäintä, voit selata aiemmin syöttämiäsi komentoja):

sudo nano check_messages.py

Huomaa, kuinka se on sama komento, jota käytit tiedoston luomiseen - jos tiedosto on jo olemassa, se avataan, muuten se luodaan. Tässä on Python:

Tuo gmail, RPi. GPIO GPIO: na, aika # tuontimoduulit GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) # kertoa Pi: lle, mitä otsikoita käytetään. GPIO.setup (14, GPIO.OUT) # kerro Pi: lle tämä nasta on lähtö g = gmail.login ('[email protected] ',' SALASANA ') lukemattomat viestit = g.inbox (). mail (lukematon = totta) total_messages = 0 viestille lukemattomissa viesteissä: total_messages + = 1 jos total_messages> 0: # lukemattomia sähköposteja on, ota GPIO.output käyttöön (14, True) muuten: # Ei lukemattomia sähköposteja, sammuta GPIO.output (14, False)

Sinun on annettava käyttäjänimesi ja salasanasi, jotta tämä toimii. Voit tarkastella gmail-laajennuksen koko lähdekoodia, jos haluat. Jos et halua tehdä niin (tai käytät kaksikerroista todennusta), sinun on muodostuttava yhteys Gmailiin käyttämällä OAuth2. Tämä on vähän mukana tässä opetusohjelmassa, mutta Googlella on erinomainen aloitusopas.

Tarkastellaan koodi. Ensin jotkut moduulit tuodaan. Python-moduulit ovat pieniä tarkoitukseen kirjoitettuja koodipalasia (samanlaisia ​​kuin Arduino IDE -kirjastot). RPI. GPIO on Pi-erityinen moduuli GPIO: n käyttämiseen, gmail on aiemmin lataamasi moduuli ja aika on Pythoniin integroitu moduuli, joka tarjoaa ajoitustoimintoja. Nyt ”GPIO.setmode” ja “GPIO.setup” käytetään kertomaan Pi: lle, että nasta 14 on lähtö ja että haluat käyttää ”Broadcom-pin numerointia” (lisätietoja BCM: stä).

Tämä rivi muodostaa yhteyden gmail-tiliisi. Se luo objektin nimeltä “g” ja kutsuu sisään aiemmin tuodun gmail-moduulin kirjautumismenetelmän. Älä unohda kirjoittaa gmail-sähköpostiosoitettasi ja salasanaasi.

g = gmail.login ('[email protected] ',' SALASANA ')

Nyt nouta kaikki lukemattomat viestit ja tallenna ne muuttujaan, jota kutsutaan ”lukemattomiksi viesteiksi”:

lukemattomat viestit = g.inbox (). mail (lukematon = totta)

Huomaa, kuinka “lukematon = tosi” välitetään parametrina - voit muuttaa tätä hakeaksesi viestejä eri parametrien, kuten lähettäjän tai aiheen, perusteella. Katso Sovellusohjelmointirajapinnan (API) dokumentaatio lisätietoja.

Seuraavaksi for-silmukkaa käytetään silmukoimaan jokainen viesti:

lukemattomien viestien viesteille: total_messages + = 1

Silmukoille ovat erittäin hyödyllisiä. He toistavat koodilohkon useita kertoja, usein hiukan erilaisella arvolla joka kerta. Tämä silmukka ylittää kaikki viestit lukemattomissa viesteissä ja lisää "total_messages" -muuttujaa.

Lopuksi käytetään joitain yksinkertaisia ​​"jos" -lauseita. Jos lukemattomia viestejä on, kytke LED-valo päälle, muuten kytke se pois päältä.

Muista, että Python on kirjainkoon mukainen ja käyttää valkoisia välilyöntejä. Jos sinulla on ongelmia koodin suorittamisessa, kokeile tämä verkkosivusto. Liitä Python sisään ja paina “vahvista python-koodin yläpuolella” -painiketta. Tämän pitäisi sitten kertoa, mitkä virheet (jos sellaisia ​​on) Pythonissa.

Vaihda terminaaliin ja suorita skripti:

python check_messages.py

Tämä komento suorittaa komentosarjan. Yritä muuttaa joitain postilaatikon sähköposteja manuaalisesti lukemattoman tilan lukemiseksi ja suorittaa komentosarja uudelleen - LED-merkkivalon pitäisi palata tai sammua heijastamaan postilaatikkoasi.

Cron-asennus

Nyt kun skripti toimii, on aika automatisoida se. Helpoin tapa tehdä tämä on cron-työ. Cron-töitä käytetään tehtävien ja komentosarjojen, kuten automaattisten varmuuskopioiden, ajoittamiseen. Avaa Crontab (ajoitettujen tehtävien luettelo):

crontab -e

Jos määritettyjä tehtäviä ei ole jo määritetty, tämä tiedosto on tyhjä (se voi sisältää asiakirjoja tai kommentteja, joita edeltää ”#”). Jos sinulla on jo merkintöjä täällä, kirjoita uusi komento uudelle riville:

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

Viisi “tähteä” (“* * * * *”) määrittelevät kuinka usein suoritetaan tehtävä (voit saada täältä todella hienoja, esimerkiksi joka toinen keskiviikko klo 2.00). Nämä viisi tähteä määrittävät, että tehtävä tulisi suorittaa joka minuutti. Tämä on pienin sallittu aikaväli (lisätietoja cronjob aikataulut Kuinka ajoittaa tehtäviä Linuxissa Cronin ja Crontabin avullaKyky automatisoida tehtäviä on yksi niistä futuristisista tekniikoista, joka on jo täällä. Jokainen Linux-käyttäjä voi hyötyä järjestelmän ja käyttäjän tehtävien ajoittamisesta helppokäyttöisen taustapalvelun cron ansiosta. Lue lisää ). Seuraavaksi “python” käskee aikataulun suorittaa skripti python-tiedostona. Lopuksi “~ / pi / Documents / gmail_python / check_messages.py” on skriptin ehdoton tiedostopolku - suhteellinen polku ei toimi.

Sinulla pitäisi nyt olla oma Gmail-ilmoitusvalo! Olisi melko helppoa muokata tätä etsimään viestejä, jotka perustuvat toiseen vaatimukseen tai suodattimeen (Opi käyttämään suodattimia täällä 10 sähköposti-ongelmaa, jonka voit ratkaista Gmail-suodattimillaYlitäytetty postilaatikko ajaa sinut hulluksi? Haluatko siirtyä postilaatikkoosi nopeammin kuin koskaan? Kokeile joitain näistä loistavista Gmail-suodattimista nähdäksesi ero. Lue lisää ) tai suorita toinen koodi - ehkä voisit luoda Twitter-botin, joka twiittaa sähköpostien perusteella (Lisätietoja Pi Twitter -botin rakentamisesta Kuinka luoda Raspberry Pi Twitter BotTwitter on maailman suurin lyhytsanomien varasto ihmisiltä, ​​joilla ei ole mitään sanottavaa - ja nyt sinäkin voit osallistua siihen eeppiseen projektiin automatisoidulla Twitter-botilla, jonka käyttö on sinun Vadelma... Lue lisää ).

Loppujen lopuksi koodaat ilmoitusruudun, mutta haluaisin tietää, miten se menee kommentteihin!

Joe on valmistunut tietojenkäsittelytieteestä Lincolnin yliopistosta, Iso-Britannia. Hän on ammattimainen ohjelmistokehittäjä, ja kun hän ei lentä drooneja tai kirjoita musiikkia, hänet voidaan usein löytää ottamasta valokuvia tai tuottamaan videoita.