PythonスクリプトからArduinoボードにAtomフィードからデータを送信しています。最初はボードと正常に通信できますが、その後、pySerial モジュールからシリアル例外エラーが発生します。
ここに私のpythonコードがあります:
import serial, sys, feedparser
#Settings
USERNAME = "user"
PASSWORD = "pw"
PROTO = "https://"
SERVER = "gmail.google.com"
PATH = "/gmail/feed/atom"
SERIALPORT = "\\\\.\\COM6"
try:
ser = serial.Serial(SERIALPORT, 9600)
except serial.SerialException:
print "failed to write to port %s" % SERIALPORT
sys.exit()
newmail = int(feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" + SERVER + PATH) ["feed"]["fullcount"])
print newmail
ser.write(newmail)
ser.close()
繰り返しますが、最初は成功したメッセージをボードに送信できますが、その後は例外で失敗します。
これは、疑似サーバーとして機能する Arduino ボードのコードです。
int led = 13;
int mail = LOW;
int val;
void setup()
{
pinMode(led, OUTPUT);
Serial.begin(9600);
Serial.flush();
}
void loop()
{
if (Serial.available()>0)
{
val=Serial.read();
Serial.println(val);
if(val > 0)
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
}
}
通信をリセットするためにArduinoボードのシリアル通信の最後に何かする必要がありますか? Arduinoボードを物理的にリセットすると、ボードに別の書き込みを再度送信できますが、それ以外の場合は送信できません。助言がありますか?