如何配置ESP32 Web flash,允许设置任何字符串变量
扫描二维码
随时随地手机看文章
你可以在Github页面上自己尝试一下。向导(简单的UI,一步一步解释)和高级(更多的调试和信息)
在市场上制作基于ESP32的产品(或基本上任何嵌入式产品)都面临一些挑战。一个是让最终用户将其配置到他们的wifi,他们的环境另一个问题是,你希望用户能够在需要修复bug或添加功能时更新它。
当你在制作一款大规模生产的产品(100,000 +)时,你的公司当然应该有足够的资金和时间去制作一个用于更新和配置的应用程序,允许usb驱动器更新作为备份,并允许使用第三方应用程序(例如谷歌Home)来配置设备。但很多ESP32创业公司都处于中间地带,他们可能会生产数万种到数千种产品。即使只是“原型”较小的数字,给你的客户/客户一个快速更新它的方法是很好的,而不必安装vs code, platformio, arduino或下载和安装包;这在他们“公司保护”的笔记本电脑上甚至是不可能的。
webserial协议得到了一些关注;这是esptools-js;pressif微控制器的“avrdude”(Arduino flash)将被移植到javascript。
使用这个系统的好处是,您可以拥有如下代码:
这导致以\0字符结尾的字符串有很大的“区域”,这很好,因为这使得字符串的长度也是可变的。\0终止符也是一种众所周知的结束字符串的方式,因此大多数库都支持它。
你只需要配置一个JSON对象来捕获和替换这些字符串;UI将被正确的变量填充;javascript将‘CTRL-F’并替换变量添加\0,直到它覆盖相同的空间/字节。然后根据固件映像格式替换校验和和SHA256以匹配新的二进制内容。
下面是如何在UI中显示的;这些值存储在localstorage中;因此,它们应该基于‘firmware_name’进行持久化,以防您稍后想要重新刷新。
本文编译自hackster.io





