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實作遠端通信控制 - 楊奉武 結語
對于初學者,感受一下遠端通信就可以.在後面的章節中将會詳細的學習到是怎麼做到的.