• Blog
    • Electronique
      • Arduino
      • POV
      • Raspberry PI
    • Divers
      • Gadget
      • Geekeries
      • SteamPunk
    • Do It Yourself
    • High Tech
      • IHM
      • Innovation
      • Réalité Augmenté
    • Imprimante 3D
    • Informatique
      • Hardware
      • Internet
      • Multimedia
      • Software
    • Robotique
    • Test et expertise
  • Boutique
    • Cartes Arduino
    • Raspberry PI
    • Cartes de développement
    • Capteurs
- Annonce -
  • Blog
    • Electronique
      • Arduino
      • POV
      • Raspberry PI
    • Divers
      • Gadget
      • Geekeries
      • SteamPunk
    • Do It Yourself
    • High Tech
      • IHM
      • Innovation
      • Réalité Augmenté
    • Imprimante 3D
    • Informatique
      • Hardware
      • Internet
      • Multimedia
      • Software
    • Robotique
    • Test et expertise
  • Boutique
    • Cartes Arduino
    • Raspberry PI
    • Cartes de développement
    • Capteurs
Accueil » Arduino Do It Yourself Electronique Guest Blogging

Tuto : Comment fabriquer un notificateur de mails avec un Arduino

Monstercrunch Publié le 11 février 2012
16
4.5K Vues


  • Partagez sur Facebook
  • Twittez

Non content d’avoir reçu ma première carte arduino (UNO) à Noël, je me suis mis en quête d’un projet plutôt simple à réaliser, et utilisant les composants de mon kit (acheté ici même, sur la boutique Semageek). Après quelques jours de recherche, une idée me vient à l’esprit : un Notificateur Gmail !

Je pensais que c’était quelque chose d’original, mais il se trouve que pas mal de monde l’avait déjà réalisé… et aussi avec arduino ! Les recherches continuent donc sur cette voie et bingo, je trouve un site avec un script python et un code pour la board. Ce n’est pas sans mal que j’ai réussi à faire fonctionner le tout, car il se trouve que la librairie possède un petit « bug » qui empêche le tout de fonctionner…

Sans plus attendre, le résultat final :


Vous aurez donc au final un moyen visuel pour savoir si vous avez de nouveaux messages non lus
dans votre boite mail Gmail.

Le matériel nécessaire

  • une carte arduino uno ;
  • un servo-moteur ou une led (avec une résistance appropriée)
  • des câbles pour relier le tout.

I) Installation de python et des librairies.

1) Téléchargement.

  • Téléchargez la version windows de python 2,7 : http://python.org/ftp/python/2.7.2/python-2.7.2.msi
  • Setup tool (pour installer les librairies, enfin il me semble :p): http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11.win32-py2.7.exe#md5=57e1e64f6b7c7f1d2eddfc9746bbaf20
  • La librairie pyserial (pour interagir avec arduino par le port serie) : http://sourceforge.net/projects/pyserial/files/latest/download
  • La librairie feedparser (connexion avec la boite gmail) : http://pypi.python.org/packages/source/f/feedparser/feedparser-5.1.zip#md5=5307442f686f773afee12aa6e4bfe257

Installez python, puis les librairies. Si vous rencontrez des difficultés, posez vos questions dans les commentaires, je ferai de mon possible pour vous aider.

Pour vérifier si les librairies sont bien installées, lancez la ligne de commande python (pyhton command line), et tapez les lignes suivantes l’une après l’autre :

  • import feedparser
  • import serial

Si vous avez une erreur du type « Import error : No module named… » c’est que la librairie en question est mal/pas installée.

2) Correction du « bug » de la librairie Pyserial.

Il se trouve que la librairie pyserial reset la carte arduino lors de l’ouverture du port et de sa fermeture. Je ne sais pas pourquoi, mais cela empêche la lecture des données reçues ce qui fait que le code, bien que correct, ne donnera pas le résultat voulu. Pour résoudre le problème, il faut vous
rendre dans se rendre dans /Lib/site-packages/serial du dossier Python et modifier la ligne du fichier serialWin32.py suivante :

self._dtrState = win32.DTR_CONTROL_ENABLE

par

self._dtrState = win32.DTR_CONTROL_DISABLE

et c’est fini ! Plus de soucis à se faire 😉

3) Le script python

Voici le script python avec des commentaires pour que vous sachiez qu’est-ce qui fait quoi :


print "Script loaded"
import serial, sys, feedparser, time
#Changez les informations suivantes en fonction de votre compte
USERNAME="EMAIL@gmail.com"
PASSWORD="*********"
PROTO="https://"
SERVER="mail.google.com"
PATH="/gmail/feed/atom"
SERIALPORT = "COM3" # Changez le port en fonction du votre
# Set up serial port
try:
ser = serial.Serial(SERIALPORT, 9600) # Definit la connexion avec arduino
except serial.SerialException:
print "no device connected - exiting"
sys.exit()
newmails = int(feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" +
SERVER + PATH)["feed"]["fullcount"]) #se connecte a votre compte gmail et retourne 0 si il n y a pas de nouveaux mails, 1 s il y en a.
print newmails
# Output data to serial port
if newmails > 0:
ser.write('m') #envoie m a arduino = messages
else:
ser.write('n') #envoie n a arduino = no messages
# Ferme le port
ser.close()

II La partie arduino

