天天看點

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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進行遠端通信控制.

這一節作為闆子的整體功能測試,使用者下載下傳這一節的程式用來測試基本控制篇實作的基本功能

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

先睹為快

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

測試準備工作

1.請根據硬體使用說明下載下傳這節程式到單片機

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

2.單片機工程目錄

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

3.Hex檔案位置

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

5.安裝手機APP

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

6.手機APP安裝包位置

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

9.掃描成功以後将會在首頁面添加一個裝置

注:顯示的内容為模組的IMEI号

首頁面沒做美化哈.

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

10.點選顯示的裝置,進入裝置控制頁面

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

提示:

左上角傳回鍵旁邊顯示的是裝置的狀态,正常情況下應該顯示  "線上"

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

下載下傳完程式建議複位下;

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

如果還不可以,可以把序列槽1列印的日志發到售後支援群.

測試繼電器控制

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

測試溫濕度傳感器

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

2.手機APP也會顯示目前的溫濕度資料

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

測試光敏電阻

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

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

測試RGB

用手拖動,可以看到闆子上的燈随着拖動顔色的變化而變化

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

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

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

打開序列槽日志也可以看到相關的日志

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

測試485

1.使用USB轉485子產品連接配接開發闆

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

2.給485所在的序列槽号發送資訊,将會收到同樣的資訊

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

測試CAN總線

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

提示

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

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

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

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

後面的教程會一步一步的讓使用者知道所有的一切是怎麼做到的.

程式整體說明

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

協定規定:

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

3.單片機程式

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

①:控制子產品連接配接TCP伺服器(MQTT伺服器)

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

4.APP程式

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

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

單片機程式詳細說明

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

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

請使用者先學習完本人開源的 資料處理思想和程式架構裡面的以下内容

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

1.關于序列槽1

序列槽1作為日志列印,發送資料采用中斷+環形隊列,

在序列槽2和序列槽3發送和接收資料的地方把相應資料發給序列槽1列印出來.

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

2.注冊MQTT相關函數

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

3.控制模組連接配接MQTT伺服器

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

是以下面組合的釋出主題為:device/裝置的IMEI

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

是以下面組合的訂閱主題為:user/裝置的IMEI

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

6.釋出消息

在接收回調函數裡面傳回繼電器消息

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

7.細節說明-關于序列槽2接收資料的配置

序列槽2判斷空閑使用的定時器,原因是GSM序列槽發送的資料并不是那麼的标準,中間有斷斷續續的情況.

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

8.細節說明-序列槽2接收的資料送給配置函數和MQTT處理函數

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

9.細節說明-MQTT連接配接成功以後的發送的各種資料的地方

注:MQTT我使用了緩存管理封裝了下,所有的資料都存儲在了緩存裡面

後期移植使用的時候隻需要把發送TCP資料改一下就可以,後面章節有相應的移植教程.

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

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

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

APP程式詳細說明

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

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

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

3.掃碼成功攜帶着二維碼資訊跳轉到首頁面

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

4.BC26的二維碼資訊是  IMEI号;SN碼  需要隻提取IMEI 然後存儲到資料庫,并更新Listview

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

5.點選某一個裝置,攜帶着這個裝置的IMEI号跳轉到控制頁面

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

6.控制頁面擷取資料

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

7.訂閱主題,和輪訓查詢裝置資料

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

8.接收處理消息

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

9.釋出消息

2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武
2-STM32+BC26/260Y基本控制篇-整體運作測試-APP掃碼綁定BC26,并通過MQTT和BC26實作遠端通信控制 - 楊奉武

結語

對于初學者,感受一下遠端通信就可以.在後面的章節中将會詳細的學習到是怎麼做到的.