2-STM32+Air724UG基本控制篇(自建物聯網平台)-整體運行測試-Android掃碼綁定Air724,並通過MQTT和模組實現遠程通信控制


<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLAir724UGA/my.html" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

說明

這節測試一下Android和微信小程序掃碼綁定Air724,並通過MQTT和模組實現遠程通信控制

這一節作為板子的整體功能測試,用戶下載這一節的程序用來測試基本控制篇實現的基本功能

還有就是測試一下板子是否工作正常.

 

GPRS模塊和底板安裝說明

安裝到第三排排母!模塊的第一個VCC引腳和底板的5V引腳相連接

 

 

 

GPRS模塊手機卡和天線安裝說明

注意手機卡的缺角方向是朝里面

 

 

 

 

測試准備工作

1.請根據硬件使用說明下載這節程序到單片機

 

 

 

2.單片機工程目錄

 

 

 

3.Hex文件位置

 

 
提示,板子的usb串口可以打印日志

 

 

 

5.安裝手機APP

 

 

 

6.手機APP安裝包位置

 

7.點擊APP右上方的菜單欄,選擇 掃一掃

 

 

 

 

8.掃描模組上面的二維碼

 

 

 

 

 

9.掃描成功以后將會在主頁面添加一個設備

注:顯示的內容為模組的IMEI號

 

 

 

10.點擊顯示的設備,進入設備控制頁面

 

 

整體說明

整個程序就是利用MQTT服務器實現APP和設備之間通信.

APP通過掃碼獲取設備的IMEI號

 

設備連接上MQTT服務器以后,設備訂閱的主題是: user/設備的IMEI號   設備發布的主題是: device/設備的IMEI號

APP獲取設備的MAC地址后,APP發布的主題是: user/設備的IMEI號    APP訂閱的主題是: device/設備的IMEI號

APP和設備的發布和訂閱的主題相對應,APP和設備的消息發給MQTT服務器以后,MQTT服務器就為各自的消息互相轉發.

 

 

APP掃碼程序

1.APP掃碼程序使用的是Google 谷歌的zxing

 

2.點擊掃一掃進入掃描頁面

 

 

 

 

2.掃碼成功以后攜帶着數據跳轉到主頁

 

 

 

3.activity 接收數據並把信息存儲listview和數據庫

 

 

 

 

 

 

4.數據庫操作是使用的郭霖寫的litepel

 

 

 

 

程序MQTT通信過程

1.關於MQTT解析包

mqtt_msg 文件是最底層的mqtt協議封裝文件, 用戶不需要研究

mqtt 文件是在mqtt_msg之上封裝的一套文件,該文件內部處理了mqtt各種通信流程,用戶也是調用這里面的api函數.

具體使用可以接着往下看.

用戶始終記住:和mqtt服務器通信就是和tcp服務器通信.不過他們之間的通信數據需要按照mqtt協議規定.

 

 

 

2.配置所連接的MQTT服務器的參數

 

 

 

 

3.初始化MQTT變量,注冊相應的回調函數

我編寫的包是以注冊回調函數的形式使用.

 

 

 

 

 

4.先使用TCP連接上TCP服務器(MQTT服務器就是TCP服務器嘛)

控制連接服務器使用的是 ConfigModuleNoBlock 框架

注意哈連接上TCP以后設置為了透傳, 以后單片機串口發送的數據就會直接通過模組發到服務器

服務器接收的數據直接就通過串口發給了單片機

 

 

 

 

 

5.連接上TCP以后,發送連接MQTT協議

 

 

 

 

 

 

6.把服務器返回的數據交給mqtt_function_connect_ack 函數處理

如果返回的數據是連接成功,此函數便會調用上面注冊的連接成功回調函數

 

 

 

 

 

 

 

6.在連接成功回調函數中訂閱主題,發布消息

 

 

 

7.連接成功MQTT服務器以后解析MQTT數據是下面的函數

把數據交給這個函數,函數內部解析之后會調用相應的回調函數

 

 

 

 

 

8.接收處理MQTT消息

控制繼電器吸合  {"data":"switch","bit":"1","status":"1"}

