Utwórz lampkę powiadomień Gmaila Raspberry Pi

  • Mark Lucas
  • 0
  • 2218
  • 393
Reklama

W tym szybkim i łatwym projekcie Raspberry Pi dowiesz się, jak rozjaśnić powiadomienia e-mail w Gmailu. Jeśli masz nieprzeczytane wiadomości e-mail, skrypt w języku Python włącza diodę LED. Ten projekt wymaga bardzo niewielu części i można go zrealizować w niecałą godzinę! Możesz oczywiście ubrać swoją diodę LED w dowolny sposób, na przykład blok Redstone MineCraft lub inny obiekt wydrukowany w 3D z przezroczystego plastiku. Oto wynik końcowy:

Czego potrzebujesz

  • 1 x Raspberry Pi
  • 1 x deska do krojenia chleba
  • Rezystor 1 x 220 omów
  • 1 x dioda LED 5 mm
  • 1 x konto Gmail
  • Przewody przyłączeniowe męskie do żeńskich

Każde Raspberry Pi będzie działać w tym projekcie - nawet Pi Zero! Potrzebny jest tylko jeden pin GPIO i nie jest on szczególnie obciążający procesor. Jeśli masz zestaw startowy Pi, masz więcej niż wystarczająco części, aby to zrobić.

Plan kompilacji


To naprawdę prosty projekt. Dioda elektroluminescencyjna (LED) jest podłączona do pinu GPIO (wyjścia ogólnego przeznaczenia) na Pi. Bardzo prosty skrypt Pythona będzie uruchamiany regularnie, aby sprawdzać nieprzeczytane wiadomości e-mail i odpowiednio włączać lub wyłączać diodę LED.

Sprzęt


Podłącz dodatnią anodę (długą nogę) diody LED do rezystora, a następnie do pinu GPIO 14. Możesz użyć dowolnego pinu GPIO, jednak najpierw spójrz na pinout, ponieważ różnią się one nieznacznie w zależności od modelu. Podłącz ujemną katodę (krótka noga z płaską krawędzią) do uziemienia.

Konfiguracja pi


Pod warunkiem, że Twój Pi ma zainstalowany system operacyjny (OS), nie wymaga wiele instalacji (nie wiesz, czego potrzebujesz? Dowiedz się, jak zainstalować tutaj tutaj Jak zainstalować system operacyjny na Raspberry Pi Jak zainstalować system operacyjny na Raspberry Pi Oto jak zainstalować system operacyjny na Raspberry Pi i jak sklonować idealną konfigurację do szybkiego odzyskiwania po awarii). Otwórz nowy terminal (Lewy górny > menu > Akcesoria > Terminal) na Pi (sprawdź te skróty, aby uczynić cię kodującym ninja Oszczędź czas w terminalu Linux za pomocą tych 20 skrótów Zaoszczędź czas w terminalu Linux za pomocą tych 20 skrótów Czy jesteś początkującym terminalem lub kimś, kto dawno przestał się bać , oto 20 skrótów, które mogą pomóc w przezwyciężeniu niektórych niezręczności wiersza poleceń). Musisz utworzyć nowy folder do przechowywania skryptu Python. Wpisz następujące polecenie:

pwd

To oznacza “Wydrukuj katalog roboczy”, i pokaże ci folder, w którym się znajdujesz (domyślnie będzie to “/ home / pi”). Przejdź do folderu dokumentów i utwórz nowy katalog (folder) o nazwie “gmail_python”:

cd Documents / sudo mkdir gmail_python

The “mkdir” polecenie oznacza “Utwórz katalog”. Wszystko, co nastąpi po tym, zostanie użyte dla nazwy katalogu. Powinieneś teraz widzieć swój katalog:

ls

Jeśli popełniłeś błąd, możesz łatwo usunąć ten katalog:

sudo rm -r gmail_python

Teraz przejdź do nowego katalogu:

cd gmail_python /

Utwórz nowy skrypt w języku Python:

sudo nano check_messages.py

Spowoduje to utworzenie skryptu i otwarcie go do edycji w Nano. Możesz oczywiście użyć innego programu, takiego jak Vim, chociaż ten tweet podsumowuje moje odczucia na ten temat:

Używam Vima od około 2 lat, głównie dlatego, że nie mogę wymyślić, jak z niego wyjść.

