范文网 论文资料 基于Python串口和单片机的实时温度采集系统(大全)

基于Python串口和单片机的实时温度采集系统(大全)

基于Python串口和单片机的实时温度采集系统使用DS18B20进行温度采集, 然后单片机将温度传感器器传过来的温度值送往串口, 单片机串与PC串口相连, PC上我们使用了Python语言在Pycharm中开发了上位机, 使用该上位机直接接。

基于Python串口和单片机的实时温度采集系统

使用DS18B20进行温度采集, 然后单片机将温度传感器器传过来的温度值送往串口, 单片机串与PC串口相连, PC上我们使用了Python语言在Pycharm中开发了上位机, 使用该上位机直接接收数据并打印输出温度数据, 并将采集到的数据插入数据库进行保存。Python为我们提供了串口操作的类, 使用较少代码就可以实现从PC的串口接收数据, 将串口传过来的温度数据插入数据库, 也可以利用Python的flask框架进行数据的查询展示。

一、系统工作原理

使用STC89C51单片机驱动单总线数字温度传感器芯片DS18B20, 并将处理后的数据通过串行口传输到上位机, 由上位机负责数据的接受、处理和显示, 并用LED数码显示器来显示所采集的结果。上位机部分应用Python编写控制软件, 对数据采集系统、数据显示等程序进行了设计。

二、硬件设计

系统硬件原理图如图1所示, 此系统以STC89C51单片机为控制核心, 采用了数字温度传感器模块DS18B20[1], 将温度值信号传送给单片机, 单片机通过数码管将温度显示出来, 同时将温度值送往串口, 上位机接收数据同时将数据保存到数据库Mysql中。

三、软件设计

(一) 关于DS18B20时序的说明

由于DS18B20对时序要求比较严格, 这里笔者使用的单片机的晶振为11.0592Mhz, 基本延时程序笔者建议定义如下:

有了基本延时后, 就可以对DS18B20进行初始化, 单片机发出一个可以使得DS18B20复位的信号 (持续时间至少为480us的低电平信号) [2], 然后让总线恢复成高电平, 接收DS18B20发出的存在脉冲, 单总线一般有求接有4.7k左右的上拉电阻, DS18B20探测到单总线上的上升沿后, 要等待15us~60us的反应时间, 就开始发出一个持续时间为60-240us的低电平信号, 此即为存在脉冲。

(二) 使用Python开发简易上位机平台

这里给出Python指定通信串口号, 并设置波特率为9600波特, 并设定超时时间为0.5s, 然后启动该串口。Python中如果要接收来自串口的数据, 可以使用“data=ser.readline () ”读一行, 其中插入数据库代码如下:

01-06行代码实现了从串口接收代码, 然后通过使用03行的语句查找数据库最新更新的那条记录, 找到该记录后, 取出其温度值, 然后该值与串口传过来的温度值相比较, 如果两者不相等的话, 就执行07-09所对应的代码将数据插入Mysql数据库予以保存。

四、结束语

本设计利用Python和单片机实现了实时温度采集系统, 有效地将计算机技术、虚拟仪器技术结合起来, 能够实现多路物理量的采集。可广泛应用到、仓库、机房、工厂、矿山等领域, 具有一定的参考性和实用性。

摘要:本文以STC89C51单片机为核心, DS18B20温度传感器模块将采集的温度信息传输给单片机进行处理, 然后单片机通过串口将数据发往上位机, 上位机接收到数据后显示输出并保存于Mysql数据库。

关键词:串口,Python,DS18B20

参考文献

[1] 刘如意, 常驰, 李刚.基于MSP430的温室多路数据采集系统[J].电子电路设计与方案, 2018.

[2] 万浩平, 杨楠, 李昌垣.河工模型温排水试验多通道温度采集系统的研制及应用[J].水利与建筑工程学报, 2018 (5) :185-189.

上一篇
下一篇
返回顶部