家里有智能家居的小伙伴应该都知道,给新买的玩具配网上线都是直接安装教程扫描二维码然后安装个软件输入家里路由器的账号密码或者直接到一个网页输入这种联网方式,然而我们在玩8266还没出新手村之前都是将WiFi的账号密码写死在程序里,开机直接上网的新手模式,这就很没有使用价值了。
ESP8266-RTOS-SDK中提供了两种(SmartConfig)智能配网的方案接口:
- 乐鑫提供的ESP-TOUCH
- AirKiss
ESP-TOUCH
乐鑫自主研发的 ESP-TOUCH 协议采用的是 Smart Config(智能配置)技术来帮助用户将嵌入了 ESP8266EX 的设备连接至 Wi-Fi 网络。用户只需在手机上进行简单操作即可实现智能配置。
乐鑫官方提供了ESP-TOUCH的APK源码,见*乐鑫官方APK*, 通过手机APP实现智能配网,就不需要将WiFi写入固件了。
AirKiss
AirKiss是微信硬件平台提供的一种WIFI设备快速入网配置技术,要使用微信客户端的方式配置设备入网,需要设备支持AirKiss技术。目前已经有越来越多的芯片和模块厂商,提供了支持AirKiss技术的方案。
以智能插座为例,下文将说明AirKiss技术的应用方案和交互流程。智能插座属于物联网智能控制类设备,它可用于家电(比如电灯、热水器等)的智能化开关控制。智能插座的特点是小型化且低功耗,显而易见,该设备并不适合于配置屏幕与键盘等输入外设。在这种情况下,AirKiss技术能完美解决其SSID与密码的传输、设置问题。

AirKiss技术对应用设备的硬件几乎没有额外的要求,配置时需要设备能够进入AirKiss模式。在本例中,智能插座在按下了配置按键之后,指示灯闪烁进入AirKiss模式,成为了AirKiss技术中信息的接收方。用户则可以使用微信手机客户端,成为AirKiss技术中的信息发送方。
以上介绍转自微信硬件平台对AirKiss的介绍。
ESP8266使用智能配网
在SDK中,乐鑫有提供针对以上两种的配网接口,使用方便。由于是智能配网,所以在代码中不需要写入WiFi的相关信息,所以像前几篇博客中连接WiFi的函数可就更加简单了,只需要打开WiFi功能即可,具体的WiFi信息在SmartConfig获取后自动填入再连接具体的WiFi。
static void initialise_wifi(void)
{
tcpip_adapter_init();
wifi_event_group = xEventGroupCreate();
ESP_ERROR_CHECK( esp_event_loop_init(event_handler, NULL) );
wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
ESP_ERROR_CHECK( esp_wifi_init(&cfg) );
ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) );
ESP_ERROR_CHECK( esp_wifi_start() );
}
针对SmartConfig的接口乐鑫官方集成度高,所以接口不多但是全:
头文件
#include "esp_smartconfig.h"
ESP8266智能配网详解

本文详细介绍了ESP8266-RTOS-SDK中两种智能配网方案:ESP-TOUCH和AirKiss。ESP-TOUCH由乐鑫自主研发,AirKiss为微信硬件平台提供,两者均可简化设备连接Wi-Fi的过程。文章还提供了SmartConfig的使用流程,包括编写事件回调函数、设置工作模式和启动SmartConfig的具体步骤。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



