2-STM32F103+EC200(移遠4G Cat1)遠程升級篇(自建物聯網平台)-STM32通過EC200使用http或https下載程序文件升級程序(APP通過MQTT控制單片機更新)


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

 

說明

前面章節是單片機主動訪問升級,這節使用Android軟件控制更新單片機程序!

注意哈,只是在原先的基礎上讓APP把固件地址發給設備,而不是設備主動獲取了;

其實就是遠程升級和MQTT的結合;

 

整體升級流程如下:(APP和設備通過MQTT通信)

1,用戶在APP上點擊 "固件升級" 按鈕, APP使用MQTT發送:  {"data":"updata","cmd":"DeviceInfo"} //詢問設備固件信息

2,設備通過MQTT收到該消息以后,發送 {"data":"updata","cmd":"DeviceInfo","DeviceModel":"STM32EC200BKAPP","FirmwareVersion":"0.0.0"}

(STM32EC200BKAPP是設備的型號;  0.0.0是設備當前的固件版本)

 

3,APP收到以上消息以后,根據設備型號使用http請求雲端記錄的固件信息文件(info.txt)

提示:info.txt 存放的位置都會固定的哈;    http://ota/hardware/設備型號/info.txt

 

 

 

4,APP把info.txt里面的固件版本和設備當前的進行對比, 如果不一致, 彈窗提示

對話框里面寫的更新內容是 info.txt里面的  -----------"info":"1.解決了部分BUG 2.優化了部分程序"    

用戶點擊確認以后就把info.txt里面的固件版本和下載地址發送給設備

{"data":"updata","cmd":"start","version":"0.0.1","url":"http://mnif.cn/ota/hardware/STM32EC200BK/user_crc.bin"}

 

5,設備收到更新的命令以后,存儲起來url, 並給APP發送開始升級  {"data":"updata","cmd":"start"}   ,然后開始重啟升級

 

6,APP收到 {"data":"updata","cmd":"start"}  以后, 彈窗提示設備正在升級,

同時開始每隔1S通過MQTT發送查詢設備版本指令   {"data":"updata","cmd":"version"} 

 

 

7,設備升級完了以后, 正常運行,設備就會通過MQTT收到APP的查詢指令, 然后把當前的設備固件版本發送給APP

{"data":"updata","cmd":"version","FirmwareVersion":"0.0.1"}

 

8,最后APP提示升級完成

 

 

 

 

開始測試

1,GPRS模塊和底板安裝說明

單片機通過串口2和GPRS模塊通信;  單片機PA8引腳作為復位模組使用

(單片機)PA2  ----   (EC200)RX;

(單片機)PA3  ----   (EC200)TX;

(單片機)PA8  ----   (EC200)RST

 

2.使用下載器下載BootLoader程序

 

 

 

 

使用單片機串口1打印串口日志(115200)

 

 

 

 

2.下載用戶程序到開發板

 

 

 

 

3.顯示連接上MQTT服務器說明正確執行

 

 

4.安裝APP

 

 

6.手機APP安裝包位置

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

 

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

 

 

 

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

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

 

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

 

11.點擊右上角菜單,選擇固件升級

 

 

12.點擊確認

 

 

 

 

13,更新完成之后

 

 

14,再次點擊菜單的固件升級會提示

 

 

應用到自己的服務器

1,打開用戶程序(mcu_project)的tcp_mqtt.c文件, 修改為自己的MQTT服務器

 

 

2,確定好程序文件在服務器的路徑

關於本人服務器文件夾解釋:(自己隨意就好,最后的文件夾命名使用產品的型號)

html:網站根目錄

ota: ota升級

hardware : 硬件程序

STM32EC200BK: 作為產品的型號(根據自己的產品型號修改)

 

 

 

我把固件放到了里面那么固件程序下載地址為:

http://服務器IP地址/ota/hardware/STM32EC200BK/user_crc.bin

 

那么固件信息的下載地址為:

http://服務器IP地址/ota/hardware/STM32EC200BK/info.txt

 

 

3.修改  用戶程序(mcu_project)  的IAP.C文件

提示:我把它們存儲在程序bin文件的1024字節倍數的位置是為了BootLoader下載的時候便於提取這些數據;

1.產品型號(我設置的為STM32EC200BK)

2.修改固件程序版本(可隨意指定,我設置的為0.0.2)

3.修改記錄雲端固件信息文件下載地址(我的為:http://mnif.cn/ota/hardware/STM32EC200BK/info.txt)

 

 

4.修改BootLoader程序 的 IAP.c (設置下產品型號和默認的固件程序下載地址)

注意:BootLoader里面的產品型號要和用戶里面的一樣!!!!

BootLoader程序下載的時候會判斷這個型號一不一致

 

5.編譯用戶程序(mcu_project)

會在工程目錄的bin文件夾生成 user.bin文件

 

 

6.打開OTA Tools上位機軟件

 

 

7.按照紅框選擇配置

 

 

9.選擇用戶程序生成的 bin文件

 

10.點擊 生成固件

 

 

 

11.將在user.bin目錄生成user_crc.bin文件

 

 

12.把生成的user_crc.bin文件拷貝到服務器

 

 

13.還差一個info.txt文件

我准備了一個模板

 

 

14.修改版本號(和用戶程序里面設置的一樣)

 

 

16.修改固件程序下載地址(和服務器上面的保持一致)

 

 

 

17.最后的提示信息是APP控制升級時提示的信息,可以自己修改

 

 

18.把info.txt文件也拷貝到服務器

 

19.使用android studio 打開 android工程(英文目錄才可以打開)

 

 

20.修改自己的MQTT服務器

 

 

 

21.根據自己的web服務器修改(這個地方是獲取服務器上面的 info.txt文件)

 

 

 

22.全部修改完成以后,重新下載單片機程序, 重新安裝APP,按照前面的測試步驟測試即可

注意哈:用戶程序修改個和服務器上不一樣的版本哈.

 

 

 

 

升級流程說明

1,APP上點擊固件升級按鈕

 

 

2,單片機收到以后回復

 

 

3,APP收到回復以后根據設備型號獲取雲端固件信息文件

 

 

 

 

 

 

用戶點擊是, 發送升級命令給設備

 

 

4,單片機收到以后,存儲升級地址, 回復給APP, 然后寫入升級標志,重啟

單片機程序其實和咱前面的一樣,只不過不是自己主動獲取的升級地址

 

 

重啟之后就在BootLoader里面升級哈,和前面的一樣,就不多說了

 

 

 

5,APP收到設備開始升級

 

 

 

 

 

6,單片機升級完成以后,收到APP的詢問固件版本命令, 回復固件版本給APP

 

 

7,APP收到固件版本,和之前記錄的雲端固件版本作對比. 一樣就提示升級成功

 


免責聲明!

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



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