基于STM32的智能数据采集系统
2021-09-22孙二威吴振磊
孙二威 吴振磊
摘要:本文设计了一种基于STM32主控芯片的智能数据采集系统。该系统由STM32C8T6作为主控芯片,控制温湿度传感器与光照强度传感器来检测当前环境的温湿度值和光照强度值,以获取相关数据信息。取得的数据经过处理后可在系统自带的0.96寸OLED显示屏上实时显示,实现数据实时可视化的功能。此外,还可根据预设值实现蜂鸣器报警和led指示灯报警的功能且可由按键手动控制其报警。同时,该系统还具有网络互联功能,主控芯片获取的数据经由ESP8266模块将数据上传至服务器,通过基于TCP的MQTT协议订阅设备上的数据,来完成数据远程传输的功能。这样用户就可使用微信小程序来获取采集到的数据信息,实现数据采集的智能化设计。
关键词:STM32C8T6;数据采集;ESP8266;微信小程序
中图分类号:TP274.2;TP23
1 引言
在时代飞速发展的社会背景中,如今智能设备的主要功能很大程度上取决于数据的采集,一代又一代的新产品其目的都是为了实现更好的数据获取和检测功能的方便快捷。智能数据采集在居家、测量、监控等很多方面应用,通过智能数据采集系统可方便获取室内的温度值、湿度值、光照强度等一系列的数据参数,并通过这些数据去驱动智能家电准确工作。
一般的数据采集办法是利用常规采集仪器来完成,采集仪器体积大、重量重、功耗高且运输不便。这时智能数据采集就显得尤为重要,无线数据的采集可以在时间片段下轮流采集,可解决有线数据采集的局限性能够得到有效的改善,提高了数据采集的完整性。用户手机端的微信小程序可以作为一种远程获取数据的方式,使用户能够简便迅速地获取数据,并根据所获得的数据来自定义其用途和需求,以实现数据智能采集这一过程。
2 系统的设计内容
该设计是基于STM32的智能数据采集系统,通过主控芯片STM32C8T6接收传感器采集到光照强度和温湿度数据,经wifi通過路由器上传至云服务器,通过EMQX(MQTT消息代理)把获取到的数值经由蜂窝数据或路由器传输,用户可以利用手机远程订阅服务器上的数据,并下发数据至微信小程序实时观测。
本系统的具体工作流程为:当智能数据采集系统上电运行之后,系统首先运行初始化代码,检测各个模块如esp8266、蜂鸣器、温湿度传感器、光照强度传感器和OLED等与主控板是否连接正常,通过对各个硬件模块的初始化来分别判断各部分功能是否正常。在初始化完成之后,可以通过蜂鸣器进行提示,这时就可以进行正常的工作,OLED就可以正常显示采集到的温度、湿度和光照强度值。
接下来数据采集首先经过esp866的数据上传,MQTT协议的正确连接完成和服务器在数据成功接收的情况下,经过服务器下发数据之后,微信小程序就可以订阅服务器上面的数据。其系统整体设计框图如图1所示。
3 系统模块设计
3.1 控制模块
STM32F103C8最小系统板使用ARM 32位内核,增强了I/O口和外设,并且它的容量大,具有64KB的FLASH ROM,并且它的静态随机存储器最高可以达到20KB,系统板里面还设置有省电机制,可以工作的温度范围在-40℃到+80℃之间,温度弹性好。
最小系统板其功能强大,在很大程度上方便了该系统的应用扩展。首先其烧录程序只需要除电源两个引脚外的发送和接收两个引脚,极大方便了我们随时烧录以及修改程序这一过程。其次就是其有37个输入输出端口可以使用能有接入很多设备和模块,其带有一个贴片晶振,以实现对定时器提供精准的时间,能够完成对时钟要求不是极度精准的检测环境,如日常生活对时间的要求等。
3.2 光强度检测模块
在工业生产上,光照强度的过强或是过弱都有可能引起产品质量的问题。因此对光照强度的控制是必不可少的,只有将光照强度控制在某一个指定范围内,我的生活才能正常有序的进行。本系统中选用的BH1750模块可以很精确显示出当前的光强值,通过光线的强弱来将光信号转化成电信号,经放大器和电压采集后,通过逻辑电路将数据存储在内部的寄存器里,可以完成光照强度转化的这一功能。根据光强度的物理定义来说是指单位面积上所接收可见光的光通量,用于指示光照的强弱和物体表面积被照明程度的量。由于这个模块可以省略复杂的计算,不必根据平均照度的计算公式利用光源总的光通量,利用系数和区域面积之间的关系来计算出结果。这样使得BH750模块用于感知在各种环境照度值来反映当前的照明状况非常重要。
光强模块的工作原理属于内光电效应中的光电二极管,在没有光照的情况下,少数载流子在反向偏压作用下系形成微小的反向电流——暗电流;受到光照的时候,在外加反向电压和内电厂作用下,光生电子空穴使少数载流子浓度大大增加,并分别被拉向N区和P区,反向电流大大增加,形成光电流。经集成运算放大器将电流转换为电压,再由数模转换存储到数据寄存器中。
其数据分辨率的计算公式为:
光照强度(单位lx)=(高字节 + 低字节)/ 1.2 * 测量精度
主控芯片读取数据的过程要遵循I2C通讯方式,主控芯片的SCL时钟线在保持高电平的状态下,SDA数据线开始由高电平到低电平的跳变这一过程,表明了主控芯片进行读取数据起始状态的开始。主控芯片的SCL时钟线在保持高电平的状态下,SDA数据线开始由低电平到高电平的跳变这一过程,表明了主控芯片进行读取数据结束状态的标志。
主控芯片在控制数据的传输过程中要进行数据传输正确性的判断规定,在数据传输的过程中要保证数据传输的稳定性,其高电平于低电平状态的改变需保证在时钟信号SCL在低电平期间,其一次传输的数据通常在9位的帧格式来进行传输数据,其构成为一个字节和一位应答,一个字节数据的正确行判断还需要进行寻址的判定来验证传输的地址与主控芯片的地址进行校验匹配。
3.3 温湿度检测模块
温湿度检测模块采用了DHT11温湿度传感器,这是一种复合的传感器,其内部已经集成了一系列的转换电路,可以方便的实现温度湿度转化的功能。
DHT11和主控芯片之间通信首先在硬件上要确保连接正确,由于单总线来传递信号其硬件方面很容易保证,程序方面就需要按照其信號图来进行设计。在主控芯片读取DHT11的数据之前要先发送一个开始的信号来表明要读取信号。
首先要将主机的信号拉高置“1”,这个置“1”的过程没有明确拉高时间这里就可以不用设置。接下来就置“0”的过程需要延时20ms左右。紧接着就是对主机信号拉高置“1”,并且延时20us-40us,这里就设置为30us。
其次就是最关键的一点来判断从机也就是DHT11的响应,由于这个过程需要跟主机的拉高时间来设置其延时时间,由于主机延时的时间最低可设置为20us,最高的延时时间为40us,DHT11的响应信号需要置“0”拉低时间持续在80us,因此在检测DHT11相应时间上设置在40us到100us之间就比较合适。可以通过检测延式的时间是否超过100us来判断DHT11是否连接正常,一方面能判断DHT11是否存在,另一方面也能判断DHT11连接后是否能传输正确的数据来判断其是否损坏并及时排除故障。
在检测到DHT11能够正常相应之后就可进行数据的读取了,数据的读取需要按位进行读取,其数据的位数有40位。
3.4 WIFI模块
WIFI模块采用的是安信可公司推出的高性能模块ESP8266,用这个模块可以与单片机或者其他的通讯设备连接。它有4种工作方式:CPIO模式、透传模式、串口指令模式、HTTPD Client模式。ESP8266模块的电路核心是ESP8266,该芯片功能强大,其外围电路包括一个2MB的SPI闪存用来进行数据的存储,天线电路可进行网络的连接和配置,晶振电路提供精准的时钟信号,指示灯电路来展示供电或连接状况,以及接口电路来便于数据的连接和主控芯片之间的传输。
ESP8266模块总共定义了八个引脚,根据需要在这使用到了模块的四个引脚,电源和地,使用RXD和TXD两个引脚来进行和主控芯片的通信。这样采集到的数据就可以经过MQTT协议格式的传递将数据准确的传输到服务器当中,以便通过各种方式来获取或使用其数据。
4 软件设计
微信小程序的开发设计有很多的开发方式例如原生开发、 WEPY框架、MPVUE框架、TARO框架和uni-app框架,各种开发方式都有其优点。本系统采用的是MPVUE框架结构,开发小程序发挥其框架结构的优势,MPVUE使得小程序和Vue.js生命周期进行关联,两者间建立事件代理机制和数据同步机制。MPVUE和原生的小程序也是存在一定的不同,被预编译为WXML的MPVUE才可以在小程序里执行。其中有很多的形式不被允许,例如:动态组件、自定义render等。由于采用集中式页面配置,各个页面的入口文件可以自动生成,实现页面的标题配置、下拉的刷新、颜色的变化等优点,使得其MPVUE框架结构经常用于微信小程序开发中。
5 结束语
本论文实现了基于STM32F103C8T6最小系统板的智能数据采集系统的设计,完成了智能数据的光照强度,温度湿度的采集,用户可以在现场通过OLED显示屏进行实时观测。同时,在上电后通过ESP8266模块可以连接WIFI热点或者路由器,将获取到的数据上传至MQTT服务器中,用户可以通过微信小程序对数据的订阅获取,实现了监测数据的远程访问。该系统经测试准确可靠,并且可扩展性强,有很好的实用性。
参考文献
- 许婉韵.关于微信小程序与原生APP使用偏好性的研究[J].农家参谋,2018(21):216-217.
- 石瑛. 基于ZigBee与WiFi深度结合的智能家居系统的研究与设计[D].南京邮电大学,2019.
- 王丽丽. 基于Wi-Fi的无线数据采集系统研究[D].郑州大学,2010.
- 曾德洪. 激光扫描FBG解调系统研制[D].电子科技大学,2011.
- 王衍金. 高热流密度电子部件热电冷却技术研究[D].南华大学,2011.
- 思,冷雪.微信小程序开发方式对比[J].电子制作,2020(02):52-53+22.
- 文杰. 基于Mpvue和Spring Boot的线上选房平台的设计与实现[D].北京交通大学,2020.
- 贾军营,王月鹏,王少华.基于MQTT协议IM的研究和实现[J].计算机系统,2015,24(07):9-14.
作者简介:
孙二威(1998-),男,河南驻马店人,苏州经贸职业技术学院 电子信息工程专业
吴振磊(1981-),男,江苏苏州人,硕士,讲师,研究方向:电子信息工程技术。
通讯作者:
吴振磊(1981-),男,江苏苏州人,硕士,讲师,研究方向:电子信息工程技术。
项目名称:
江苏省创新训练项目:《便携式多功能医用检测仪》
项目编号:202012685002Y。