打印

WIFI模块开发总结(MCU)

[复制链接]
511|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2023-6-19 14:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在很多产品的应用场景中,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

使用特权

评论回复
沙发
nawu| | 2023-7-4 15:58 | 只看该作者
我一般都喜欢买成品的wifi模块来用 选用的时候需要注意哪些参数呢

使用特权

评论回复
板凳
tpgf|  楼主 | 2023-7-4 16:45 | 只看该作者
为什么我们购买的现成的wifi模块或者是有wifi功能的部件 只能做客户端或者只能做服务器端呢

使用特权

评论回复
地板
gwsan| | 2023-7-4 17:03 | 只看该作者
tpgf 发表于 2023-7-4 16:45
为什么我们购买的现成的wifi模块或者是有wifi功能的部件 只能做客户端或者只能做服务器端呢 ...

透传的话 我们不需要关心底层 只要按照规定发送at指令就行 而且是通用的

使用特权

评论回复
5
tfqi| | 2023-7-4 17:21 | 只看该作者
at指令是一个通用的通讯协议吗 还是说不通的部件 协议的内容会有所不同呢

使用特权

评论回复
6
aoyi| | 2023-7-4 18:00 | 只看该作者
我们常用的wifi模块都支持什么协议呢

使用特权

评论回复
7
zljiu| | 2023-7-4 18:41 | 只看该作者
为什么使用wifi模块都必须具备透传模式呢

使用特权

评论回复
8
charleydeng| | 2023-8-25 15:45 | 只看该作者
zljiu 发表于 2023-7-4 18:41
为什么使用wifi模块都必须具备透传模式呢

您的这个疑问,看一下这篇博文,或许有助于了解透传的本质:

  何谓”透传“? UART串口WIFI模块做”透传“的目的及其局限性
  https://blog.csdn.net/kennychow/article/details/104806119

概述之,实际只有低速UART接口的WIFI模组才会有“透传”的概念,来节约串口的通信效率。而恰恰也是因为透传,导致了串口型WIFI模组存在原理级的局限(可靠性降低、不支持服务器多客户端等等特性)

一般USB SDIO SPI接口的WIFI模组,不会去使用"透传",而是高效高速的数据传输和查询控制模式并行存在,不必如透传那样进行透传和非透传模式的切换。

比如这里有一个SPI接口的WIFI模组,支持中低端单片机实现高速可靠通信的WIFI模组(SPI接口)
https://bbs.21ic.com/icview-3323168-1-1.html
可以看看。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2028

主题

15903

帖子

14

粉丝