STM32+ESP8266+AIR202基本控制篇-212-功能測試-微信小程序掃碼綁定Air202(GPRS),並通過MQTT和Air202(GPRS)實現遠程通信控制(兼容SIM800)


 

 

 

 整體說明

這節演示一下使用微信小程序掃碼綁定GPRS,然后通過MQTT服務器實現遠程溫濕度采集和遠程控制繼電器
程序兼容SIM800

 


測試功能

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

2.安裝微信小程序
微信小程序已經發布,用戶可使用微信掃描安裝

 

 






如果有微信小程序經驗,可源碼安裝

 

 



3.請使用杜邦線連接如下:
白線 A3 --- TX
黑線 A2 --- RX

 

 

 

 

 

 












4.當前撥動開關如下:

 

 



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

 

 

 

 






測試

1.打開微信小程序,添加設備

 

 

 

 

 

 


2.掃描成功以后,自動跳轉到主頁面,並添加了一個設備
設備顯示的信息為GPRS的IMEI

 

 




3.控制繼電器吸合

 

 

 

 





4.控制繼電器斷開

 

 

 

 





單片機程序

1.如果用戶搭建好了MQTT服務器,可以修改下面的參數連接自己的服務器

注:假設服務器的IP地址是 47.92.31.46,則unsigned char IP[55]="47.92.31.46";

ClientID默認使用芯片的唯一碼,用戶不需要填寫.

 

 

2.程序主要概況


 

 



① 控制模塊以非阻塞方式連接MQTT服務器
② MQTT消息處理封裝包

微信小程序

1.如果用戶搭建好了MQTT服務器,可以修改下面的參數連接自己的服務器

 

 

建議在微信小程序平台上設置合法域名(推薦)

 

 

 

 

 

 

注意:wss://自己的域名

 

 

如果不設置合法域名,想盡快的測試,也可以設置軟件不校驗域名

 

 

 

 

2.微信小程序整理概況

 

 




① APUConfig 程序
② 控制頁面
③ 主頁
④ 本人封裝的mqtt包
⑤ mqtt底層包


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

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

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

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


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

 

 




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

 

 




提示

設備發布的主題:device/GPRS的IMEI號(模塊二維碼信息)
設備訂閱的主題:user/GPRS的IMEI號(模塊二維碼信息)

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

微信小程序掃碼綁定

 

 



掃碼得到IMEI號以后攜帶着信息跳轉到主頁面.

單片機通信控制

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

 

 



提示:在執行獲取GPRS的IMEI以后,IMEI存儲在 MQTTid 里面 XXXXXXXXXXXXXXX  (字符串形式)
在執行連接協議的時候,設置了發布的主題 device/XXXXXXXXXXXXXXX

 

 




2.連接上MQTT,訂閱主題

 

 



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

4.接收處理消息

 

 



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

微信小程序通信控制

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

 

 




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

 

 




3.發送數據

 

 



4.接收數據

 

 




5.提示
MQTT底層包封裝了回調函數
內部支持斷線重連,用戶只需要調用回調函數使用即可.

結語

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

 


免責聲明!

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



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