在很多产品的应用场景中,WIFI网络会给我们提供很多亮点,MCU开发中大多使用串口WIFI模块来实现产品接入WIFI网络中。
具体的使用模型如下图所示:整个系统设计到WIFI网络、手机、服务器平台以及我们设计的产品,一个完整的生态是这样的。服务器端要有数据库和管理平台,手机端有一个APP来远程查看或者操控,大部分的只能家居产品都是这个模式。
常规的使用流程:
1.产品的WIFI模块首先应该处在AP模式下,手机连接WIFI模块释放的WIFI网络,实现手机与设备之间的网络通信,这一步是用来给WIFI配置网络使用的,这个网络是能够连接到互联网中的(很多厂家这一步使用蓝牙来实现,可能流程上更加合理?这一点目前没有过多了解)。
2.当设备收到手机端传来的WIFI名称(SSID)和密码(password)时,WIFI模块进入到STA模式下,去连接手机配置的这个WIFI网络,如果网络连接成功之后,就可以去跟服务器去进行通信了。
需要注意的是,国内有的WIFI厂家的模块连接的WIFI名称和密码都必须是英文字符和数字,例如中文名的WIFI就无法连接。
3.WIFI连接成功之后,就是连接服务器了,可以通过一条AT指令与服务器建立一个TCP或者UDP连接或者其他什么网络连接。使用AT指令去建立连服务器的IP和端口。
例如:
printf("AT+CIPSTART=\"TCP\",\"221.23.452.22\",1883");
221.23.452.22是服务的IP地址,1883是端口。
4.手机也是去连接到服务器,这样整个系统就连接到一起了,实现了手机到设备的远程查看和设置,服务器更像是一个中间媒介,将手机和设备通过网络连接起来。
基于MCU开发串口WIFI模块需要了解哪些?
AT指令
串口WIFI模块的控制都是通过AT指令来实现,其他一些串口模块都是这样的。这里说一些处理AT指令处理的方法。
AT指令都是字符串格式的,C语言有专门处理字符串的函数,#include string.h这个头文件;
指令和响应一般都是以\r\n作为结束符,处理数据时可以以此来作为判断;
多看AT指令手册,仔细一点,说不定你遇到的问题在文档中已经提到了。
服务器通信协议
有很多WIFI模块已经集成了一些网络通信协议,例如MQTT、HTTP等网络协议,但是有一些模块是没有这些个通信协议的,当然会便宜一些。这个时候模块只能建立TCP连接,需要开发者门自己编写程序来实相应的网络协议。这些协议都是标准协议,可以看其对应的文档,连接过程是什么样的,应该发什么样的数据格式。
具体可以看一下我的另外一片文章。
WIFI模块不支持MQTT协议,可通过MCU实现
具体如何实现网络协议,都是在其对应的标准之下的,所以你需要去了解对应的协议标准。
建立通信协议
上边说的是标准的网络通信协议,通过这个协议格式能够与服务器正常的连接上,能够正常的对话上,具体你发送的内容是什么,还是要再制定一个通信协议的。
与APP开发人员、后台管理系统开发人员沟通
WIFI模块接入网络中之后,要有一个完整的生态,并不是一个人能完成的(大神除外)。所以就需要有一个良好的沟通,因为他们的软件开发跟嵌入式软件开发还是有不相通的地方。例如他们喜欢用json字符串,嵌入式喜欢用十六进制。
————————————————
版权声明:本文为CSDN博主「家养钢铁侠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45325304/article/details/130889096
|