Faire une pi framboise lumière de notification gmail

Video: Raspberry Pi - Beginner Tutorial of Adafruit Gmail LED Project!

Dans ce projet, rapide et facile Raspberry Pi, vous apprendrez comment faire une lumière de notification par courrier électronique Gmail. Si vous avez des e-mails non lus, un Python le script allume la LED. Ce projet ne nécessite que très peu de pièces, et peut être complété en moins d`une heure! Vous pouvez habiller de cours de votre LED comme bon vous semble, comme un bloc de Redstone MineCraft, ou tout autre objet 3D imprimé en plastique transparent. Voici le résultat final:

De quoi as-tu besoin

  • 1 x Raspberry Pi
  • 1 x breadboard
  • 1 x 220 ohms résistance
  • 1 x 5mm LED
  • 1 x compte Gmail
  • Mâle à crochet femelle jusqu`à fils

Tout Raspberry Pi travaillera pour ce projet - même le Pi zéro! Une seule broche GPIO est nécessaire, et il est pas particulièrement d`UC. Si vous avez un kit de démarrage Pi vous avez plus de suffisamment de pièces pour compléter cela.

plan de construction

Gmail-Notification-LED
Ce projet est très simple. Une diode électroluminescente (LED) est reliée à une GPIO (General Purpose Input Output) Pin sur la Pi. Un très simple Python script sera exécuté régulièrement pour vérifier des e-mails non lus et tournez la LED ou désactiver en conséquence.

le matériel

Gmail-Notification-circuit
Connectez l`anode positive (longue jambe) de la LED à la résistance et à la broche GPIO 14. Vous pouvez utiliser une broche GPIO, regardez cependant au Brochage d`abord, car ils varient légèrement entre les modèles. Raccorder la cathode négative (branche courte avec le bord plat) à la masse.

Configuration Pi

Gmail-Notification-Pi
Fournir votre Pi a un système d`exploitation (OS) installé il n`y a pas beaucoup de configuration nécessaire (pas sûr de ce que vous avez besoin? Apprenez à installer un ici). Ouvrez un nouveau terminal (En haut à gauche gt; menu gt; Accessoires gt; Terminal) Sur le Pi (caisse ceux-ci raccourcis pour vous faire un ninja de codage). Vous devez créer un nouveau dossier pour stocker le script Python. Entrez la commande suivante:Comment faire pour installer un système d`exploitation à votre Raspberry PiComment faire pour installer un système d`exploitation à votre Raspberry PiVoici comment obtenir un nouveau système d`exploitation installé et en cours d`exécution sur votre Pi - et comment cloner votre configuration idéale pour la reprise après incident rapide.Lire la suite

PWD

Ce signifie « Imprimer Répertoire de travail », et vous montrera ce que le dossier que vous êtes (par défaut, soit « / home / pi »). Naviguez dans le dossier de documents et de créer un nouveau répertoire (dossier) appelé « gmail_python »:

CD documents /sudo mkdir gmail_python

La commande « mkdir » signifie « Make Directory ». Tout ce qui suit ce sera utilisé pour le nom du répertoire. Vous devriez maintenant être en mesure de voir votre répertoire:

ls

Si vous avez fait une erreur, vous pouvez facilement supprimer ce répertoire:

sudo rm -r gmail_python

Naviguez maintenant dans le nouveau répertoire:

CD gmail_python /

Créer un nouveau Python scénario:

sudo nano check_messages.py

Cela va créer le script et ouvrez-le prêt pour l`édition dans Nano. Vous pouvez bien sûr utiliser un autre programme, comme Vim, bien que ce tweet résume mes sentiments à ce sujet:

Blague à part, consultez cette comparaison entre les deux pour une ventilation complète.nano vs vim: Editeurs de texte Terminal Comparésnano vs vim: Editeurs de texte Terminal ComparésBien que Linux est devenu assez facile pour quiconque d`utiliser pratiquement sans jamais avoir à utiliser le terminal, il y a certains d`entre nous qui utilisent régulièrement ou sont curieux de savoir comment on peut contrôler ...Lire la suite

presse CTRL + X pour quitter Nano et retourner au terminal.

Configuration Python

Gmail-Notification-code
Maintenant que Pi est configuré, il est temps d`écrire le code. Ce projet nécessite l`excellente bibliothèque Python Gmail par Charlie Guo. Téléchargez la bibliothèque de Github et extraire le contenu. il devrait être à l`intérieur d`un dossier appelé « gmail ». Copiez ce dossier entier dans « / home / pi / Documents / gmail_python ».

