ESP8266例程解析③smartconfig微信联网

本文详细解析了使用smartconfig技术实现ESP8266通过微信联网的过程。首先介绍了smartconfig的工作原理,即WiFi模块监听信号,手机APP发送包含WiFi信息的UDP包,ESP8266接收并配置WiFi。接着,概述了微信联网的思路,包括初始化、设置快连模式、开启smartconfig模式以及处理回调函数等步骤。最后,提到了在微信联网过程中的数据接收和定时更新机制。
摘要由CSDN通过智能技术生成

概念解析:

smartconfig就是:

  1. wifi模块通电,没有可用的wifi, 进入混杂模式, 开始监听信号覆盖范围内的所有wifi数据帧
  2. 手机APP端发送包含WIFI 用户名 WIFI密码的 UDP 广播包或者组播包,
  3. 智能终端的WIFI芯片可以接收到该UDP包,只要知道UDP的组织形式,就可以通过接收到的UDP包解密出WIFI 用户名 密码
  4. 然后智能硬件配置收到的WIFI 用户名 密码到指定的WIFI AP 上。

微信联网

思路

  1. 初始化内存分区

  2. 打印SDK版本

  3. 设置快连模式的协议类型
    SC_TYPE_ESPTOUCH,SC_TYPE_AIRKISS,SC_TYPE_ESPTOUCH_AIRKISS

  4. 设置WIFI模式 0x01station模式 0x02 soft-AP模式 0x03 station+soft-AP模式

  5. 开启快连模式(快速连接ESP8266 station到AP
    ESP8266抓取空中特殊的数据包,包含目标AP的SSID和PASSWORD信息,同时,用户需要通过手机或者电脑广播加密的SSID和PASSWORD信息)

  6. smartconfig_done回调函数,根据快连模式返回值 决定回调函数的case(等候,密码,通道,判断类型,是否结束)

  7. airkiss_start_discover()
    /注册成功接收网络数据的回掉函数,微信开始发现,先执行airkiss_wifilan_recv_callbk(//发现内网,并接受微信发的UDP数据包。解析,打印响应UDP,发送UDP到password端口)

  8. airkiss_wifilan_time_callback定时器回调函数
    和airkiss_wifilan_recv_callbk类似,相当于每隔一段时间更新信息

代码

#include "ets_sys.h"
#include "osapi.h"
#include "ip_addr.h"
#include "espconn.h"
#include "mem.h"


#include "user_interface.h"
#include "smartconfig.h"
#include "airkiss.h"


#define DEVICE_TYPE 		"gh_9e2cff3dfa51" //wechat public number
#define DEVICE_ID 			"122475" //model ID

#define DEFAULT_LAN_PORT 	12476

#if ((SPI_FLASH_SIZE_MAP == 0) || (SPI_FLASH_SIZE_MAP == 1))
#error "The flash map is not supported"
#elif (SPI_FLASH_SIZE_MAP == 2)
#define SYSTEM_PARTITION_OTA_SIZE							0x6A000
#define SYSTEM_PARTITION_OTA_2_ADDR							0x81000
#define SYSTEM_PARTITION_RF_CAL_ADDR						0xfb000
#define SYSTEM_PARTITION_PHY_DATA_ADDR						0xfc000
#define SYSTEM_PARTITION_SYSTEM_PARAMETER_ADDR				0xfd000
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值