Samovar 7.00: 支持通过 Arduino IDE 更新。另一种同样可行的方式是运行新版本的配置器并点击“烧录”(«Прошить»);LittleFS 用单独的“上传 LittleFS”(«Загрузить LittleFS»)按钮上传,它会替换网页界面文件(LittleFS 中的用户文件可能因此丢失)。配置器把您的设置值保存在草图旁边的 user_config_override.h 文件中——把它复制到新版本的目录,设置就会保留。也可以通过 Wi-Fi 烧录:如果在“网络”(«Сеть»)部分启用了“允许通过 Wi-Fi 更新”(«Разрешить обновление по Wi-Fi»)(USE_UPDATE_OTA),“刷新”(«Обновить»)按钮会在网络中找到 Samovar。
随着新版本的发布,就需要更新。新版本可能附带新的或修改过的 库和工具。因此,为避免出错,建议每次都使用具体版本归档 中附带的库和工具。
注意!重要!
从 6.0 版开始,只要 Samovar 连接了互联网, 界面就会自动更新为与该草图版本对应的版本;也就是说,如果需要回退到旧版草图,界面也会回退到相应版本。如果没有互联网连接,界面需要自己在本地安装。
更新草图
在
首次上传草图一节中,我们在 ...Documents\Arduino 中建立了一定的文件和目录结构。下面在原有结构的基础上继续。
按以下顺序整理 ... Documents\Arduino\ 目录:
-
把 libraries 和 tools 目录拖动(或剪切粘贴) 到 Samovar 目录中。
-
把 Samovar 目录移到一个空的 Samovar-7.00 目录中。
-
把 Samovar-7.00 目录移到 OLD 目录中。
-
把装有原版草图的 Samovar-7.00.zip 归档移到 OLD 目录中。
这样 ... Documents\Arduino\ 目录中只剩下 OLD 目录。
OLD 里面则有:Samovar-7.00 归档,以及包含 Samovar 子目录的 Samovar-7.00 目录。
这种存放方式可以避免更新时出错,便于新版本沿用以前的设置,必要时还能快速回退到上一个或更早的 版本。
接下来按首次安装时的步骤进行:把新版本“解压”到 ... Documents\Arduino\ 中,直到得到原来的
目录结构。相应地,归档和从归档中解出的目录名称中会带有新的版本号。
但现在不要马上把草图上传到 ESP;先在 Samovar_ini.h 文件中完成必要的设置。有两种方法:
1. 正确的方法。
为方便起见,需要使用专门的程序,它能比较两个不同的文件,直观地显示它们之间的差异。
推荐使用
WinMerge——(
Windows 下的比较与合并工具,既能比较文件也能比较文件夹,以直观的文本形式显示差异 。 该程序简单易用,并有俄文界面。)
或者使用功能更强、但也更难掌握的 程序
Notepad++,并安装
Compare 插件。
以下以 WinMerge 程序为例。
比较时需要选择两个不同的 Samovar_ini.h 文件
先选择 OLD 目录中的文件,我们刚把上一版 Samovar 移到那里。它位于:... \Documents\Arduino\OLD\Samovar-7.00\Samovar\
第二个文件取自新版 Samovar 的目录。它位于 ... \Documents\Arduino\Samovar\
程序会比较两个文件,并高亮显示有差异的行。
差异会以较浅的颜色高亮显示。可以手动编辑右侧的数值,也可以把光标放在左侧,执行命令“复制到右侧”(«Копировать направо»)。
这样逐行把设置文件调整为适合您的设备。全部修改完成后,点击“保存”图标
关键是不要搞混:左边是旧的设置文件,右边是 Samovar 将要使用的文件。
2. 快速的方法
通过 Arduino IDE 更新时,比较新旧两个版本的 Samovar_ini.h,只把自己的设置值搬过去。不要用旧的 Samovar_ini.h 覆盖新的:即使是小版本也可能包含新的必需参数。
如果新版本带来了 Samovar 的新功能,必须编辑 Samovar_ini.h 文件,否则新功能将不可用,Samovar 也无法正常工作。
如果设置是在配置器中完成的,则不需要编辑 Samovar_ini.h:您的设置值保存在 user_config_override.h 中,它会覆盖 Samovar_ini.h。只需把这个文件搬到新版本中即可。
设置完成。可以把草图上传到 ESP。由于这是对已安装草图的更新,不必重新设置 Wi-Fi 连接,
也不需要加载默认设置。
更新时,可以不再把 ESP 连接到 USB 口,而是
“无线” 更新固件
“回退”到旧版本。
新版本中有些地方您不满意,或者工作不正常,想回到以前的版本。采用这种旧版本存放方式,回退非常简单。
像更新时那样整理 ... \Documents\Arduino 目录:
-
把 libraries 和 tools 目录拖动(或剪切粘贴) 到 Samovar 目录中。
-
把 Samovar 目录移到一个空的 Samovar-7.00 目录中。
-
把 Samovar-7.00 目录移到 OLD 目录中
-
把装有原版草图的 Samovar-7.00.zip 归档移到 OLD 目录中
然后:
-
进入 OLD 目录,选择以前的版本,进入其中的 Samovar 目录:... \Documents\Arduino\OLD\Samovar-6.16\
-
把整个 Samovar 目录 复制(建议复制而不是拖动)到 ... \Documents\Arduino\ 中
从 Samovar 目录中把 libraries 和 tools 两个目录拖动(或剪切粘贴) 到上一级,即 ... \Documents\Arduino\ 中。
就这样。可以把草图上传到 ESP 了。
以后更新到新版本时,只需清空 ... \Documents\Arduino 目录,删除 Samovar、libraries 和 tools。不必把它们移到 OLD,因为它们已经在那里,我们用的是副本。
更新草图时已经可以 使用 Arduino IDE 2.x.x 版本。但这些版本没有 “ESP32 LittleFS Data Upload”菜单项,没有插件就无法在本地更新界面。因此,如果 Samovar 无法访问互联网,网页界面将不会更新。
补充。在 Arduino IDE 2.x.x 版本中,已经可以通过插件在本地安装界面。说明见这里。插件(arduino-littlefs-upload-1.1.7.vsix)在 Samovar 归档的 tools\ESP32LittleFS_Arduino IDE 2.X 目录中,见首次上传草图。
可以在电脑上同时安装多个 Arduino IDE 2.x.x 和 Arduino IDE 1.x.x 版本,它们互不影响。 因此可以继续把 Arduino IDE 2.x 作为主要 IDE,只在需要把 LittleFS 文件系统(包括界面)本地上传到 ESP32 时才使用 Arduino IDE 1.x。
使用不同版本的 Arduino IDE 时,需要把它们安装到不同的目录中。为此只需在目录名中加上版本号。
例如。
C:\Program Files(x86)\Arduino1_1_18;
C:\Program Files\Arduino IDE_2_3_2;
C:\Program Files\Arduino IDE_2_3_1
这样就可以在每个版本的 Arduino IDE 中使用不同版本的 Espressif Systems ESP32 SDK。
但要注意,您使用的每个 Arduino IDE 版本,都需要单独为 ESP32 进行配置。
注意!
如果使用 3.0.0 或更高 版本的 ESP32 扩展 “ESP32 by Espressif Systems”,固件会自行禁用 Wi-Fi(OTA)更新:USE_UPDATE_OTA 参数在此内核中不起作用,只能通过 USB 上传。此外,还需要更改所用的开发板类型并选择正确的分区。3.x 内核中没有 Samovar 分区表,需要手动添加(说明在 Samovar.ino 文件开头):
把草图目录中的 partitions\samovar.csv 文件复制到 ...\Arduino15\packages\esp32\hardware\esp32\3.x.x\tools\partitions\(在 Windows 上,Arduino15 目录位于 C:\Users\<name>\AppData\Local\);
在 ...\esp32\3.x.x\boards.txt 文件中添加三行:
esp32.menu.PartitionScheme.samovar=Samovar
esp32.menu.PartitionScheme.samovar.build.partitions=samovar
esp32.menu.PartitionScheme.samovar.upload.maximum_size=1507328
重启 Arduino IDE,选择“Tools”→“Partition Scheme”→“Samovar”。
PlatformIO 配置器使用 2.0.17 内核和同一个分区表(partitions/samovar.csv);无需添加任何内容。
问题与解答。FAQ
我到处都找不到如何“无线”更新固件。请指点……第一次无论如何都需要通过数据线 烧录,并把 Samovar 连接到您的 Wi-Fi 网络。Samovar_ini.h 中必须启用 USE_UPDATE_OTA 参数(默认启用;在配置器中为“允许通过 Wi-Fi 更新”(«Разрешить обновление по Wi-Fi»)),ESP32 内核为 2.0.17。
重启 Samovar 并重新启动 Arduino IDE。之后,Samovar 的 IP 地址会出现在 Arduino IDE 的网络端口 中(名为 samovar 的网络端口)。
选择该 IP 地址代替 USB(COM)端口,更新就会以无线方式进行。
以后, 如果用 USB 线把 Samovar 连接到电脑,端口中会有两个选项:“无线”更新或通过 COM 端口更新。选择哪个通道,草图就通过哪个通道发送。
配置器的工作方式相同:点击“刷新”(«Обновить»),端口列表中会同时出现 COM 端口和在网络中找到的 Samovar;选择网络端口后点击“烧录”(«Прошить»)。“上传 LittleFS”(«Загрузить LittleFS»)按钮同样可以通过网络使用。