ESA2GJK1DH1K升級篇: STM32遠程乒乓升級,基於Wi-Fi模組(ESP8266)AT指令TCP透傳方式,MQTT通訊控制升級(加入數據校驗)
- 2019 年 12 月 24 日
- 筆記
前言
這節演示下,上兩節寫的利用MQTT來控制STM32控制的程式
測試準備工作(默認訪問我的伺服器,改為自己的伺服器,請看後面說明)
一,下載BootLoader程式(請自行下載)

首先BootLoader默認是先嘗試載入第一份用戶程式
後面咱分為兩種情況:
人為下載進去第一份APP用戶程式和不下載進去第一份APP用戶程式
第一種:人為下載進去第一份APP用戶程式
一,注:咱的目的是把相應的程式文件燒錄到相應的位置
為避免清除BootLoader程式,下載的時候按照下面的選擇
這樣在不清楚BootLoader程式的情況下,就把第一份用戶程式燒錄進了相應的位置

提示:
APP用戶程式裡面也是按下按鈕3S執行配網
只不過配網以後是連接MQTT伺服器

二,調整波動開關位置,STM32和Wi-Fi 串口 通訊

三,短接STM32的PB2和Wi-Fi模組的RST引腳(內部程式使用該引腳硬體複位Wi-Fi)

四,安裝這節使用的APP
注:這節APP其實就是前面的



五,綁定配網
5.1 打開手機APP,點擊右上角菜單 "添加設備" ,手動輸入自家路由器密碼.(路由器名稱為自動獲取,不需要用戶填寫)


5.2,長按PB5大約4S,等待指示燈快閃,鬆開PB5,Wi-Fi模組進入配網狀態

5.3,點擊APP的搜索設備按鈕,開始搜索設備,搜索成功,將自動跳轉到主頁面,並顯示設備


5.4,單片機控制Wi-Fi連接上MQTT伺服器以後,指示燈1S閃耀

5.5, 點擊設備進入,設備控制頁面,點擊最下面的檢查更新
點擊檢測更新的時候,其實就是APP首先通過MQTT詢問設備的型號和版本號
然後根據型號,用http訪問Web伺服器裡面的 updatainfo.txt 文件
如果判斷版本不一致,就提示更新

5.6 點擊確認

5.7 模組返回他要更新了

5.8 更新完成

5.9 如果再點擊更新

後面大家有了新程式以後,替換掉Web裡面的文件,然後改一下 updatainfo.txt 裡面的資訊就可以
第二種:只下載BootLoader
一,大家還記得咱在BootLoader裡面也是按鈕按下3S左右配網
不過配網以後是寫入更新標誌,重啟

二,有了更新標誌,再次啟動 BootLoader的時候就去下載程式文件了
下載完以後執行程式文件
其實就和上面的一樣了
應用到自己的伺服器
一,BootLoader裡面
1.1 TCP連接的Web伺服器的地址

1.2 請求的 updatainfo.txt 文件的路徑

1.3 請求的程式文件的路徑

二,APP用戶程式裡面
2.1 設備型號要和BootLoader裡面的保持一致

三, 修改APP
3.1 訪問的MQTT資訊

3.2,修改APP訪問的http資訊

四, Web伺服器文件訪問路徑根據自己的修改
