AP配网
在调试我的esp32c3的智能配网过程中,发现ap配网使用云智能App是可以正常配置的。
切记用户如果在menu菜单里使能AP配网,默认SSID名字为adh_PK值_MAC后6位。用户可以修改这个apssid的键值,但是要使用云智能app则这个名字的开头必须为adh_xxxxx,其它配网软件还没测试过,但云智能app是这样要求的。
一键配网
这个地方遇到了坑,智能配网过程中,ESP32C3不停地扫描所有通道2.4G的通道1到通道13。注意这个时间为60秒,用户可以修改宏设定自己的超时时间,或者在超时回调函数里面再次启动CONN_SC_ZERO_MODE或者启用CONN_SOFTAP_MODE AP配网模式。超时后,默认会进入AP配网模式。这个时候我使用云智能APP里面的别家产品配网,发现报zconfig_get_ssid_passwd:passwd err 意思就是秘钥解密错误,但SSID是能够解密出来的。换个别家配网APP现象是一致的。
我网上看到说是阿里云四元组的事,这个时候我拿到别家能够配置好的先复位后配网,它是能够解析到SSID和PASSWORD的。此时我将它代码里的阿里云四元组给注释掉,复位上电配网测试,发现能够解析出SSID但密码就是解析不出来同样报passwd err 此时我将对四元组逐个释放屏蔽,最终发现必须要有PS值。
此时可以断定配网的秘钥与PS值有关联,这个时候我使用云智能app对别家的产品进行配网,发现还是报passwd err这个气候就能发现,这个配网的PS值和和esp32里面的PS值必须统一,可以推断,SSID应该是明码发过来的,那个passwd大多数使用AES128加密而这个PS就是对passwd解密的秘钥,其它产品是解析不出来的,只有我的esp32里面有对应的PS值可以。
将别家的PS值复制到我的工程替代,使用别家的App进行配网。通过串口打印,发现SSID和passwd均可以解密出家,并去连接这个路由器可以获取到IP。这个时候我的产品无法连接到阿里云,因为它的PS值是错的,这个地方我在代码里获取到IP后重新将我的PS值设置进入。下一步eap去连接阿里云刚好用的就是我刚设置的PS值。
至此这个一键配网就OK了。官方代码默认不显示passwd密码在串口上。算了为了安全不明码打印出来了。
后面我将开启蓝牙辅助配网给加入进去。