控制繼電器斷開  {"data":"switch","bit":"1","status":"0"}

查詢繼電器狀態  {"data":"switch","bit":"1","status":"-1"}

 

9.發送溫濕度數據

 

 

 

 

 

 

 

10.提示

只要是連接上MQTT了,用戶只需要在任意地方調用訂閱主題和發布消息就可以.

用戶調用其api函數所打包的數據會存儲在mqtt內部緩存管理里面,然后內部自動把數據通過tcp發送出去.

緩存管理是使用的我編寫的 BufferManage

 

 

 

 

 

 

 

把打包好的MQTT協議數據提取出來並發送給服務器的地方

 

 

 

 

 

 

關於下面的 mymqtt.timer_out_send = mqtt_timerout_send_default; 這個是預防有的模塊發送數據之后需要等待,按照提示修改就可以

當前我設置的為20ms

 

 

 

 

12,如果發送的MQTT消息比較大,可在此處修改緩存管理大小

 

 

 

13.如果自己的MQTT數據包超過16383字節,則還需要修改底層

當前是使用兩字節保存數據個數

 

 

 

 

 

14.這里有mqtt包的使用流程,了解一下就可以,后面有詳細的移植教程

 

 

15,現在看APP端的程序

app使用的jar包為: org.eclipse.paho.client.mqttv3-1.2.0

MyMqttCLient是封裝的mqtt文件,用戶后期通信都是使用這個里面的api函數

用戶可以根據自己的mqtt服務器更改參數

 

 

 

 

15,連接mqtt只需要在一開始的時候調用下 

MyMqttClient.sharedCenter().setConnect();//連接MQTT

然后內部就是自動連接.

 

 

 

 

16,點擊APP頁面上的設備,攜帶着設備的MAC地址信息跳轉到設備控制頁面

 

 

 

17,控制頁面接收跳轉的數據

 

 

 

18.設置一些回調函數,啟動定時器訂閱主題

 

 

 

 

  

 

19.在handler中處理MQTT數據

 

 

 

20.點擊按鈕發布繼電器控制命令

 

 

結語

對於初學者,感受一下遠程通信就可以.在后面的章節中將會詳細的學習到是怎么做到的.

 


免責聲明!

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



猜您在找 401-STM32+Air724UG基本控制篇(阿里雲物聯網平台)-Android掃碼綁定Air724UG並通過阿里雲物聯網平台實現遠程通信控制 1-STM32+Air724UG基本控制篇(自建物聯網平台)-硬件使用說明 001-STM32+Air724UG基本控制篇(華為雲物聯網平台)--測試STM32+Air724UG(4G模組),Android,微信小程序等連接華為雲物聯網平台 2-HC32F460(華大)+Air724UG(4G GPRS)遠程升級篇(自建物聯網平台)-整體運行測試-HC32F460通過Air724UG(4G GPRS)使用http或https遠程下載升級單片機程序(單片機程序輪訓檢查更新) 03-STM32+Air724UG遠程升級篇OTA(自建物聯網平台)-STM32+Air724UG實現利用http/https遠程更新STM32程序(TCP指令,單片機程序檢查更新) 01-STM32+Air724UG遠程升級篇OTA(自建物聯網平台)-STM32如何實現的升級程序 04-STM32+Air724UG(4G模組)遠程升級篇OTA(自建物聯網平台)-STM32+Air724UG實現利用http或https遠程更新STM32程序(TCP指令,單片機程序檢查更新,精簡內存版) 30-STM32+Air724UG(4G模組)遠程升級篇OTA(自建物聯網平台)-升級擴展-STM32F407+Air724UG實現利用http或https遠程更新單片機程序(TCP模擬http指令,單片機程序檢查更新) 0-STM32+MN316(NB-IOT)基本控制篇(自建MQTT服務器)--整體運行測試-android掃碼綁定MN316(NB-IOT),並通過MQTT實現遠程通信控制 0-STM32F103+EC200(移遠4G Cat1)基本控制篇(自建MQTT服務器)--整體運行測試-Android掃碼綁定EC200,並通過MQTT實現遠程通信控制
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM