赞
踩
开源意义
让微信小程序也可以配网设备!
2019.11
28
一
· 前言 ·
前几天,乐鑫公众号小编送了我一个礼物,心砰砰跳的我以为是个新开发板,一打开,原来是个杯子,蛮新颖的,感谢乐鑫对我的支持!
熟悉的粉丝都知道,我对乐鑫产品系列的配网方式很熟悉,有做过smartConfig、airkiss以及AP热点配网等博文,还有最近提到的天猫精灵零配等教程;
今天,再来分享一波乐鑫的蓝牙配网实现在微信小程序的工程;
二
· 认识蓝牙配网BluFi·
BluFi是一款基于蓝牙通道的WiFi网络配置功能,适用于ESP32。它通过安全协议将 WiFi配置和证书传输到ESP32,然后ESP32 可基于这些信息连接到AP或建立SoftAP。
总的来说,一旦上位机和esp32成功建立蓝牙连接,在输入的路由器ssid和正确情况下,配网速度快、成功率高!
详细过程:
1.ESP32开启GATT Server 功能,发送带有特定adv data的广播。你可以自定义该广播,该广播不属于 BluFi Profile。
2.使用手机APP搜索到该特定广播,手机作为GATT Client连接 ESP32。你可以决定使用哪款手机 APP。
3.GATT连接建立成功后,手机向ESP32发送“协商过程”数据帧(详情见 BluFi 传输格式)。
4.ESP32收到“协商过程”数据帧后,会按照使用者自定义的协商过程来解析。
5.手机与 ESP32 进行密钥协商。协商过程可使用DH/RSA/ECC 等加密算法进行。
6.协商结束后,手机端向ESP32发送“设置安全模式”控制帧。
7.ESP32收到“设置安全模式”控制帧后,使用经过协商的共享密钥以及配置的安全策略对通信数据进行加密和解密。
8.手机向ESP32发送“BluFi 传输格式”定义的SSID、Password 等用于 Wi-Fi 连接的必要信息。
9.手机向ESP32发送“Wi-Fi 连接请求”控制帧,ESP32收到之后,识别为手机已将必要的信息传输完毕,准备连接Wi-Fi。
10.ESP32连接到Wi-Fi 后,发送“Wi-Fi 连接状态报告”控制帧到手机,以报告连接状态。至此配网结束。
Blufi配网流程图
三
· 设备端开发集成Blufi协议 ·
上述已为大家讲述blufi的通讯配网原理,下面为大家如何集成blufi协议到esp32中。
搭建好esp32环境,直接编译example下面的《blufi》工程即可;
四
微信小程序端· ·
自从开源了在微信小程序Mqtt控制esp设备,微信小程序配网esp设备一直是广大“鑫粉”的追求!
因为wifi模块没AP路由器,就难于实现远程控制,我也提出方案:公众号配网+小程序控制的方案,目前是可行的。按道理来说,airkiss配网,不可能会在微信小程序上调用了。这点官网社区也有提到,暂无考虑;
这个微信小程序配网很多人都在研究,包括热点AP配网,声波配网等。我从今年4月份做好了小程序配网,但一直未开源未公开。是乐鑫的人脸识别《esp-eye》仓库启发了我,我对比其小程序端仓库,再运用之前的项目经验,一周零零散散的时间,简简单单地整理好啦!
后面,我会慢慢整理封装成为一个js库,同时支持支付宝小程序,这是我的后续工作,欢迎大家支持我开源!
长按下面的小程序码进去体验吧!
BlufiEsp32
源码地址:
https://github.com/xuhongv/BlufiEsp32WeChat
五
· 我的其他开源微信项目 ·
1、小程序连接mqtt服务器,控制esp8266:
https://github.com/xuhongv/WeChatMiniEsp8266
2、公众号airkiss配网、近场发现在esp8266:
https://github.com/xuhongv/xLibEsp8266Rtos3.1AirKiss
3、公众号airkiss配网、近场发现在esp32:
https://github.com/xuhongv/xLibEsp32IdfAirKiss
4、小程序控制esp8266实现七彩效果项目源码:
https://github.com/xuhongv/WCMiniColorSetForEsp8266
5、微信小程序蓝牙配网blufi实现在esp32源码:
https://github.com/xuhongv/BlufiEsp32WeChat
6、微信小程序蓝牙ble控制esp32七彩灯效果:
https://blog.csdn.net/xh870189248/article/details/101849759
7、可商用的事件分发的微信小程序mqtt框架:
https://blog.csdn.net/xh870189248/article/details/88718302
8、微信小程序mqtt连接阿里云IOT物联网平台
https://blog.csdn.net/xh870189248/article/details/91490697
9、微信公众号网页实现连接mqtt服务器
https://blog.csdn.net/xh870189248/article/details/100738444
本人作品
我是一名热爱分享的全栈程序员,熟悉Android 、前端JavaScript微信小程序、php服务器开发以及嵌入式智能硬件编程。
作为一个 esp8266 开发老司机的我,做过很多 esp8266的项目,比较商业化的有接入阿里智能生活平台、天猫精灵linkkitapp、苏宁智能平台以及京东微联智能平台,以及做过一些小项目esp8266 驱动红外线、七彩灯以及一些数码管,个人觉得,对esp8266 开发颇有一番见解。所以,本微信公众号输入“8266文档”获取我平时汇总的最最常见的开发问题,帮助大家跳过开发这款芯片的那些坑!
也在GitHub开源了esp8266、esp32、微信小程序控制硬件、服务器airkiss配网等物联网代码工程,欢迎 star !助国内物联网发展一臂之力!
联系邮箱: xuhongv@yeah.net
GitHub: https://github.com/xuhongv
CSDN: http://blog.csdn.net/xh870189248
小徐专属QQ讨论群,资源多多: 434878850
长按关注,干货推送!
您的打赏,是我不断创作的动力!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。