Revenez à la ligne de commande et ouvrez à nouveau votre script (si vous appuyez sur la touche jusqu`à vous pouvez faire défiler vos commandes précédemment entrées):

sudo nano check_messages.py

Remarquez comment c`est la même commande que vous avez utilisé pour créer le fichier - si un fichier existe déjà, il sera ouvert, sinon il sera créé. Ici se trouve le Python:

Video: Raspberry Pi LED email notifier

importer Gmail, RPi.GPIO comme GPIO, temps # Les modules d`importationGPIO.SetWarnings(Faux)GPIO.mode réglages(GPIO.BCM) # Dire Pi à utiliser ce que les en-têtesGPIO.installer(14, GPIO.EN DEHORS) # Dire Pi cette broche est une sortieg = Gmail.s`identifier(`[email protected]`, `VOTRE MOT DE PASSE`)unread_messages = g.boîte de réception().courrier(non lus=Vrai)total_messages = 0pour message dans unread_messages:total_messages += 1si total_messages gt; 0:# Il y a des e-mails non lus, allumer la lumièreGPIO.sortie(14, Vrai)autre:# Il n`y a pas des e-mails non lus, allumer la lumière horsGPIO.sortie(14, Faux)

Vous devez entrer votre nom d`utilisateur et mot de passe pour que cela fonctionne. Vous pouvez voir le code source complet pour le plugin gmail si vous le souhaitez. Si vous ne vous sentez pas à l`aise faire (ou si vous utilisez l`authentification à deux facteurs) besoin de se connecter à Gmail à l`aide OAuth2. Ceci est un peu impliqué pour ce tutoriel, mais Google a un excellent guide de démarrage.

Faisons répartition du code. Tout d`abord certains modules sont importés. modules Python sont de petits morceaux de code écrites dans un but (similaire aux bibliothèques dans l`Arduino IDE). RPi.GPIO est un module spécifique Pi pour accéder au GPIO, gmail est le module que vous avez téléchargé précédemment, et le temps est un module intégré en Python pour fournir des fonctions de synchronisation. Maintenant « GPIO.setmode » et « GPIO.setup » sont utilisés pour dire Pi que la broche 14 est une sortie, et que vous souhaitez utiliser « Broadcom Pin Numérotation » (plus d`informations sur BCM).

Cette ligne se connecte à votre compte gmail. Il crée un objet appelé « g », et appelle la méthode de connexion du module gmail importé précédemment. Ne pas oublier de saisir votre e-mail et mot de passe gmail.

g = Gmail.s`identifier(`[email protected]`, `VOTRE MOT DE PASSE`)

Maintenant, récupérer tous les messages non lus et de les stocker dans une variable appelée « messages non lus »:

unread_messages = g.boîte de réception().courrier(non lus=Vrai)

Remarquez comment « non lu = True » est passé en paramètre - vous pouvez le modifier pour récupérer les messages en fonction de différents paramètres, tels que l`expéditeur ou le sujet. Consultez l`interface de programmation d`application (API) documentation pour beaucoup plus d`informations.

Ensuite, une boucle est utilisée pour boucler sur chaque message:

pour message dans unread_messages:total_messages += 1

Pour les boucles sont très utiles. Ils répètent un bloc de code à plusieurs reprises, souvent avec une valeur légèrement différente à chaque fois. Cette boucle passe au-dessus de chaque message dans unread_messages et incrémente la variable « de total_messages ».

Enfin, une simple « si » les déclarations sont utilisées. Si des messages non lus, tourner la LED, sinon l`éteindre.

Rappelez-vous que Python est sensible à la casse, et utilise des espaces blancs. Si vous rencontrez des problèmes pour obtenir le code à exécuter, essayez ce site. Collez votre Python et appuyez sur le bouton « valider ci-dessus code python ». Cela devrait vous dire ce que (le cas échéant) des erreurs sont présentes dans votre Python.

Passez au terminal et exécutez votre script:

python check_messages.py

Cette commande va lancer votre script. Essayez de changer manuellement certains e-mails dans votre boîte de réception à l`état non lu et en cours d`exécution à nouveau le script - vous devriez voir le tour de LED ou de désactiver pour refléter votre boîte de réception.

Configuration cron

Maintenant que le script fonctionne, il est temps de l`automatiser. La meilleure façon de le faire est par un travail cron. Cron emplois sont utilisés pour programmer des tâches et des scripts, tels que les sauvegardes automatiques. Ouvrez la crontab (liste des tâches planifiées):

crontab -e

S`il n`y a pas des tâches déjà configuré, ce fichier prévu sera vide (il peut contenir des documents ou des commentaires, précédé d`un « # »). Si vous avez déjà entrées ici, entrez simplement votre nouvelle commande sur une nouvelle ligne:

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

Les cinq « étoiles » ( « * * * * * ») préciser la fréquence d`exécution de la tâche (vous pouvez obtenir vraiment de fantaisie ici, par exemple tous les deux mercredis à 2,00). Ces cinq étoiles précisent que la tâche doit être exécutée chaque minute. Ceci est le plus petit intervalle autorisé (en savoir plus sur ordonnancement cronjob). Ensuite, « python » indique le planificateur d`exécuter le script en tant que fichier python. Enfin, « ~ / pi / Documents / gmail_python / check_messages.py » est le chemin de fichier absolu à votre script - un chemin relatif ne fonctionnera pas.Comment planifier des tâches sous Linux avec Cron et CrontabComment planifier des tâches sous Linux avec Cron et CrontabLa capacité d`automatiser des tâches est l`une de ces technologies futuristes qui est déjà là. Chaque utilisateur Linux peut bénéficier du système de planification et les tâches utilisateur, grâce à cron, un service de base facile à utiliser.Lire la suite

Vous devriez maintenant avoir votre propre lumière de notification Gmail! Il serait assez simple de modifier ceci pour rechercher des messages en fonction d`une exigence différente ou un filtre (apprendre à utiliser les filtres ici), Ou exécuter un autre morceau de code - vous pourriez peut-être créer un bot Twitter qui tweets basés sur des e-mails (en savoir plus sur la construction d`un bot Pi Twitter).

Cependant, vous finissez par coder votre boîte de notification, j`aimerais savoir comment ça se passe dans les commentaires!

Articles connexes