Raspberry Pi与Arduino的连接通过XRF连续传感器监控

时间:2014-06-18 09:55:10

标签: python raspberry-pi monitoring pyserial

我正在尝试建立一个连续监控传感器的系统,包括记录传感器脱机的时间(服务器无法访问)。

该系统基于Raspberry Pi作为服务器,Arduino Leonardo作为传感器节点,数据通过XRF从Arduino传输到Raspberry。

我使用Python脚本和pySerial收集数据。我的Python技能很差,我需要帮助来弄清楚当Arduino和Raspberry之间的连接丢失时如何继续监控,并且当重新建立连接时,可以再次收集传感器数据而无需重新启动脚本。

Python脚本如下:

import serial
from datetime import datetime

ser = serial.Serial('/dev/ttyAMA0', 9600)

while True:
   #Arduino sends sensor analog reading when receiving the letter "k"
   ser.write('k') 
   datetime = str(datetime.now())
   print(datetime)
   print(ser.readline())

当服务器断开与客户端的连接时,脚本将停止。

1 个答案:

答案 0 :(得分:2)

我猜您需要定期重新打开连接,还要记录连接丢失的时刻?像这样......

import serial
import time
from datetime import datetime

ser = serial.Serial('/dev/ttyAMA0', 9600)

while True:
   if ser.isOpen()==True:
       ser.write('k') # Arduino sends sensor analog reading when receiving the letter "k"
       datetime = str(datetime.now())
       print(datetime)
       print(ser.readline())
       time.sleep(1) # take a break so that you dont thrash the sensor with requests all the time
   else:
       try:
           print "Lost connection at %s" % str(datetime.now())
           ser.open()              
       except:
           print "Cannot open port."
           exit(-1)