Notificateur Gmail avec une carte Arduino

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.

WP_000057

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.

WP_000058

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:

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *