2-STM32+BC26/260Y基本控制篇-整體運行測試-APP掃碼綁定BC26,並通過MQTT和BC26實現遠程通信控制


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

 

說明

這節測試一下APP掃碼綁定BC26模組然后實現APP和開發板之間通過MQTT進行遠程通信控制.

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

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

先睹為快

 

 

 

 

測試准備工作

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

 

 

 

2.單片機工程目錄

 

 

 

3.Hex文件位置

 

 

 

 

4.別忘了安裝好手機卡和天線

 

5.安裝手機APP

 

 

 

6.手機APP安裝包位置

 

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

 

 

 

 

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

 

 

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

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

主頁面沒做美化哈.

 

 

 

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

 

 

提示:

左上角返回鍵旁邊顯示的是設備的狀態,正常情況下應該顯示  "在線"

如果顯示 "離線",說明硬件沒有正常工作.

下載完程序建議復位下;

活動一下手機卡和天線,可能接觸不良;

如果還不可以,可以把串口1打印的日志發到售后支持群.

 

測試繼電器控制

1.點擊右上角的開關控制繼電器

 

 

2.動作一下開發板上面的 PB5按鍵,繼電器會翻轉

 

 

 

 

測試溫濕度傳感器

1.正常情況下OLED會顯示當前的溫濕度數據(也可以驗證OLED是否工作正常)

 

2.手機APP也會顯示當前的溫濕度數據

注:可以給溫濕度吹吹氣,改變一下溫濕度.

 

 

測試光敏電阻

注:APP中間那個顯示的是光敏電阻的值

這個不是真的光照強度!我只是采集了電壓,然后乘了數然后顯示而已!

 

 

 

可以用手蓋住傳感器看下采集的數是否變化.

 

 

測試RGB

用手拖動,可以看到板子上的燈隨着拖動顏色的變化而變化

 

 

下面的是 HSV方式,雖然做上了,但是不知道是不是這樣做

 

 

測試蜂鳴器和熱釋紅外傳感器

1.在程序一運行,會吸合一下繼電器,同時蜂鳴器也會 滴 一聲.

2.程序上是熱釋紅外傳感器只要被觸發就會聽到蜂鳴器滴一聲.

打開串口日志也可以看到相關的日志

 

 

 

 

 

 

測試485

1.使用USB轉485模塊連接開發板

 

 

 

2.給485所在的串口號發送信息,將會收到同樣的信息

 

 

 

 

測試CAN總線

程序寫了一個回環測試,可以在日志上面看到CAN測試結果

 

 

提示

后面是介紹整個程序,如果是初學者大概看一下就可以.

寫后面的目的是給已經有基礎的了解一下整個程序執行步驟.

便於迅速的實際應用到項目中.

對於初學者按部就班的一節一節的學習就可以.

后面的教程會一步一步的讓用戶知道所有的一切是怎么做到的.

 

 

程序整體說明

1.首先我說一下Android 的UI頁面下載鏈接

RGB調色UI源碼鏈接

https://blog.csdn.net/caobin_study/article/details/81627102

 

溫濕度,光照強度UI

https://blog.csdn.net/hehehaha1123/article/details/60574431

 

 

2.提示

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

設備連接上MQTT以后

訂閱的主題是: user/設備的IMEI  發布的主題: device/設備的IMEI

 

APP掃碼得到設備的IMEI

發布的主題是: user/設備的IMEI  訂閱的主題是: device/設備的IMEI

 

協議規定:

 

 

 

3.單片機程序

 

 

 

①:控制模塊連接TCP服務器(MQTT服務器)

②:MQTT消息處理封裝包(緩存管理,支持消息等級0,1,2)

 

4.APP程序

 

 

 

紅色是Google的二維碼相關的jar包和程序

綠色的是MQTT相關的jar包和程序

 

 

單片機程序詳細說明

為保證程序的執行效率和穩定性,單片機程序使用了環形隊列,緩存管理.

AT指令非阻塞模式配置模組,Flash提高使用壽命等方案.

請用戶先學習完本人開源的 數據處理思想和程序架構里面的以下內容

 

 

 

 

1.關於串口1

串口1作為日志打印,發送數據采用中斷+環形隊列,

在串口2和串口3發送和接收數據的地方把相應數據發給串口1打印出來.

 

 

 

 

 

 

 

 

 

 

2.注冊MQTT相關函數

 

 

 

 

3.控制模組連接MQTT服務器

 

 

 

 

 

 

提示:先前獲取的IMEI就存儲在 MQTTid這個數組里面.

所以下面組合的發布主題為:device/設備的IMEI

 

 

 

 

4.連接成功調用注冊的連接回調函數(在回調函數里面發送訂閱主題的協議)

 

 

 

提示:先前獲取的IMEI就存儲在 MQTTid這個數組里面.

所以下面組合的訂閱主題為:user/設備的IMEI

 

 

 

 

5.在注冊的接收回調函數中處理接收的消息

 

 

 

 

6.發布消息

在接收回調函數里面返回繼電器消息

 

 

 

每隔一段時間上報溫濕度,光照強度消息

 

 

 

如果繼電器狀態改變,上報繼電器狀態

 

 

7.細節說明-關於串口2接收數據的配置

串口2判斷空閑使用的定時器,原因是GSM串口發送的數據並不是那么的標准,中間有斷斷續續的情況.

用自帶的空閑中斷檢測會把一條數據判斷成多條存儲在緩存中.所以用定時器加長了空閑時間判斷.

 

 

 

 

 

 

8.細節說明-串口2接收的數據送給配置函數和MQTT處理函數

注:如果已經建立了TCP通信,找到真實數據的位置,把真實數據送給配置函數或MQTT處理函數

 

 

 

 

9.細節說明-MQTT連接成功以后的發送的各種數據的地方

注:MQTT我使用了緩存管理封裝了下,所有的數據都存儲在了緩存里面

后期移植使用的時候只需要把發送TCP數據改一下就可以,后面章節有相應的移植教程.

 

 

 

 

 

 

 

10.細節說明-RGB控制的參數會實時記錄在Flash里面

注:每次啟動會直接顯示以前的燈的狀態,為提高Flash使用壽命,存儲方式采用我封裝的 flash_helper.

當然也可以不用實時刷新存儲,也可以把 FlashHelperUpdate(); 放到掉電中斷和跌機中斷里面執行.

 

 

 

 

 

APP程序詳細說明

1.MyMqttClient 是封裝的MQTT相關的函數

 

 

 

2.點擊右上角菜單 啟動掃碼

 

 

 

3.掃碼成功攜帶着二維碼信息跳轉到主頁面

 

 

 

4.BC26的二維碼信息是  IMEI號;SN碼  需要只提取IMEI 然后存儲到數據庫,並更新Listview

 

 

5.點擊某一個設備,攜帶着這個設備的IMEI號跳轉到控制頁面

 

 

6.控制頁面獲取數據

 

 

 

7.訂閱主題,和輪訓查詢設備數據

 

 

 

 

 

 

 

 

8.接收處理消息

 

 

 

 

 

9.發布消息

 

 

 

 

 

 

 

 

結語

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

 


免責聲明!

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



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