1 个不稳定版本
0.3.0 | 2019年4月9日 |
---|
#9 in #esp8266
12KB
163 行
espota-server
espota-server是一个HTTP服务器,可以存储用于通过ESP8266 Arduino固件烧录的固件。当你在现场有大量基于ESP8266的设备,并且希望它们下载自己的固件来更新自己,而不是你必须分别推送固件到每个设备时,它很有用。
espota-server与其他任何HTTP服务器的主要区别在于,只有当有可用的固件新版本时,它才向设备提供固件。如果没有新版本,它只响应“无新版本”,设备继续其正常工作。
安装
要安装espota-server,如果您已安装Rust,只需编译它,或者从夜间版本页面获取最新的编译二进制文件,并将其放置在您的PATH
上的某个位置。
工作原理
很简单,只需遵循以下步骤
- 请确保您的代码中使用了HTTP OTA库,固件URL类似于
http://myserver:36942/projectname
(其中projectname
是您的项目名称)。 - 在某个位置运行espota-server。
- 将名为
projectname-100.bin
的文件放入您运行服务器所在的目录。不一定是在服务器二进制文件所在的目录,只是您运行服务器的目录。例如,此文件应称为espota-100.bin
。 - 就是这样!当您的设备尝试更新其固件时,如果目录中存在相同版本或更高版本的文件,服务器将响应固件文件仅。例如,如果一个版本为8的设备请求更新,并且服务器上提供版本7到22,则服务器将响应版本22。当然,这意味着您只需在服务器上保留每个项目的单个文件即可。
NoFUSS协议
服务器实现了NoFUSS协议,因此您可以使用它来更新基于ESPurna的设备。要启用它,只需转到ESPurna中的NoFUSS部分,并输入服务器的地址,包含/nofuss路径
固件文件需要命名为 DEVICE_NAME-1.2.3.bin。例如,我的Sonoff Basic设备标识为ESPURNA-SONOFF_BASI,所以我的固件命名为 ESPURNA-SONOFF_BASI-1.13.2.bin
。如果固件更新失败,请确保您的文件命名正确,并将它们放入espota-server启动目录中。就是这样!
杂项
如果您有任何请求/评论/问题,请发送pull requests。这就是全部。
-- Stavros
依赖项
~9MB
~195K SLoC