- I Am Devloper (@iamdevloper) 17 lutego 2014 r

Żartując na bok, sprawdź to porównanie między dwoma nano vs. vim: edytory tekstu terminalu w porównaniu nano vs. vim: edytory tekstu terminalu w porównaniu Chociaż Linux stał się na tyle łatwy, że praktycznie każdy może go używać bez konieczności korzystania z terminalu, jest kilka z nas, którzy regularnie go używają lub są ciekawi, jak można kontrolować… pełny podział.

naciśnij CTRL + X wyjść z Nano i wrócić do terminalu.

Konfiguracja Pythona


Teraz, gdy Pi jest skonfigurowane, czas napisać kod. Ten projekt wymaga doskonałej biblioteki Python Gmaila autorstwa Charliego Guo. Pobierz bibliotekę z Github i wypakuj zawartość. Wewnątrz powinien znajdować się folder o nazwie “gmail”. Skopiuj cały folder do “/ home / pi / Documents / gmail_python”.

Wróć do wiersza poleceń i ponownie otwórz skrypt (jeśli naciśniesz klawisz w górę, możesz przewijać poprzednio wprowadzone polecenia):

sudo nano check_messages.py

Zwróć uwagę, jak to jest to samo polecenie, którego użyłeś do utworzenia pliku - jeśli plik już istnieje, zostanie otwarty, w przeciwnym razie zostanie utworzony. Oto Python:

import gmail, RPi.GPIO jako GPIO, czas # importuj moduły GPIO.setwarnings (False) GPIO.setmode (GPIO.BCM) # powiedz Pi, jakie nagłówki mają używać GPIO.setup (14, GPIO.OUT) # powiedz Pi to pin jest wyjściem g = gmail.login ('[email protected]', 'YOUR PASSWORD') unread_messages = g.inbox (). mail (nieprzeczytane = prawda) total_messages = 0 dla wiadomości w nieprzeczytanych komunikatach: total_messages + = 1 jeśli total_messages> 0: # są nieprzeczytane wiadomości e-mail, włącz światło na GPIO.output (14, Prawda) inaczej: # nie ma nieprzeczytanych wiadomości e-mail, wyłącz światło GPIO.output (14, fałsz)

Aby to zadziałało, musisz wprowadzić nazwę użytkownika i hasło. Jeśli chcesz, możesz wyświetlić pełny kod źródłowy wtyczki gmail. Jeśli nie czujesz się komfortowo (lub używasz uwierzytelniania dwuskładnikowego), musisz połączyć się z Gmailem za pomocą OAuth2. Jest to trochę związane z tym samouczkiem, jednak Google ma doskonały przewodnik dla początkujących.

Podzielmy kod. Najpierw importowane są niektóre moduły. Moduły w Pythonie to małe fragmenty kodu napisane w określonym celu (podobne do bibliotek w Arduino IDE). RPi.GPIO to moduł specyficzny dla Pi do uzyskiwania dostępu do GPIO, gmail to moduł, który wcześniej pobrałeś, a time to moduł wbudowany w Pythona, zapewniający funkcje synchronizacji. Teraz “GPIO.setmode” i “GPIO.setup” są używane, aby powiedzieć Pi, że pin 14 jest wyjściem i że chcesz go użyć “Numeracja pinów Broadcom” (więcej informacji o BCM).

Ta linia łączy się z Twoim kontem Gmail. Tworzy obiekt o nazwie “sol”, i wywołuje metodę logowania do wcześniej zaimportowanego modułu Gmail. Nie zapomnij podać adresu e-mail Gmaila i hasła.

g = gmail.login („[email protected]”, „YOUR PASSWORD”)

Teraz pobierz wszystkie nieprzeczytane wiadomości i zapisz je w zmiennej o nazwie “Nieprzeczytane wiadomości”:

unread_messages = g.inbox (). mail (nieprzeczytane = prawda)

Zauważ jak “nieprzeczytane = prawda” jest przekazywany jako parametr - możesz to zmienić, aby pobierać wiadomości na podstawie różnych parametrów, takich jak nadawca lub temat. Więcej informacji można znaleźć w dokumentacji interfejsu programowania aplikacji (API).

Następnie pętla for służy do przeglądania każdej wiadomości:

dla wiadomości w nieprzeczytanych komunikatach: total_messages + = 1

