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伺服器文件訪問路徑根據自己的修改