Possédant une carte Arduino Uno depuis quelques mois, après plusieurs essais, je vous propose un petit montage permettant de donner le nombre de mails dans une boite Gmail.
Je récupère les mails à l’aide d’un script en Python. Celui-ci lit ma boite mail toutes les 15 minutes et transfère le nombre de mails non lus à la carte Arduino branchée sur le port USB. En fonction de la valeur reçue, le programme de la carte Arduino gére les cinq leds.
Script Python:
import serial
import time
import imaplib
ser = serial.Serial(‘COM7’, 9600)
time.sleep(2)
print « Script loaded »
while 1:
obj = imaplib.IMAP4_SSL(‘imap.gmail.com’,’993′)
#adresse mail plus mot de passe à documenter
obj.login(‘xxxxxxx@gmail.com’,’xxxxxxxx’)
obj.select()
obj.search(None,’UnSeen’)
count = len(obj.search(None, ‘UnSeen’)[1][0].split())
print count
if(count == 0):
# envoi à la carte Arduino
ser.write(‘a’)
# information retournee au shell drapeau
print ‘0’
elif(count == 1):
ser.write(‘b’)
print ‘1’
elif(count == 2):
ser.write(‘c’)
print ‘2’
elif(count == 3):
ser.write(‘d’)
print ‘3’
elif(count == 4):
ser.write(‘e’)
print ‘4’
elif(count > 4):
ser.write(‘f’)
print ‘5 et +’
# 900 egal 15 minutes a modifier
time.sleep(900)
print « attente »
ser.close()
Lien pour installation de Python sous Windows:
- Python 2.7.2 –> http://python.org/download/
- Setup Tools –> http://pypi.python.org/packages/2.7/s/setuptools/
- Librairie pyserial –> http://sourceforge.net/projects/pyserial
Script pour la carte Arduino:
#define led12 12
#define led11 11
#define led10 10
#define led9 9
#define led8 8
int mail = LOW;
int val;
void setup()
{
pinMode(led12, OUTPUT);
pinMode(led11, OUTPUT);
pinMode(led10, OUTPUT);
pinMode(led9, OUTPUT);
pinMode(led8, OUTPUT);
Serial.begin(9600);
Serial.flush();
}
void loop()
{
if (Serial.available())
{
val = Serial.read();
if (val == ‘a’)
{
digitalWrite(led12, LOW);
digitalWrite(led11, LOW);
digitalWrite(led10, LOW);
digitalWrite(led9, LOW);
digitalWrite(led8, LOW);
}
else if (val == ‘b’)
{
digitalWrite(led12, HIGH);
digitalWrite(led11, LOW);
digitalWrite(led10, LOW);
digitalWrite(led9, LOW);
digitalWrite(led8, LOW);
}
else if (val == ‘c’)
{
digitalWrite(led12, HIGH);
digitalWrite(led11, HIGH);
digitalWrite(led10, LOW);
digitalWrite(led9, LOW);
digitalWrite(led8, LOW);
}
else if (val == ‘d’)
{
digitalWrite(led12, HIGH);
digitalWrite(led11, HIGH);
digitalWrite(led10, HIGH);
digitalWrite(led9, LOW);
digitalWrite(led8, LOW);
}
else if (val == ‘e’)
{
digitalWrite(led12, HIGH);
digitalWrite(led11, HIGH);
digitalWrite(led10, HIGH);
digitalWrite(led9, HIGH);
digitalWrite(led8, LOW);
}
else if (val == ‘f’)
{
digitalWrite(led12, HIGH);
digitalWrite(led11, HIGH);
digitalWrite(led10, HIGH);
digitalWrite(led9, HIGH);
digitalWrite(led8, HIGH);
}
}
}
Voilà, amusez-vous bien.