(1.沈阳理工大学 机器工程学院,辽宁 沈阳 110159;2.国网辽宁省电力有限公司营口供电公司,辽宁 营口 115000)
:针对工业上监测现场数据采集的远程网络传输需求,提出了一种基于STM32F103微掌握器和SIM900A通信模块的网络多点远程数据监测系统。STM32下位机可以完成各传感器的周期性数据采集,并利用SIM900A模块实现其与远程上位机在GPRS网络上的不依赖监测现场网络环境的TCP数据通信。系统可以实现不间断对多个监测点的多个监测工具同时进行数据采集和远程数据传输。现场实验表明,该监测系统稳定性高、实时性强、丈量偏差小、功耗低,可以知足工业上的设计哀求。
:数据采集;TCP;GPRS ;STM32;SIM900A

:TP27文献标识码:ADOI: 10.19358/j.issn.1674-7720.2016.24.030
引用格式:李驰,段智敏,丛培田,等. 基于STM32和SIM900A的网络多点远程数据监测系统设计[J].微型机与运用,2016,35(24):105-108.
0弁言
在工业中,数据的采集一贯是生产过程中非常主要的环节,无论是机器的正常运转还是作业环境的保持,都离不开准确高效的数据采集技能。
基于嵌入式构造设计的数据采集系统一样平常采取RS232、RS485等串口的办法与上位机进行数据通信,虽然非常可靠,但受线缆限定,上位机必须保持在一定的间隔内。而在某些高温、强堕落性环境下,线缆的支配比较困难,也随意马虎破坏[1]。
随着科技的进步,移动通信技能迅猛发展,现在已经具有了非常高的稳定性,这也使移动通信技能在工业中运用成为可能。利用现有的GPRS网络,发挥其网络覆盖率高、传输特性好的优点,为原有的数据采集系统供应了一种方便的无线传输功能。移动通信技能具有支配灵巧和可独立联网的优点[2]。
1总体设计
本文所设计的网络多点远程数据监测系统由下位机与上位机组成,下位机利用通信模块与GPRS网络直接连接,实现了基于TCP的不依赖现场网络环境的可靠网络数据传输。其不仅可以在上位机上单独查看各个终端上传的数据,还可以对多个终真个数据进行交叉剖析,大大提高了采集效率和数据的利用率。
个中,下位机可大体分为STM32微掌握器、SIM900A通信模块和多传感器三部分。整套设备的本钱非常低廉,STM32微掌握器与SIM900A通信模块组成的核心部件仅需几十元钱,用户可根据需求选择空想的传感器模块。上位机程序采取基于C++措辞的Qt设计,下位机与上位机之间通过TCP协议传输网络数据,每台上位机均可以吸收多个终真个传感器上传的数据。系统的总体设计框图如图1所示。
2硬件设计
网络多点远程数据监测系统可以完成险些所有种类的数据采集。因篇幅有限,本文以温度数据采集为例先容全体系统的框架构造以及详细实现方法。 其他种类的数据采集,设计逻辑与温度数据采集基本相同,只需不才位机主程序循环中加入相应传感器的采集子程序和数据发送流程即可。
远程设备被安装在监测现场上,其通过各种传感器采集数据,经STM32微掌握器处理发送至SIM900A通信模块,通信模块会通过端口将TCP数据从GPRS网络发送给上位机。上位机根据设备号的不同差异各个下位机。该系统的硬件电路图如图2所示。
2.1STM32F103ZET6微掌握器
STM32F103ZET6增强型微掌握器利用高性能的ARM CortexTM-M3 32位的RISC内核,事情频率为72 MHz,其具有112个GPIO接口,多种复用功能,具有非常高的可开拓性[3]。
它的综合性能高,运行稳定,价格便宜,在工业运用中广为利用,是很多工程项目的空想办理方案[4]。
2.2SIM900A通信模块
无线通信模块采取SIM900A芯片实现,紧张卖力实现与远程终真个数据传输功能。SIM900A模块是一款尺寸紧凑、内置TCP/IP协议栈的GSM/GPRS模块[5]。
2.3DS18B20温度传感器
DS18B20是美信公司的一款温度传感器,单片机可以通过1Wire协议与DS18B20进行通信[6]。
3软件设计
本文所设计的系统由下位机程序与上位机程序两部分组成。个中下位机STM32程序卖力数据采集以及定时将各种数据以TCP协议经由SIM900A模块发送给上位机。而上位机程序卖力监听各端口TCP通信,处理由端口传入的TCP数据。
3.1下位机程序设计
下位机程序由主程序、发送TCP数据子程序和丈量温度子程序三部分组成,均通过C措辞进行设计。三个模块互助完成数据采集和上传事情。
3.1.1主程序
STM32主程序卖力初始化各寄存器以及周期性地调用各功能子程序以采集数据并将采集到的数据通过GPRS网络发送给各上位机。这里须要把稳的是,图3主程序流程图STM32微掌握器的GPIO口和复用功能均有独立的时钟,利用前必须进行初始化,否则各外设无法正常事情。SysTick时钟用来产生心跳中断,实现延时功能。其系统流程图如图3所示。
3.1.2 发送TCP数据子程序
SIM900A通信模块采取串行接口与STM32进行通信。STM32运用AT指令与SIM900A通信[7]。本文紧张运用SIM900A的TCP通信功能,涉及关于TCP协议的紧张指令如表1所示。
跟据AT指令以及相应的指令格式,数据发送子程序的流程如图4所示
3.1.3丈量温度传感器子程序
DS18B20温度传感器采取1Wire协议与STM32微掌握器进行通信,它只有一个DQ引脚卖力通报数据,具有非常繁芜的软件时序。其程序流程图如图5所示。
3.2上位机程序设计
本文所设计的上位机系统采取Qt设计,它是一个跨平台的C++图形用户界面运用程序框架。它为运用程序开拓者供应建立艺术级图形用户界面所需的所有功能。它是完备面向工具的,很随意马虎扩展,并且许可真正的组件编程[8]。只须要编写一次运用程序,就可以在不同操作系统上支配这些程序。
Qt通过旗子暗记和槽的机制来完成两个Qt工具之间的通信。旗子暗记会在某个机遇触发,而槽便是相应和处理旗子暗记的对应函数[9]。
3.2.1 ReceivedData类
上位机程序的核心是ReceivedData类,它是一个继续自QWidget类的自定义类。每个ReceivedData类工具对应一个端口,卖力吸收和处理不同下位机传输的TCP数据并完成数据在图表上的显示事情。
ReceivedData类中紧张包含一个QCustomPlot类工具、一个QTcpServer类工具和一个QTcpSocket类工具。QCustomPlot类是一个体积小巧但功能很强的Qt绘图类,它供应给程序一个绘制图表的窗口,利用者可以通过对参数的设置在一个窗口内很随意马虎地实现多条曲线绘制、鼠标拖曳滚轮缩放图像等功能。而QTcpServer类和QTcpSocket类工具的组合可以完成指定端口的TCP数据吸收。ReceivedData类的紧张构成如表2所示。
3.2.2TCP协议通信处理流程
Qt通过套接字完成TCP数据的传输,在吸收到连接要求后TCP做事器会把新的连接绑定到套接字上。作为TCP做事器的上位机与作为TCP客户真个下位机交互流程图如图6所示。
4实验结果
分别在两个地点支配下位机系统,连接各传感器后开启下位机电源,上位机开始从指定端口吸收到TCP数据。经由一段韶光的监测,从远程的上位机处得到了监测数据的曲线。
图7展示了上位机远程监测两台下位机数据的运行效果,从当前图中可以清楚地看出两个监测地点的温度随韶光的变革情形,通过组合框可以切换监测源的监测工具。上位机界面中包括两路通道,分别吸收两个下位机上传的数据,多路数据监测界面的设计事理与其相同,只需按哀求实例ReceivedData类工具就可以完成指天命量下位机的数据监测。
5结论
本文所设计的数据采集系统是一种非常适宜繁芜现场环境和临时丈量的办理方案。这种丈量终端与上位机没有间隔限定并且节省了大量的人力物力,只要双方可以连接互联网就可以完成数据传输。在物联网技能迅猛发展的本日,这种结合了GPRS网络的远程数据采集系统非常具有实用代价。
参考文献
[1] 王志义,苗亚春.有线传输技能特点剖析和发展方向[J].电子工程技能与软件工程,2013(17):193193
[2] 李阳辉.基于STM32和GSM的温度远程监控系统设计[J].自动化与仪器仪表,2015(1):5659.
[3] 卢有亮.基于STM32的嵌入式系统事理与设计[M].北京:机器工业出版社,2014.
[4] YIU J. ARM CortexM3与CortexM4威信指南[M].吴常玉,曹孟娟,王丽红,译.北京:清华大学出版社,2015.
[5] 甘志伟,闫凯.基于SIM900A的无线数据采集卡设计与实现[J].山西电子技能,2013(1):5558.
[6] 宋雪松,李冬明,崔长胜.手把手教你学51单片机:C措辞版[M].北京:清华大学出版社,2014.
[7] 郑优讯,李宗伯.基于STM32微处理器的GPRS数据传输技能的研究[J].微型机与运用,2012,31(21):6164.
[8] 陆文周.Qt5开拓及实例(第2版)[M].北京:电子工业出版社,2015.
[9] 金大臣尔.Qt5开拓实战[M].张红艳,译.北京:公民邮电出版社,2015.