使用乐山服务器的OMA固件更新:文件保存在哪里?

OMA firmware update using Leshan server: Where to save the files?

我对物联网(协议)的世界还很陌生。我想远程更新一些设备(它们将安装在离我工作地点约 8000 公里的地方)。我发现 LWM2M 适合我的范围。

因为那里的网络连接不稳定,带宽也低,所以我决定也安装一个Raspberry Pi来收集传感器的数据,并安装一个乐山服务器来触发更新。

我已经测试了设备,我可以将它们注册到Pi上的乐山服务器,读取一些数据,然后重新启动设备。问题是,我不知道在哪里保存更新的二进制文件,以便设备可以下载它们。

我尝试了以下步骤:

  1. 将文件保存到[leshan-dir]/update.bin。
  2. 写入"Package URI":coap://[raspi-IP]:5683/update.bin
    之后,按钮的背景颜色 "Write" 变为绿色。
  3. 执行更新

服务器的响应是 404 [未找到]。

我已经寻找任何 API 来找出我可以保存 .bin 文件的位置,但没有成功。而且因为似乎没有人有过类似的错误,所以我开始认为我错过了一些要点。

我必须将文件保存在 Raspbery Pi 的什么位置,以便我可以执行更新?

我找到了上面暴露的问题的解决方案。

我使用 californium-project 中的演示应用 cf-simplefile-server(参考 https://github.com/eclipse/californium/tree/2.0.x/demo-apps/cf-simplefile-server

注意:您必须结账到 git-branch 2.0.x 才能使用它。

为了运行同一台机器上的乐山服务器和文件服务器我不得不使用文件Californium.properties[=35更改其中一个服务器的端口=]. 我决定将文件服务器的那些更改为 5685 和 5686

当两个服务器 运行s 我可以在 Package URI 中插入类似的东西:

coap://[[ip_of_the_pi]]:5685/data/[[name_of_the_firmware_file]]

可能有更好的解决方案,但对于 coap/lwm2m 初学者来说效果很好。

注意:如果您有更大的文件要传输,您还可以更改 属性 MAX_RESOURCE_BODY_SIZE

我希望这可能对某些人有所帮助。

此致,

精灵