python做上位机读usb数据_使用python实现win10系统和arduino usb串口通信
前言
arduino有很多可以直接使用的传感器,可以很方便的获取大量的环境数据.
常见的有:温度(室温,冰箱,水箱等场景)
湿度(房间空气湿度,花盆土壤湿度等场景)
声(声控灯,噪音检测,深海测量,医疗器械等场景)
光(灯光调节,距离检测等场景)
气压,磁力,位置,角度等传感器数据
现在有个问题,如何把通过arduino获取的温湿度等数据,发送给pc电脑或者树莓派等设备,以达到数据存储,数据展示的目的.
提到通信方法,众所周知的有蓝牙(BLE):即蓝牙低能耗技术,是一种低成本、短距离、可互操作的无线技术
wifi:一种是无线局域网技术,功耗高,但是场景通用,现在几乎每家每户都有一台路由器.
其次是串口通信
ZigBee:基于IEEE802.15.4标准的低功耗局域网协议,是一种短距离、低功耗的、便宜的无线组网通讯技术
按照从简原则,先从最直接的方式入手,也就是使用usb串口通信当前的arduino就是使用usb连接到pc电脑,无需其他操作(如果使用蓝牙,wifi,还需要对应的模块和较多的程序开发)
pc电脑通信完成后,再用arduino通信树莓派,无缝对接,本质都是系统,都是usb连接,都可以使用python(当前环境为居家场景)
测试上位机操作arduino更加方便,如控制arduino灯的开关,直接用电脑的键盘,或者简单的web界面,甚至只是简单python代码片段就可以(如果使用蓝牙,wifi,通过手机或者其他硬件来控制,中间就多了一层,如写APP,对接开关硬件等,而通过usb到电脑,可以更快的实时调试和修改,这样能更方便的尝试之后的其他项目)
通信场景
arduino串口通信可以划分为下位机通信:arduino向其他设备传输数据(数据发送到云端或者本地服务器储存等)
上位机通信:其他设备向arduino传输数据(通过手机,电脑等一些交互页面或者服务向arduino发送指令,动态控制等)
usb连接()左侧为usb扩展器
中间为arduino开发板
右侧为面包板和温湿度传感器
获取数据
一.获取设备端口和波特率
端口查看
打开arduino ide->工具->端口
可以查看到当前勾选的端口为 COM3
波特率查看
Serial.begin(9600);
可以看到设置的波特率为9600
二.设置python串口通信
本文用到的Python库为pyserial,pyserial的作用在于提供一个从串口读取信息的接口安装pyserial: pip install pyserial
打开编辑器,新建index.py文件(可以使用pyCharm,本文使用vsCode)
写入代码,具体描述和功能参考代码注释
[dsx_def_highlightjs code=code]
# 引入串口库(注意是serial,不是pyserial)
import serial
# 设置端口变量和值
serialPosrt = "COM3"
# 设置波特率变量和值
baudRate = 9600
# 设置超时时间,单位为s
timeout = 0.5
# 接受串口数据
ser = serial.Serial(serialPosrt, baudRate, timeout=timeout)
# 循环获取数据(条件始终为真)
while 1:
# 读取接收到的数据的第一行
str = ser.readline()
# 把数据打印到终端显示
print(str)
[/dsx_def_highlightjs]
得到的结果为
至此,pc端就拿到arduino传送的温湿度等传感器数据了.
Tips
运行python代码时,可能会遇到以下错误:没有权限
端口被占用
如提示
[dsx_def_highlightjs code=code]
serial.serialutil.SerialException: could not open port 'COM3': PermissionError(13, '拒绝访问。', None, 5)
[/dsx_def_highlightjs]
经过排查,是因为arduino ide的串口显示器占用了端口,导致pc上的python无法访问端口
解决这个问题的方式就是关闭arduino的串口显示器后,再执行python脚本
也许遇到的问题不一定同我一样,你还可以尝试使用管理员权限打开终端,如cmd等
确认端口和波特率值正确以及代码的大小写,单词等格式或者拼写正确
按照错误提示修复问题或者参考搜索引擎检索答案
总结
本文描述了常见的几种通信方式和传感器应用场景
arduino usb串口通信python获取数据的实现方法
开发调试过程中遇到了一个难排查的错误问题
下期内容使用sqlite等数据库存储arduino的传感器数据
构建web ~~大 ~~数据面板,实时查看温湿度变化,动态折线图表,仪表盘效果等
根据温湿度值来设置舒适度提示反馈,高低温预警,自动温湿度控制等
上位机反向控制arduino led灯开关,通过web界面或者代码等
END.
python做上位机读usb数据_使用python实现win10系统和arduino usb串口通信相关推荐
- python做上位机好不_如何使用Python开发串口通讯上位机(完结)
2021的第一份更新,比以往时候来得早一点! 前面两期讲了如何使用pyserial和做好了基本的上位机界面以及与API的联动,今天我们接着完善下代码.1 编码规范的使用 前面两期只是做基础展示用,所以 ...
- python 预测任意天后股票数据_在Python中使用LSTM进行股票市场预测
本文概述 在本教程中, 你将看到如何使用称为长短期记忆的时间序列模型. LSTM模型功能强大, 特别是通过设计保留了长期记忆, 这一点将在以后看到.你将在本教程中解决以下主题: 了解为什么你需要能够预 ...
- python登录网站后爬取数据_用 Python 登录主流网站,我们的数据爬取少不了它
不论是自然语言处理还是计算机视觉,做机器学习算法总会存在数据不足的情况,而这个时候就需要我们用爬虫获取一些额外数据.这个项目介绍了如何用 Python 登录各大网站,并用简单的爬虫获取一些有用数据,目 ...
- python做定时任务的方式及优缺点_使用Python做定时任务及时了解互联网动态
前言 本人因为比较喜欢看漫画和动漫, 所以总会遇到一些问题, 因为订阅的漫画或者动漫太多, 总会忘记自己看到那一章节或者不知道什么时候更新. 故会有这么一个需求, 想记录自己想看的漫画或动画并在其更新 ...
- 利用python爬取58同城简历数据_利用python爬取58同城简历数据-Go语言中文社区
利用python爬取58同城简历数据 最近接到一个工作,需要获取58同城上面的简历信息(http://gz.58.com/qzyewu/).最开始想到是用python里面的scrapy框架制作爬虫.但 ...
- python做上位机容易学吗_python做上位机
参考文章: https://blog.csdn.net/dgut_guangdian/article/details/78391270 https://www.cnblogs.com/lanceyu/ ...
- python中texttable库显示实时数据_用Python串口实时显示数据并绘图pyqtgraph
用Python串口实时显示数据并绘图 使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 &qu ...
- 用python做简单的地理聚类分析案例_用Python做一个简单的翻译工具
编程本身是跟年龄无关的一件事,不论你现在是十四五岁,还是四五十岁,如果你热爱它,并且愿意持续投入其中,必定会有所收获. 本文就来自编程教室一位"小"读者的投稿(互助学习1群里的同学 ...
- python 获取表格中的空数据_在python beautifulsoup中获取表格单元格值为空时的文本输出...
我正在编写一个beauthulsoup/python代码来从html表中获取数据.该表的问题是某些列可能有空白数据(单元格为空).当我运行这段代码时,当它第一次遇到表中的空白单元格时,它会以一个&qu ...
最新文章
- PHP多维数组转为一维数组的方法实例
- w7鼠标计算机无法识别,win7电脑遇见usb鼠标无法标识的详细处理步骤
- L1-020. 帅到没朋友-PAT团体程序设计天梯赛GPLT
- 车载双目相机,老兵的二次出征
- android screencap 源码,android后台截屏实现(3)--编译screencap
- 短视频制作团队的工作流程分为5个步骤
- 穷建站(二):在DnsPod中为申请的tk域名进行域名解析
- html中svg是什么文件,svg是什么文件格式?如何打开svg文件?
- 如何拍摄一部优秀的广告片——表现手法,特殊创意
- MySql中用sql语句实现按汉字首字母排序
- BS4爬取电影天堂的下载地址并保存至csv文件(一)
- 八皇后问题python实现
- 笑谈ArcToolbox (3) ArcToolbox的一亩三分地
- “求职路”上英语口语面试问答大全
- 11岁车祸截肢女孩的求助
- ps抠图工具使用教程
- 中睿 计算机 职称考试成绩,2017上半年软考成绩查询时间、查询入口【已公布】...
- IgH详解十四、igh添加总线链路状态监测功能
- 自动检测技术及仪表控制系统(一)
- gta5汽车oracle2数据,《GTA5》全车辆数据修改图文教程攻略