Pętle są bardzo przydatne. Powtarzają blok kodu kilka razy, często za każdym razem z nieco inną wartością. Ta pętla for przechodzi przez każdą wiadomość w nieprzeczytanych wiadomościach i zwiększa “total_messages” zmienna.

Wreszcie kilka prostych “Jeśli” instrukcje są używane. Jeśli są nieprzeczytane wiadomości, włącz diodę LED, w przeciwnym razie wyłącz, jeśli jest wyłączona.

Pamiętaj, że w Pythonie rozróżniana jest wielkość liter i używa białych odstępów. Jeśli masz problemy z uruchomieniem kodu, wypróbuj tę witrynę. Wklej swój Python i naciśnij “sprawdź poprawność powyżej kodu python” przycisk. To powinno ci powiedzieć, jakie błędy (jeśli w ogóle) występują w twoim Pythonie.

Przejdź do terminalu i uruchom skrypt:

python check_messages.py

To polecenie uruchomi twój skrypt. Spróbuj ręcznie zmienić niektóre e-maile w skrzynce odbiorczej na nieprzeczytane i ponownie uruchomić skrypt - dioda LED powinna się włączać lub wyłączać, aby odzwierciedlać skrzynkę odbiorczą.

Konfiguracja Cron

Teraz, gdy skrypt działa, czas go zautomatyzować. Najłatwiej to zrobić poprzez zadanie crona. Zadania Cron służą do planowania zadań i skryptów, takich jak automatyczne kopie zapasowe. Otwórz Crontab (listę zaplanowanych zadań):

crontab -e

Jeśli nie skonfigurowano jeszcze żadnych zaplanowanych zadań, ten plik będzie pusty (może zawierać dokumentację lub komentarze poprzedzone znakiem “#”). Jeśli masz już tutaj wpisy, po prostu wpisz nowe polecenie w nowym wierszu:

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

Piątka “gwiazdy” (“* * * * *”) określ, jak często należy uruchamiać zadanie (możesz się naprawdę spodobać, np. co drugą środę o godzinie 2.00). Te pięć gwiazdek określa, że ​​zadanie powinno być uruchamiane co minutę. Jest to najmniejszy dozwolony przedział czasu (dowiedz się więcej o planowaniu zadań cronjob Jak planować zadania w systemie Linux za pomocą Cron i Crontab Jak planować zadania w systemie Linux za pomocą Cron i Crontab Zdolność do automatyzacji zadań jest jedną z tych futurystycznych technologii, które już tu są. Każdy Linux użytkownik może skorzystać z harmonogramu zadań systemowych i zadań użytkownika, dzięki cronowi, łatwej w obsłudze usłudze w tle.). Kolejny, “pyton” informuje program planujący, aby wykonał skrypt jako plik python. Wreszcie, “~ / pi / Documents / gmail_python / check_messages.py” jest bezwzględną ścieżką pliku do skryptu - ścieżka względna nie będzie działać.

Powinieneś teraz mieć własną lampkę powiadomień Gmaila! Łatwo byłoby to zmodyfikować, aby wyszukiwać wiadomości oparte na innych wymaganiach lub filtrach (dowiedz się, jak używać filtrów tutaj 10 problemów z pocztą e-mail, które można rozwiązać za pomocą filtrów Gmaila 10 problemów z pocztą e-mail, które można rozwiązać za pomocą filtrów Gmaila Przepełniona skrzynka odbiorcza doprowadza Cię do szaleństwa „Czy chcesz szybciej przeglądać swoją skrzynkę odbiorczą? Wypróbuj niektóre z tych genialnych filtrów Gmaila, aby zobaczyć różnicę) lub wykonaj inny fragment kodu - być może możesz utworzyć bota Twittera, który tweetuje na podstawie wiadomości e-mail (dowiedz się więcej o budowanie bota Pi Twitter Jak zbudować Raspberry Pi Twitter Bot Jak zbudować Raspberry Pi Twitter Bot Twitter to największe na świecie repozytorium krótkich wiadomości od osób, które nie mają nic do powiedzenia - a teraz Ty też możesz wnieść swój wkład w ten epicki projekt zautomatyzowanym Bot na Twitterze, obsługiwany przez Twój Raspberry…).

Jakkolwiek ostatecznie kodujesz swoje pole powiadomień, chciałbym wiedzieć, jak to wygląda w komentarzach!




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.