如何配置ESP32 Web flash,允許設置任何字符串變量
你可以在Github頁面上自己嘗試一下。向?qū)?簡單的UI,一步一步解釋)和高級(更多的調(diào)試和信息)
在市場上制作基于ESP32的產(chǎn)品(或基本上任何嵌入式產(chǎn)品)都面臨一些挑戰(zhàn)。一個是讓最終用戶將其配置到他們的wifi,他們的環(huán)境另一個問題是,你希望用戶能夠在需要修復bug或添加功能時更新它。
當你在制作一款大規(guī)模生產(chǎn)的產(chǎn)品(100,000 +)時,你的公司當然應該有足夠的資金和時間去制作一個用于更新和配置的應用程序,允許usb驅(qū)動器更新作為備份,并允許使用第三方應用程序(例如谷歌Home)來配置設備。但很多ESP32創(chuàng)業(yè)公司都處于中間地帶,他們可能會生產(chǎn)數(shù)萬種到數(shù)千種產(chǎn)品。即使只是“原型”較小的數(shù)字,給你的客戶/客戶一個快速更新它的方法是很好的,而不必安裝vs code, platformio, arduino或下載和安裝包;這在他們“公司保護”的筆記本電腦上甚至是不可能的。
webserial協(xié)議得到了一些關(guān)注;這是esptools-js;pressif微控制器的“avrdude”(Arduino flash)將被移植到javascript。
使用這個系統(tǒng)的好處是,您可以擁有如下代碼:
這導致以\0字符結(jié)尾的字符串有很大的“區(qū)域”,這很好,因為這使得字符串的長度也是可變的。\0終止符也是一種眾所周知的結(jié)束字符串的方式,因此大多數(shù)庫都支持它。
你只需要配置一個JSON對象來捕獲和替換這些字符串;UI將被正確的變量填充;javascript將‘CTRL-F’并替換變量添加\0,直到它覆蓋相同的空間/字節(jié)。然后根據(jù)固件映像格式替換校驗和和SHA256以匹配新的二進制內(nèi)容。
下面是如何在UI中顯示的;這些值存儲在localstorage中;因此,它們應該基于‘firmware_name’進行持久化,以防您稍后想要重新刷新。
本文編譯自hackster.io





