Pages: [1]   Go Down
Author Topic: Arduino code python Gmail  (Read 341 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
Je suis actuellement en train de travailler sur l'arduino couplé à Gmail. Je voudrais que lorsque je reçois un mail, une led s'allume! Cependant cela ne marche pas! je sais que mon branchement est bon, cela est donc du au code. Le code python, lorsque je l'éxécute marche, il doit donc y avoir un problème sur le code arduino. Si quelqu'un a une idée?
Code Python
import serial, sys, feedparser
#Settings - Change these to match your account details
USERNAME="@gmail.com"
PASSWORD=""
PROTO="https://"
SERVER="mail.google.com"
PATH="/gmail/feed/atom"
SERIALPORT = "/dev/tty.usbmodem621" # Change this to your serial port!
# Set up serial port
try:
ser = serial.Serial(SERIALPORT, 9600)
except serial.SerialException:
print "Veuillez relier votre Arduino a lordinateur ou verifier la librairie"
sys.exit()
newmails = int(feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" + SERVER + PATH)["feed"]["fullcount"])

# Output data to serial port
if newmails > 0:
ser.write("1")
print "some mail"
else:
ser.write("0")
print "no mail"
#print data to terminal
# Close serial port
ser.close()


Code Arduino
int outPin = 9; // Output connected to digital pin 9
int mail = LOW; // Is there new mail?
int val = '1'; // Value read from the serial port
void setup()
{
pinMode(outPin, OUTPUT); // sets the digital pin as output
Serial.begin(9600);
Serial.flush();
}
void loop()
{
// Read from serial port
if (Serial.available())
{
val = Serial.read();
Serial.println(val);
if (val == '1') {
digitalWrite(outPin, HIGH);
}
else if (val == '0') {
mail = LOW;
}
}
// Set the status of the output pin
digitalWrite(outPin, mail);
}
Logged

Rennes
Offline Offline
Sr. Member
****
Karma: 1
Posts: 315
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

D'un côté tu envoies de chaines de caractères et de l'autre tu lis des caractères.
Vaudrait mieux envoyer et lire des caractères.

T'as aussi un problème là, soit tu pilotes la led directement dans le bloc if, soit tu le fais via une variable, mais dans ton cas ça va éteindre la LED immédiatement après l'avoir allumée:
Code:
Serial.println(val);
if (val == '1') {
digitalWrite(outPin, HIGH);
}
else if (val == '0') {
mail = LOW;
}
}
// Set the status of the output pin
digitalWrite(outPin, mail);
}

A remplacer par un truc:

Code:
Serial.println(val);
if (val == '1') {
mail = HIGH;
}
else if (val == '0') {
mail = LOW;
}
}
// Set the status of the output pin
digitalWrite(outPin, mail);
}

Enfin si tu veux t'épargner de devoir coder côté Arduino, si tu veux simplement commander des entrées/sorties depuis Python, tu peux aussi utiliser un truc comme Python Firmata:
https://github.com/lupeke/python-firmata/

J'ai découvert le protocole Firmata récemment et ça me simplifie bien les tests de mes entrées/sorties.
Logged


0
Offline Offline
God Member
*****
Karma: 2
Posts: 802
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep!

Un vieux souvenir de déjà vu : http://arduino.cc/forum/index.php/topic,89041.15.html

@+

Zoroastre.
Logged

Veuillez indiquer [RESOLU] dans l'entête du titre en éditant votre premier message smiley-wink

Pages: [1]   Go Up
Jump to: