基於 arduino開發的esp8266 通過阿里雲實現固件升級


簡介:

  既然是固件升級那么要求我們必須要每個固件指定一個版本,當然這個東西還不能只有你自己知道,你還要將這個版本信息通過 發布PUB 的方式讓別人知道;然后再說說更新這回事,其實就是阿里雲那邊為你准備一個固件的下載鏈接,你要做的就是通過他所指定的方法獲取該固件的URL,再通過你系統只帶的 HttpUpdate 的方式,進行升級就可以了,這時候要注意的就是版本號咯,版本號也是要跟着改變的撒。

 

代碼實現:

第一步:指定版本號,及 device/inform 這個 Topic

#define ALINK_OTA_BODY_FORMAT     "{\"id\":\"123\",\"params\":{\"version\": \"1.0.1\"}}"
#define ALINK_OTA_TOPIC_PROP_POST "/ota/device/inform/" PRODUCT_KEY "/" DEVICE_NAME

第二步:在之前的心跳位置,加入上報版本的信息

boolean ota = client.publish(ALINK_OTA_TOPIC_PROP_POST, ALINK_OTA_BODY_FORMAT);

第三步:訂閱升級先關的 Topic,否則收不到系統下發的升級信息

#define ALINK_TOPIC_OTA_UPGRADE "/ota/device/upgrade/" PRODUCT_KEY "/" DEVICE_NAME

client.subscribe(ALINK_TOPIC_OTA_UPGRADE);  /* 訂閱升級操作的 Topic 這個寫在 setup 函數中就可以 */

第四步:接收更新信息,並升級固件

// 接收到固件更新相關的 Topic 的時候進行相關的操作
WiFiClient client;
update_url.replace("https://", "http://"); /* 簡化操作,替換成 HTTP 協議 */
t_httpUpdate_return ret = ESPhttpUpdate.update(client, update_url);

 

參考資料設備端

參考資料控制台


免責聲明!

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



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM