基于STM32物联网控制器方案设计
2020-07-04姜志宪张伟王福虎
姜志宪 张伟 王福虎
摘 要:设计一款由STM32+ESP8266组成的物联网控制器,通过TCP/IP网络协议与OneNET平台完成通信传输。STM32采集并发送控制指令给ESP8266,完成与OneNet平台的相互订阅。最终手机端APP达到查看并控制设备状态的功效。
关键词:STM32;ESP8266;OneNET;控制器
近年来,随着计算机技术、嵌入式技术、网络通信技术的发展,物联网也越发变成社会的讨论的焦点。万物互联已经成为未来社会发展的趋势,智能交通、人工智能、工业自动化及某些公共服务设备都可以通过网络成为有机的整体。物联网正在改变人们的生活,改变着整个世界[1]。
1 总体设计
控制器主要由ESP8266模组和STM32两部分组成,ESP8266与OneNet平台信息交互是基于MQTT协议的。STM32通过UART与ESP8266完成通信,确保物联网控制器接入网络并接入OneNet平台。最终,手机APP端与控制器通过OneNet平台完成相互订阅,进行信息转换发送。物联网控制器的总体设计框图如图1所示。
2 硬件设计
2.1 主控芯片选型
主控芯片采用意法半导体的STM32芯片,该芯片工作电压为3.3V,其I/O接口多达64个,驱动电压为3.3V、5V,支持IIS、JTAG/SW、FSMC、PWM等外围设备,丰富的外设不但满足本次开发的需求,也满足后期设备升级换代的空间[2]。
2.2 通信模块
该控制器的通信模块采用岳鑫的ESP8266的WIFI模块,ESP8266是一款物联网芯片,因为价格较低,性能稳定等受到很大关注。该芯片可工作于三种种模式下,分别是:AP模式,station模式以及混合模式,通过常用的AT指令进行控制。STM32与ESP8266就是通过AT指令完成控制的,并使得控制器最终完成联网[3]。
3 软件设计
控制器的软件部分主要是对STM32芯片进行编程,主控芯片通过AT指令控制ESP8266完成控制器联网并接入OneNet平台。控制器上电后进入初始化阶段完成各项参数的初始化,控制器可以通过APP完成联网,同时实时回传数据到服务器,APP可以及时查看相关的数据,同时通过APP也能远程向ESP8266发送信息,控制系统软件流程如图2所示。
系统调试。系统调试主要完成物联网控制器和手机端APP在OneNet端完成互相订阅,以保证双方的通信可以正常完成。物联网控制器端与OneNet端建立链接初始化程序如下:
void OneNetIoT_Parameter_Init(void)
{
memset(ClientID,128,0);//缓冲区清零
sprintf(ClientID,"%s",DEVICEID);//構建客户端ID
ClientID_len = strlen(ClientID); //计算客户端ID的长度
memset(Username,128,0); //用户名的缓冲区全部清零
sprintf(Username,"%s",PRODUCTID); //构建用户名,并存入缓冲区
Username_len = strlen(Username); //计算用户名的长度
memset(Passward,128,0); //用户名的缓冲区全部清零
sprintf(Passward,"%s",AUTHENTICATION); //构建密码,并存入缓冲区
Passward_len = strlen(Passward); //计算密码的长度
memset(ServerIP,128,0);
sprintf(ServerIP,"%s","183.230.40.39"); //构建服务器域名
ServerPort = 6002; //服务器端口号6002
}
初始化完成后,通过手机APP完成与OneNet建立链接,调试结果证明物联网控制器和手机端APP可以完成相互信息的传递,效果较好。
4 结语
本文介绍了由STM32+ESP8266构成的物联网控制器,设计主要从软件和硬件两个方面入手,控制器的改进空间还很大,还需要继续研究。基于物联网平台的设备会越来越受到大家的重视和认可,因此应用前景还是十分广阔的。
参考文献:
[1]羡慧竹.基于物联网的智能网关系统研究与实现[D].北京工业大学,2014.
[2]杨欢欢.基于STM32的温室远程控制系统的设计[D].杭州电子科技大学,2015.
[3]范兴隆.ESP8266在智能家居监控系统中的应用[J].单片机与嵌入式系统应用,2016,16(09):52-56.