<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learn8266ForSDK" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
說明
這節使用微信小程序使用APUConfig配網綁定ESP8266,並通過MQTT實現遠程通信控制繼電器和查看設備溫濕度數據;
APUConfig是我自己做的一種方式, 為了便於使用微信小程序綁定WiFi模組而寫的;
注意
這節是連接的自建的物聯網平台,用戶可以按照下面的教程自行搭建;
https://www.cnblogs.com/yangfengwu/p/13208227.html
教程有Windows版和Linux版,下面的教程是用來做產品項目的
配置起來周期比較長,需要等2個星期才會審核完成!
對於學習開發者使用我提供的MQTT服務器地址信息測試就可以.
測試
1,打開源碼,打開下載軟件,添加上下載的bin文件
eagle.flash.bin 0x00000
eagle.irom0text.bin 0x10000
esp_init_data_default_v08.bin 0x3FC000
blank.bin 0x3FE000
注意:bin文件排列順序要按照下圖.
2,讓開發板進入下載模式
按下固件按鈕(一直按着) → 按下復位按鈕 → 松開復位按鈕 → 松開固件按鈕
3,點擊START下載
4,下載完成以后復位下
5,安裝微信小程序(使用開發工具打開以下工程)
注:如果沒有學習過小程序,請先學習微信小程序開源教程
6.點擊 預覽,使用微信掃碼以后安裝到手機
注:默認連接的我的服務器,mnif.cn,用戶可以在詳情里面選擇不校驗域名(不推薦,可能通信有問題)
推薦在微信小程序平台上設置域名白名單
點擊預覽,然后使用微信掃描安裝到手機
7.添加設備
8.添加WiFi設備
9.手機連接自家的路由器,輸入自家路由器密碼
提示:路由器名稱會自動顯示, 如果沒有自動顯示需要打開手機定位
10.長按開發板的固件引腳大約3S,等待指示燈快閃,之后松開按鈕
11.點擊 APP 綁定設備按鈕
綁定成功以后自動跳轉到主頁面,並添加了一個設備
12.點擊設備進入設備控制頁面
頁面顯示的為設備的溫濕度數據, 可以點擊按鈕控制開發板繼電器
整體說明
整個程序就是利用MQTT服務器實現微信小程序和設備之間通信.
微信小程序通過和設備配網綁定,讓設備連接上路由器.
通信過程中,APP也獲取到了設備的MAC地址信息.
設備連接上MQTT服務器以后,設備訂閱的主題是: user/設備的MAC地址 設備發布的主題是: device/設備的MAC地址
微信小程序獲取設備的MAC地址后,微信小程序發布的主題是: user/設備的MAC地址 微信小程序訂閱的主題是: device/設備的MAC地址
微信小程序和設備的發布和訂閱的主題相對應,APP和設備的消息發給MQTT服務器以后,MQTT服務器就為各自的消息互相轉發.
程序綁定過程
1.整體
綁定過程中WiFi模塊會發出固定無線信號(ssid:wifi_8266_bind; Password:11223344),
微信小程序連接WiFi模塊發出的無線信號,然后使用UDP和模組進行通信
微信小程序連接上wifi模塊的無線以后,不停的使用udp把路由器信息發給模組
模組接收到路由器信息以后把自身的MAC地址發給微信小程序
2,ESP8266的綁定程序封裝好了,用戶只需要調用即可
3.現在看下微信小程序的綁定程序,點擊添加設備菜單跳轉到添加設備頁面
4.點擊添加WiFi設備按鈕跳轉到綁定頁面
5.點擊綁定按鈕連接WiFi模塊的熱點,初始化UDP
注:用戶不用過於關心內部細致的流程,以后移植使用的時候知道大體就可以
6.連接上熱點以后允許UDP每隔1S發送路由器信息給WiFi模組
7,接收到模組返回的mac地址數據,攜帶着數據跳轉到index
8.index把接收的數據存儲起來
9.在onShow顯示數據
ESP8266 MQTT程序說明
1.初始化MQTT,並執行連接
2.檢測到MQTT斷開,發送任務通知, 在任務函數里面重新連接MQTT
提示:按照官方建議,為使程序穩定,所有的網絡通信操作函數盡量在任務中執行.
3.接收處理MQTT數據
4.發送MQTT數據
5.獲取串口接收的數據,並把串口接收的數據發送到MQTT
微信小程序 MQTT程序說明
1,關於mqtt的js包
paho-mqtt.js 官方底層包 mqtt.js本人再次封裝的mqtt包,用戶后期通信都是使用這個里面的api函數
用戶可以根據自己的mqtt服務器更改參數
2,連接mqtt只需要在一開始的時候調用下
MQTT.ConnectMqtt();//鏈接MQTT
然后內部就是自動連接.
3,點擊頁面上的設備,攜帶着設備的MAC地址信息跳轉到設備控制頁面
4,控制頁面在onLoad函數里面接收跳轉的數據,並在里面設置MQTT回調函數
5.在定時器里訂閱主題
6.在MQTT接收回調函數中接收處理數據
7.點擊按鈕發布繼電器控制命令