ESA2GJK1DH1K基礎篇: APP使用APUConfig配網綁定ESP8266,實現遠程溫濕度顯示和遠程控制繼電器


 

 

 

視頻講解


整體說明

這節演示一下使用APP配網綁定ESP8266然后和ESP8266實現遠程溫濕度采集和遠程控制繼電器
綁定方式:APUConfig
APUConfig是我自己取的名字,這種方式一開始是為了微信小程序配網綁定ESP8266而做
為了和微信小程序綁定方式做到統一,故我也用APP做了一款

測試功能

1.請按照第一節硬件介紹,下載單片機程序
<ignore_js_op>


2.安裝APP
<ignore_js_op>

3.請使用杜邦線連接如下:
PA3 -- TX
PA2 -- RX
<ignore_js_op>

<ignore_js_op>


<ignore_js_op>

<ignore_js_op>

4.當前撥動開關如下:
<ignore_js_op>

5.提醒
串口1在程序里面作為了日志打印輸出口
用戶可以打開串口調試助手觀察日志

<ignore_js_op>

<ignore_js_op>


測試

1.打開APP,點擊右上角菜單,選擇添加設備 "APUConfig"
<ignore_js_op>

2.手機連接自家的路由器,輸入自家路由器密碼
<ignore_js_op>

3.長按開發板上面的 pb5引腳大約3S

直至圖示上面的指示燈快閃

<ignore_js_op>


4.點擊 APP 綁定設備按鈕
開始綁定設備

<ignore_js_op>


<ignore_js_op>


5.綁定成功以后,自動跳轉到主頁面,並添加了一個設備
設備顯示的信息為ESP8266的MAC地址信息
<ignore_js_op>


6.點擊設備進入設備控制頁面
<ignore_js_op>

7.控制繼電器吸合
<ignore_js_op>

<ignore_js_op>

8.控制繼電器斷開

<ignore_js_op>

<ignore_js_op>
單片機程序

<ignore_js_op>

① 控制模塊以非阻塞方式連接MQTT服務器
② 配置ESP8266功能,當前只使用了里面的復位和APUConfig
③ MQTT消息處理封裝包

APP程序

<ignore_js_op>

① APUConfig 實現部分
② 操作手機數據庫相關
③ 控制頁面
④ MQTT通信封裝
⑤ UDP通信封裝
⑥ 掃描二維碼相關
⑦ 連接WI-Fi熱點包


單片機程序通信運行處理思路

程序使用串口2和ESP8266通信
串口1作為日志輸出口

串口1接收數據采用緩存管理+空閑中斷
串口1發送數據采用環形隊列+中斷發送

串口2接收數據采用緩存管理+空閑中斷
串口2發送數據采用中斷發送


串口1打印串口2接收的數據
判斷串口2接收的數據以后,直接把數據插入串口1環形隊列


<ignore_js_op>


串口1打印串口2發送的數據
在串口2調用發送數據的地方,把發送的數據插入串口1環形隊列
<ignore_js_op>


提示

設備發布的主題:device/ESP8266的MAC地址
設備訂閱的主題:user/ESP8266的MAC地址

如果是初學者,看后面的文章即可明白上面的意思!

配網綁定

APUConfig原理:
ESP8266模塊打開固定熱點,打開UDP通信
手機APP連接ESP8266模塊的熱點,然后通過UDP把路由器信息發給模塊.

1.單片機按鈕長按3S左右執行APUConfig

<ignore_js_op>

<ignore_js_op>


2.APP點擊按鈕以后,連接WI-Fi的熱點,並發送路由器信息
<ignore_js_op>


<ignore_js_op>

3.接收到模塊返回的MAC地址信息,攜帶着信息跳轉到主頁面

<ignore_js_op>



單片機通信控制

1.單片機執行 ConfigModuleNoBlock(); 連接MQTT服務器
<ignore_js_op>

提示:在執行獲取ESP8266的MAC地址以后,MAC地址存儲在 MQTTid 里面 XX:XX:XX:XX:XX:XX  (字符串形式)
在執行連接協議的時候,設置了發布的主題 device/XX:XX:XX:XX:XX:XX
<ignore_js_op>


2.連接上MQTT,訂閱主題
<ignore_js_op>

3.發布消息,
mqtt_publish(mqtt_t *mqtt,unsigned char* topic,unsigned char* date, int data_length, int qos, int retain, MqttCallback PublishedCb);

4.接收處理消息

<ignore_js_op>

5.提示
在執行完連接MQTT以后,后期所有的消息全部用緩存進行了管理
本MQTT包是本人封裝的,支持消息等級0,1,2處理,支持掉線重連.

APP通信控制

1.點擊相應的設備以后,把設備的MAC地址信息傳遞給控制頁面
<ignore_js_op>


2.啟動兩個定時器,訂閱主題和查詢設備繼電器狀態

<ignore_js_op>

<ignore_js_op>

<ignore_js_op>


3.發送數據
<ignore_js_op>

4.接收數據

<ignore_js_op>


5.提示
MQTT底層包內部使用的單例模式+回填函數形式
內部支持斷線重連,用戶只需要調用回調函數使用即可.


結語

這節只是大致概括下程序,為已經有基礎的人提供學習思路
如果沒有基礎,請按部就班的接着學習

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM