pySerial可以将数据发送到arduino

时间:2017-05-06 09:27:41

标签: python arduino

我正在尝试使用Python通过串行通信向arduino发送日期时间,但是我在发送数据时遇到了问题。当我使用var = raw_input ("input:")时 数据已发送。但是当我使用var = str (time.asctime (time.localtime (time.time ())))数据时没有发送到arduino。

这是我的Python代码:

import serial, time

port = serial.Serial('COM4',9600)
var = str(time.asctime(time.localtime(time.time())))
if port.isOpen():
   print ('Port Aktif')
   while 1:
       port.write(var)
       time.sleep(1)
       print port.readline()
else:
   print 'port Tidak Aktif'

我的代码arduino:

String msg ="";
void setup() {
   Serial.begin(9600); // set the baud rate

}
void loop() {
   if(Serial.available() > 0){
      while (Serial.available()>0){
         msg += char(Serial.read());
         delay(30);
      }
      Serial.println(msg);
   }
}

1 个答案:

答案 0 :(得分:0)

而不是

In [1]: import time

In [2]: str(time.asctime(time.localtime(time.time())))
Out[2]: 'Sat May  6 14:39:17 2017'

使用:

In [3]: time.asctime(time.localtime()).encode('utf-8')
Out[3]: b'Sat May  6 14:39:17 2017'

后者将返回一个字节字符串,这在写入串行端口时是必需的。