Rasp-Hack-GMAIL-LED

De MCHobby - Wiki
Aller à : navigation, rechercher

Introduction

Voici un exemple simple qui interroge votre compte GMail et utiliser une librairie pour déterminer combien il y a de mail non-lu.

Lorsque le programme constate qu'il y a plus d'un certain nombre d'émail non lu, il allume la LED rouge... sinon c'est la LED Verte qui est allumée.

Rasp-Hack-LED (mini).jpg

Pi-Cobbler ou Pi-Cobbler-Plus?

Avec l'arrivée du Raspberry Raspberry Pi 3, Raspberry Pi-2 et Raspberry Pi-B PLUS, Raspberry Pi Zero W vient également un GPIO étendu de 40 broches rétro-compatible avec le GPIO des premières générations du Raspberry-Pi qui, lui, n'avait que 26 broches.

GPIO-Compatibility-00v3.jpg

La seule vraie différence réside dans la longueur du GPIO du modèle Pi-3, Pi-2 ou B+ qui contient des broches en plus... et le Pi-Cobbler PLUS qui à également grandi pour accueillir les broches en plus.

Avec l'apparition du Pi Zero, nous pouvons reparler de la correspondance des GPIO.

Pour notre plus grand bonheur, le GPIO du Pi Zero et du Pi 3 (ou Pi 2) sont identiques :) chouette.

RASP-PIZERO-Correspondance-GPIO v2.jpg
Cliquez pour agrandir

prérequis

Cet exemple se base sur le précédent tutoriel Pi Leds dont il exploitera le montage.

Librairies nécessaires

Cet exemple utilise la librairie feedparser. Pour l'installer, il faut utiliser la commande pip suivante:

sudo pip install feedparser

Script Python

Le script Python

Pour créer facilement ce script sur votre python, nous vous proposons une méthode à base de copier/coller à l'aide des étapes suivantes à réaliser dans un terminal (ou une connexion SSH).

Copier/coller le code

Voici une méthode Copier/Coller super simple

On commence par demander la création du fichier

cat <<! > raspi-gmail.py

On fait ensuite le copier/coller du code

#!/usr/bin/env python
# -*- coding: latin-1 -*-

import RPi.GPIO as GPIO, feedparser, time

DEBUG = 1

USERNAME = "utilisateur-gmail" # seulement ce qui se trouve devant le signe @, mettez le votre ici
PASSWORD = "mot-de-passe"

NEWMAIL_OFFSET = 1 # le nombre de message non lu, le mien est à 88, vous devriez y placer votre propre valeur
MAIL_CHECK_FREQ = 60 # vérifier les e-mails toutes les 60 secondes (4 toutes les 4 secondes ca marche pas mal pour faire un test)

GPIO.setmode(GPIO.BCM)
GREEN_LED = 18
RED_LED = 23
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)

while True:
        # === retirer le commentaire des lignes suivantes si vous voulez voir l'URL appelée ===
        # url = "https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom"
        # print url

        newmails = int(feedparser.parse("https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"])

        if DEBUG:
                print "You have", newmails, "new emails!"

        if newmails > NEWMAIL_OFFSET:
                GPIO.output(GREEN_LED, True)
                GPIO.output(RED_LED, False)
        else:
                GPIO.output(GREEN_LED, False)
                GPIO.output(RED_LED, True)

        time.sleep(MAIL_CHECK_FREQ)

On termine l'opération de saisie simplement avec:

!

Editer le fichier

Vous aurez besoin de modifier le fichier raspi-gmail.py, pour y inclure votre login et mot de passe GMail.
Vous pouvez utiliser nano... rudimentaire mais simple et efficace.

nano raspi-gmail.py

Sachez juste que les options affichée comme ^X signifie Ctrl+X

Rendre le fichier exécutable

Par défaut, les fichier sont considéré comme des fichiers texte non exécutable... même s'il contiennent des scripts.

Il faut donc indiquer au système d'exploitation qu'il peut autoriser l'exécution de notre raspi-blink.py

chmod +x raspi-gmail.py

Exécuter notre programme

sudo ./raspi-gmail.py

Si votre compte ne contient qu'un seul e-mail non lu... il suffit de vous envoyer un e-mail pour voir la LED rouge s'allumer.

Au premier démarrage de mon programme j'ai constaté que j'avais 88 e-mails non lus.
J'ai donc modifier

Arrêter votre programme

Un simple Ctrl + C fera l'affaire

Où acheter

Vous trouverez les produits nécessaire chez MCHobby

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com