最近需要做wifi通信实验,实验中的坑比较多,本文章用于记录实验中遇到的问题。
----------更新:本文章只实现了简单的wifi连接功能,最近封装了较完整的wifi协议,能够实现wifi连接、服务器连接、封装发送数据、解析接收数据、服务器创建等功能,文章链接:https://blog.csdn.net/qq_26024785/article/details/107352408
实验内容
了解ESP8266的基本工作原理,使程序能够自行连接给定的WIFI热点和服务器并实现双向通信。
工程文件网盘地址:https://pan.baidu.com/s/11HxmfvIRzxYGAoqXzZa0Uw 提取码:hbv2
整体思路
通过直接控制wifi模块可以发现整个连接过程有几个指令是不可缺少的:
AT测试、
AT+CWMODE=1设置工作模式、
AT+CWJAP=“热点名称”,“热点密码”
AT+CIPSTART=“TCP”,“服务器地址”,端口号
另外为了方便测试还有ATE1打开回显。
根据以上命令编写wifi_init()函数,先向wifi模块发送“AT”,接收到OK后发送“AT+CWMODE=1”,接收到OK后一次发送3、4两条命令同时检测是否接收到OK。
在上述任意环节超出超时时间后还没有检测到OK则认为连接失败,进行下一次连接,连续连接失败3次后返回错误信息。
代码解析
wifi模块参数配置:
#define WIFI_NAME "hello_world"//需要连接的热点名