0

iIve 几周前向您询问了有关我的 python scripy 问题的解决方案。

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

我的 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 - 字母是下一行之间的分隔符
  • 第一个数字是湿度
  • 二是温度
  • 三是光敏电阻
  • 下一个是土壤水分
  • 最后一个是风扇工作状态(N - 不工作,Y - 工作)

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

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

接下来,我将使用 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所有的时间。

它出什么问题了?

4

1 回答 1

0

我怀疑不是

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

你要

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

或者可能

items = buffer[start:end].split()
于 2013-05-11T10:23:56.250 回答