前幾天,樂鑫公眾號小編送了我一個禮物,心砰砰跳的我以為是個新開發板,一打開,原來是個杯子,蠻新穎的,感謝樂鑫對我的支持!
熟悉的粉絲都知道,我對樂鑫產品系列的配網方式很熟悉,有做過smartConfig、airkiss以及AP熱點配網等博文,還有最近提到的天貓精靈零配等教程;
今天,再來分享一波樂鑫的藍牙配網實現在微信小程序的工程;
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協議到esp32中。
搭建好esp32環境,直接編譯example下面的《blufi》工程即可;
自從開源了在微信小程序Mqtt控制esp設備,微信小程序配網esp設備一直是廣大「鑫粉」的追求!
因為wifi模塊沒AP路由器,就難於實現遠程控制,我也提出方案:公眾號配網+小程序控制的方案,目前是可行的。按道理來說,airkiss配網,不可能會在微信小程序上調用了。這點官網社區也有提到,暫無考慮;
這個微信小程序配網很多人都在研究,包括熱點AP配網,聲波配網等。我從今年4月份做好了小程序配網,但一直未開源未公開。是樂鑫的人臉識別《esp-eye》倉庫啟發了我,我對比其小程序端倉庫,再運用之前的項目經驗,一周零零散散的時間,簡簡單單地整理好啦!
後面,我會慢慢整理封裝成為一個js庫,同時支持支付寶小程序,這是我的後續工作,歡迎大家支持我開源!
長按下面的小程序碼進去體驗吧!
源碼地址:
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