我正在尝试建立一个连续监控传感器的系统,包括记录传感器脱机的时间(服务器无法访问)。
该系统基于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())
当服务器断开与客户端的连接时,脚本将停止。
答案 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)