首页 文章

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

提问于
浏览
1

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

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

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

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 回答

  • 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)
    

相关问题