1) Le code

Dans le matériel, il est fait référence à un servo moteur, mais si vous ne disposez pas d’un exemplaire, vous pouvez toujours le remplacer par une led, ou autre, un buzzer, que sais-je !
Le code en rouge s’adresse donc au possesseurs d’un servo, celui en vert à ceux qui possèdent une led.
Donc, voici le code à envoyer à l’arduino :


#include <Servo.h>
#define outPin 11
Servo drapeau;
void setup()
{
pinMode(outPin, OUTPUT); // sets the digital pin as output
Serial.begin(9600);
Serial.flush();
drapeau.attach(9); // servo sur la pin 9
drapeau.write(0);
}
void loop()
{
// Read from serial port
if (Serial.available()) {
val = Serial.read();
delay(1);
if (val == 'm')
{
digitalWrite(outPin, HIGH); // On allume la led
drapeau.write(88); // On leve le drapeau
}
else if (val == 'n')
{
digitalWrite(outPin, LOW); // On eteint la led
drapeau.write(0); // On baisse le drapeau
}
}
}

Notez que les angles utilisés ici me conviennent personnellement, vous pourrez avoir besoin de les modifier, mais je vous laisse vous débrouiller pour ça.

2) Le montage

Pour le servo, vous avez normalement 3 fils :

  • un noir / marron ? GND
  • un rouge ? +5V
  • un blanc / orange ? pin 9

(cf le cours sur les servo de pobot : http://www.pobot.org/Debuter-avec-une-carte-Arduino.html )

Pour ceux qui ont une led :

  • pin 11 ? résistance 330ohms ? Led ? GND.

Voilà, vous n’avez plus qu’à envoyer le code sur l’arduino, en ayant bien tout vérifié avant !

III) Créer un batch pour lancer automatiquement le script.

Un fichier batch permet le lancement de scripts ou d’applications, à l’aide de la fonction sleep, à télécharger ici : http://ipl001.free.fr/LaboWeb/Download/Sleep.exe et à mettre dans C:/Windows/System32.

Le code à mettre dans le txt est le suivant :


@echo off
:start
script.py
Sleep 60
goto start

script.py est le nom du fichier avec le script python, ce dernier se trouve dans le même dossier que le fichier batch. Si ce n’est pas votre cas, indiquer le chemin exact vers le fichier.

Sleep 60 permet d’attendre 60s avant de faire un nouveau test sur la boite mail. Vous pouvez modifier cette valeur si vous le souhaitez.

Enregistrer le fichier au format « .bat ».

Voilà, c’est terminé, j’espère que ce tutoriel vous aura plu, et que vous aurez réussi à tout faire sans rencontrer autant de problèmes que moi. Vous trouverez en pièce jointe les trois fichiers (script python, code arduino et batch).

Merci à vous, et bonne lecture sur Semageek !

Vues : 4 483
  • Partagez sur Facebook
  • Twittez


- Annonce -
arduinobatchconstruirecourrierDIYElectroniqueemailfabriquerGeekGmailkitnotificateurnotifieurpythonscriptservo-moteuruno


Auteur

Monstercrunch

Je m'appelle Henri, j'ai 16 ans et je suis un passionné d'informatique, des nouvelles technologies et tout ce qui touche au diy et à l’électronique. J'adore la programmation, faire des jeux (J'ai touché un peu à tout: python, C, javascript, php, html... Sans pour autant devenir un pro en la matière, je vous l'avoue), bricoler, et grâce à arduino, je peux "enfin" réunir les deux. J'aime aussi le retro-gaming, mais surtout l'esprit et le design général de ces vieux jeux et consoles, car au final, je ne suis pas un grand joueur !

Vous aimerez aussi
STAR : Un robot modulable à base d’arduino qui se faufile partout
10 juillet 2018
DIY : Fabriquer un robot mangeur de pièces avec une boite de Pringles et un arduino
10 juillet 2018
DIY : Transformer un vieux réveil en horloge-station météo à base d’Arduino
3 juillet 2018
Le robot sans nom : Le plus grand jouet de l'univers...
A lire en suivant

Le robot sans nom : Le plus grand jouet de l'univers...

  • - Annonce -
  • Articles Populaires

    • 1
      Fabriquer un brouilleur de téléphone mobile.
    • 2
      Les 42 commandes les plus utiles sur Raspberry PI
    • 3
      DIY : Une machine CNC de gravure laser fabriquée avec une diode laser de graveur DVD

  • SEMAGEEK : Actualités High Tech, Robot, Électronique, DIY et Arduino.

    Mentions Légales

    Annonceurs

    À propos

    Contact

  • Articles Récents

    • STAR : Un robot modulable à base d'arduino qui se faufile partout
    • DIY : Fabriquer un robot mangeur de pièces avec une boite de Pringles et un arduino
    • Un robot imprimé en 3D qui dessine dans le sable.
  • Articles Populaires

    • 1
      Fabriquer un brouilleur de téléphone mobile.
    • 2
      Les 42 commandes les plus utiles sur Raspberry PI
    • 3
      DIY : Une machine CNC de gravure laser fabriquée avec une diode laser de graveur DVD

© Copyright Semageek® 2009 - 2020
Appuyez sur Entrée pour lancer votre recherche
Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considérerons que vous acceptez l'utilisation des cookies.Ok