从Arduino脚本读取Python仍然无法正常工作

时间:2013-05-10 17:51:03

标签: python cron arduino

几周前我已经问过你解决我的python脚本问题了。

我刚刚开始我的项目,但仍然遇到了问题。

我的Arduino工作正常,命令sudo screen / dev / ttyACM0工作正常,我得到了:

T:  52.80%  23.80 15% 92% N 
T:  52.80%  23.80 15% 92% N 
T:  52.80%  23.80 15% 92% N 
  • T - letter是下一行之间的分隔符
  • 第一个数字是湿度
  • 其次是温度
  • 第三是光敏电阻
  • 下一个是土壤休闲
  • 最后一个是粉丝工作状态(N - 不工作,Y - 工作)

我想使用Python的cron脚本编写一个文本文件,其中包含每个传感器数据的结果。

例如,我每隔5分钟,30分钟,1小时,3小时,12小时使用cron保存4个文本文件(temp.txt,humi.txt,soil.txt,photo.txt), 24小时。

接下来,我将使用php脚本在我的网站上将数据显示为图表。

但问题出在我的python脚本上。我在这里找到了解决方案,目前我正在使用以下脚本(温度示例):

#!/usr/bin/python

import serial
import time

buffer = bytes()
ser = serial.Serial('/dev/ttyACM0',9600, timeout=10)
while buffer.count('T:') < 2:
    buffer += ser.read(30)
ser.close();
# Now we have at least one complete datum. Isolate it.
start = buffer.index('T:')
end = buffer.index('T:', start+1)
items = buffer[start:end].strip().split()
print time.strftime("%Y-%m-%d %H:%M:%S"), items[2]

但是在我的文本文件中,我收到的信息不正确,如下所示:

2013-05-10 19:47:01 12%
2013-05-10 19:48:01
2013-05-10 19:49:01 N
2013-05-10 19:50:01 24.10
2013-05-10 19:51:01 24.10
2013-05-10 19:52:01 7%
2013-05-10 19:53:01 24.10

但它应始终为2013-05-10 19:47:01 24.10

它有什么问题?

1 个答案:

答案 0 :(得分:0)

我怀疑不是

items = buffer[start:end].strip().split()

你想要

items = buffer[start:end].split().strip()

或者

items = buffer[start:end].split()