python 来自序列的重叠值
python overlapping values from serial
我的 arduino 通过 USB 连接到 pi,它使用下面的简单程序从 DHT 传感器发送读数(这个位在 arduino 串行监视器中按预期工作):
int chk = DHT.read11(DHT_PIN);
Serial.println(DHT.temperature,1);
delay(2000);
然后我有一个 python 程序应该从串行端口获取数据:
import serial
conn = serial.Serial('/dev/ttyACM0',9600)
temp = conn.readline()
print temp
然后在 php 中使用 $temp = shell_exec('python temp.py 2>&1');
调用此脚本,它工作正常,但我从序列号中获得的值是错误的。
预期的输出应该类似于 23.0
但是当我刷新页面时(甚至 运行 终端中的 python 脚本)我得到的值类似于 2323.0
、23.023.0
、22..0
和 2
。这些一直在变化,很少以所需的格式出现。
似乎来自串行的数据重叠,即使 Serial.println()
函数将其放在新的一行。如果有人能告诉我如何更正此问题,将不胜感激。
尝试print repr(temp)
...甚至print temp.strip()+" . "
我非常怀疑当你阅读时你得到了
"23.0\r"
\r
returns 你的光标到行首
如果你这样做 print "23.0\rB"
你会看到 "B3.0"
(即我认为您看到重叠只是因为您正在打印它...)
已解决
我浏览了一些网站,发现此页面 http://www.elinux.org/Serial_port_programming 非常有用。我查看了一些代码并注意到我的原始代码在 serial.Serial(...)
中,我只是在逗号后输入了波特率而没有指定 baudrate=9600
.
import serial
port = serial.Serial('/dev/ttyACM0',baudrate=9600,timeout=3.0)
temp = port.readline()
print data
此代码似乎已解决问题!这是它的实际截图 http://gyazo.com/22e7801fd0d7cdf2873e627bb8b88fdc。
我的 arduino 通过 USB 连接到 pi,它使用下面的简单程序从 DHT 传感器发送读数(这个位在 arduino 串行监视器中按预期工作):
int chk = DHT.read11(DHT_PIN);
Serial.println(DHT.temperature,1);
delay(2000);
然后我有一个 python 程序应该从串行端口获取数据:
import serial
conn = serial.Serial('/dev/ttyACM0',9600)
temp = conn.readline()
print temp
然后在 php 中使用 $temp = shell_exec('python temp.py 2>&1');
调用此脚本,它工作正常,但我从序列号中获得的值是错误的。
预期的输出应该类似于 23.0
但是当我刷新页面时(甚至 运行 终端中的 python 脚本)我得到的值类似于 2323.0
、23.023.0
、22..0
和 2
。这些一直在变化,很少以所需的格式出现。
似乎来自串行的数据重叠,即使 Serial.println()
函数将其放在新的一行。如果有人能告诉我如何更正此问题,将不胜感激。
尝试print repr(temp)
...甚至print temp.strip()+" . "
我非常怀疑当你阅读时你得到了
"23.0\r"
\r
returns 你的光标到行首
如果你这样做 print "23.0\rB"
你会看到 "B3.0"
(即我认为您看到重叠只是因为您正在打印它...)
已解决
我浏览了一些网站,发现此页面 http://www.elinux.org/Serial_port_programming 非常有用。我查看了一些代码并注意到我的原始代码在 serial.Serial(...)
中,我只是在逗号后输入了波特率而没有指定 baudrate=9600
.
import serial
port = serial.Serial('/dev/ttyACM0',baudrate=9600,timeout=3.0)
temp = port.readline()
print data
此代码似乎已解决问题!这是它的实际截图 http://gyazo.com/22e7801fd0d7cdf2873e627bb8b88fdc。