@
微信物聯網生態主要分在微信硬件開發平台與騰訊物聯開發平台,前者已經停止維護,但依然有着很大的學習價值,而后者作為主推的平台,集成很多功能,包括從微信小程序實現配網到控制;
為了兼顧更多的朋友和自己的學習筆記,我將會一直更新此專題筆記,歡迎關注本人CSDN半顆心臟,帶你走進前沿領域,學習前沿技術!
自搭微信服務器&&微信硬件開發平台
【微信小程序控制硬件第1篇 】 全網首發,借助 emq 消息服務器帶你如何搭建微信小程序的mqtt服務器,輕松控制智能硬件!
【微信小程序控制硬件第2篇 】 開始微信小程序之旅,導入小程序Mqtt客戶端源碼,實現簡單的驗證和通訊於服務器!
【微信小程序控制硬件第3篇 】 從軟件到硬件搭建一個微信小程序控制esp8266的項目,自定義通訊協議,為面試職位和比賽項目加分!
【微信小程序控制硬件第4篇 】 深度剖析微信公眾號配網 Airkiss 原理與過程,esp8266如何自定義回調參數給微信,實現綁定設備第一步!
【微信小程序控制硬件第5篇 】理清接下來必須走的架構思想,學習下 JavaScript 的觀察者模式,在微信小程序多頁面同時接收到設備推送事件!
【微信小程序控制硬件第6篇 】服務器如何集成七牛雲存儲SDK,把用戶自定義設備圖片存儲在第三方服務器!
【微信小程序控制硬件第7篇 】動起來做一個微信小程序Mqtt協議控制智能硬件的框架,為自己心里全棧工程師夢想澆水!!
【微信小程序控制硬件第8篇 】微信小程序以 websocket 連接阿里雲IOT物聯網平台mqtt服務器,封裝起來使用就是這么簡單!
【微信小程序控制硬件第9篇 】巧借阿里雲物聯網平台的免費連接,從微信小程序顏色采集控制 esp8266 輸出七彩燈效果,中秋節來個直播如何?!
【微信公眾號控制硬件 第10篇 】如何在微信公眾號網頁實現連接mqtt服務器教程!!
【微信小程序控制硬件 第11篇 】全網首發,微信小程序ble藍牙控制esp32,實現無需網絡也可以控制亮度開關。
【微信小程序控制硬件 第12篇 】微信小程序藍牙控制硬件應如何開發?為您全面解析微信小程序藍牙API的使用。
【微信小程序控制硬件 第13篇 】【AT篇】與硬件平台無關,微信小程序 AP 配網安信可 Wi-Fi 模塊入網示例。
【微信小程序控制硬件 第14篇 】微信小程序藍牙+WiFi雙控制ESP32-C3應用示范;。
【微信小程序控制硬件 第15篇 】開源一個微信小程序,支持藍牙快速配網+WiFi雙控制ESP32-C3模組應用示范。
【微信小程序控制硬件 第16篇 】分享一個基於微信airkiss配網的微信小程序,擺脫騰訊物聯平台SDK的束縛,實現一鍵配網。
騰訊物聯開發平台
【騰訊連連 - 騰訊物聯開發平台 第1篇 】騰訊官方靜雞雞發布的“騰訊連連”終於來了,按照官方教程教你在微信小程序實現配網、控制 ESP8266啦!
【騰訊連連 - 騰訊物聯開發平台 第2篇 】深度解析微信小程序smartconfig配網原理,安信可ESP-12S直連騰訊物聯開發平台!!
【騰訊連連 - 騰訊物聯開發平台 第3篇 】安信可IoT微信小程序全面開源,小程序上實現一鍵配網+控制+綁定!
【騰訊連連 - 騰訊物聯開發平台 第4篇 】ESP8266 RTOS C SDK二次開發接入騰訊物聯網開發平台的筆記分享!
一、關於 WeChatAirkiss
現雖然微信硬件平台已停止維護,但騰訊物聯開發平台已做了對應的一鍵配置的SDK,但是必須捆綁在其平台下,於是乎,我開源一個基於微信小程序平台的airkiss配網的工程,也感謝群里的大神的一些指導工作,這個小程序是可單獨脫離微信任何平台的,后續還會移植到支付寶小程序里面。
本開源工程由半顆心臟基於微信配網airkiss協議做的一個開源微信配網小程序,適合於安信可在售的眾多款Wi-Fi模組,包括 ESP32C3\ESP8266\ESP32\ESP32S2系列的模組。
如果您需要對應支持airkiss配網協議的無線模組,請到安信可淘一個:點擊訪問
獲取源碼見文章底部!
二、airkiss 簡介
AirKiss是微信硬件平台為Wi-Fi設備提供的微信配網、局域網發現和局域網通訊的技術。開發者若要實現通過微信客戶端對Wi-Fi設備配網、通過微信客戶端在局域網發現Wi-Fi設備,或者把微信客戶端內的音樂、圖片、文件等消息通過局域網發送至Wi-Fi設備。
設備進入 Wi-Fi 混雜模式(promiscuous mode)以監聽捕獲周圍的 Wi-Fi 報文。由於設備暫未聯網,且 Wi-Fi 網絡的數據幀已通過加密,設備無法獲取 payload 的內容,但可以獲取報文的某些特征數據,例如每個報文的長度,同時對於某些數據幀;例如 UDP 的廣播包或多播包,其報文的幀頭結構比較固定,較容易識別。
此時在手機 App 或者小程序側,即可通過發送 UDP 的廣播包或多播包,並利用報文的特征,例如長度變化進行編碼。
將目標 Wi-Fi 路由器的 SSID/PSW 字符以約定的編碼方式發送出去,設備端在捕獲到 UDP 報文后,按約定的方式進行解碼,即可得到目標 Wi-Fi 路由器的相關信息並進行聯網。
更多關於關於微信airkiss說明,請查閱官網文檔:點擊我訪問
三、開始使用
自行注冊一個微信小程序,請下載最新版的微信開發者工具。
新建項目之后,打開 app.js
文件添加下面代碼:
"plugins": {
"airkiss": {
"version": "1.1.0",
"provider": "wx610ea582556c983e"
}
}
然后,會有提示是否添加插件,按照下面提示添加插件使用。
下面舉例說明了如何使用,更多使用技巧和方法參考本小程序。
const airkiss = requirePlugin('hello-plugin');
//獲取版本
console.log( airkiss.version)
//這里最好加微信小程序判斷賬號密碼是否為空,以及其長度和是否為5G頻段
airkiss.startAirkiss(this.data.ssid, this.data.password, function (res) {
switch (res.code) {
case 0:
wx.showModal({
title: '初始化失敗',
content: res.result,
showCancel: false,
confirmText: '收到',
})
break;
case 1:
wx.showModal({
title: '配網成功',
content: '設備IP:' + res.ip + '\r\n 設備Mac:' + res.bssid,
showCancel: false,
confirmText: '好的',
})
break;
case 2:
wx.showModal({
title: '配網失敗',
content: '請檢查密碼是否正確',
showCancel: false,
confirmText: '收到',
})
break;
default:
break;
}
})
//停止配網,建議在頁面 unload 等生命周期里面調用,釋放線程
airkiss.stopAirkiss()
四、API說明
airkiss.startAirkiss(ssid,password,funtion())
開始配置,需要入參路由器的SSID、密碼以及回調函數,出參說明見示例。
Note:請自行處理是否為2.4G頻段路由器,以及密碼是否正確。
airkiss.stopAirkiss()
停止配置,釋放配網線程的內存。
Note:建議在建議在頁面 unload 等生命周期里面調用。
airkiss.version
獲取版本
五、FAQ
Q1: 看樣子是加載一個配網插件,這個插件開源嗎?
Answer:考慮到部分版權問題,我把此做成了小程序插件,暫不開源,如需了解此插件更多使用資料,請到安信可小程序配網插件詳情頁:點擊訪問
Q2: 這個配網插件是微信官方適配的嗎?可商業嗎?
Answer:不是微信官方適配的,是本人適配的,現已上架小程序插件, 可商業用途。
六、本人開源微信物聯網控制一覽表
另外,不要把我的博客作為學習標准,我的只是筆記,難有疏忽之處,如果有,請指出來,也歡迎留言哈!
-
關注本人微信公眾號 “徐宏blog” 或掃描下方二維碼,發送 211125 獲取微信小程序airkiss的源碼!
-
玩轉無線物聯網帶你飛、免費加千人群討論,群里眾多國內ESP開發者,找到你一份歸屬,免費白嫖。
-
QQ討論一群,點擊加群:434878850
-
QQ討論二群,點擊加群:623325168
-
個人微信公眾號:徐宏blog , 不定時推送干貨文章,不推送任何廣告。
-
個人郵箱:xuhongv@yeah.net 24小時在線,有發必回復!
-
esp8266源代碼學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp8266
-
esp32源代碼學習匯總(持續更新,歡迎star):https://github.com/xuhongv/StudyInEsp32
-
關注下面微信公眾號二維碼,干貨多多,第一時間推送!