关于使用openwrt读写arduino数据

来源:互联网 发布:硕鼠 mac 怎么用 编辑:程序博客网 时间:2024/06/06 09:21

在使用openwrt读取arduino数据的过程中,遇到了每次读取都会使arduino的板子重新打开串口,打开串口后就会重新进行重置,这个时候无法读取正确的传感器的数据。

代码如下:

<span style="font-size:18px;">#!/usr/bin/python# -*- coding: utf-8 -*-import cgi, osimport commandsimport serial#设置返回类型和编码print """\Content-Type: text/html;charset=utf-8\n"""mode = "";form = cgi.FieldStorage() #获取POST数据if form.has_key("mode"): #是否存在传送值mode = form['mode'].value #获取该值#print mode #打印显示#print "<br>" #换行#如果是发送数据if (mode == "alarmdata"):ser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1) #读取ttyUSB0串口#ser.write("lABC")#写入ttyUSB0串口sendcount=0while True:data=ser.readline() #读取一行 读取1个字符read(1)print (data) #repr 打印出数据break #退出串口读取ser.close()</span>
如果用网页实时读取,就会发现数值并不是真实数值。

通过实验,我发现若是只打开一次串口,再进行读取就没有这个问题,所以我使用python一次打开串口,循环读取串口数据并写入txt文档中,然后使用js实时读取txt中的数值,只有这样才能正确读取arduino传回来的数值。


而使用openwrt写入arduino也有这个问题,主要问题还是串口打开的问题,需要一次打开串口后,循环写入才能写入正常数据。处理方法和上面一样,也是利用txt。


还有一个办法就是将这些个数据写入mysql数据库,再进行读写。不知道还有人遇到这个问题吗,您是怎么解决的,希望有更好的办法~~~



0 0
原创粉丝点击