python显⽰单⽚机温度_基于Python串⼝和单⽚机的实时温度
python怎么读取串口数据
采集系统
使⽤DS18B20进⾏温度采集,然后单⽚机将温度传感器器传过来的温度值送往串⼝,单⽚机串与PC串⼝相连,PC上我们使⽤了Python语⾔在Pycharm中开发了上位机,使⽤该上位机直接接收数据并打印输出温度数据,并将采集到的数据插⼊数据库进⾏保存。Python为我们提供了串⼝操作的类,使⽤较少代码就可以实现从PC的串⼝接收数据,将串⼝传过来的温度数据插⼊数据库,也可以利⽤Python的flask框架进⾏数据的查询展⽰。⼀、系统⼯作原理使⽤STC89C51单⽚机驱动单总线数字温度传感器芯⽚DS18B20,并将处理后的数据通过串⾏⼝传输到上位机,由上位机负责数据的接受、处理和显⽰,并⽤LED数码显⽰器来显⽰所采集的结果。上位机部分应⽤Python编写控制软件,对数据采集系统、数据显⽰等程序进⾏了设计。⼆、硬件设计系统硬件原理图如图1所⽰,此系统以STC89C51单⽚机为控制核⼼,采⽤了数字温度传感器模块DS18B20[1],将温度值信号传送给单⽚机,单⽚机通过数码管将温度显⽰出来,同时将温度值送往串⼝,上位机接收数据同时将数据保存到数据库Mysql中。三、软件设计(⼀)关于DS18B20时序的说明由于DS18B20对时序要求⽐较严格,这⾥笔者使⽤的单⽚机的晶振为
11.0592Mhz,基本延时程序笔者建议定义如下:01 void delay(unsigned char i)//基本延时时间为5us03 do05_nop_();//使⽤了
_nop_()函数后,可以更⽅便估算和测试延时时间06_nop_();07_nop_();08 i--;09}while(i);有了基本延时后,就可以对DS18B20进⾏初始化,单⽚机发出⼀个可以使得DS18B20复位的信号(持续时间⾄少为480us的低电平信号)[2],然后让总线恢复成⾼电平,接收DS18B20发出的存在脉冲,单总线⼀般有求接有4.7k左右的上拉电阻,DS18B20探测到单总线上的上升沿后,要等待15us~60us的反应时间,就开始发出⼀个持续时间为60-240us的低电平信号,此即为存在脉冲。(⼆)使⽤Python开发简易上位机平台这⾥给出Python指定通信串⼝号,并设置波特率为9600波特,并设定超时时间为0.5s,然后启动该串⼝。Python中如果要接收来⾃串⼝的数据,可以使⽤“adline()”读⼀⾏,其中插⼊数据库代码如下:01 temp=data.decode("utf-8")#接收串⼝过来的值02#取得数据库中的内容03
result=Temp.query.filter(Temp.id!='').order_by(Temp.id.desc()).first()#查ID号最⼤那条记录04 perature05 print(temp0)06 if temp0!=temp:07 temp1=Temp(temperature=data.decode(“utf-8”))08 db.session.add(temp1)#把对象添加到会话中09 db.sessionmit()#提交事务01-06⾏代码实现了从串⼝接收代码,然后通过使⽤03⾏的语句查数据库最新更新的那条记录,到该记录后,取出其温度值,然后该值与串⼝传过来的温度值相⽐较,如果两者不相等的话,就执⾏07-09所对应的代码将数据插⼊Mysql数据库予以保存。四、结束语本设计利⽤Python和单⽚机实现了实时温度采集系统,有效地将计算机技术、虚拟仪器技术结合起来,能够实现多路物

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。