我对IOT(协议)世界还很陌生。我想远程更新一些设备(它们将安装在距工作地点约8000公里的位置)。我发现LWM2M将适合我的范围。
由于互联网连接不稳定且带宽低,我决定还安装一台Raspberry Pi来收集传感器的数据,并安装一台Leshan服务器来触发更新。
我已经测试了设备,可以将它们注册到Pi上的Leshan服务器上,读取一些数据,然后重新启动设备。问题是,我不知道将二进制文件保存在何处以进行更新,以便设备可以下载它们。
我尝试了以下步骤:
服务器的响应是404 [未找到]。
我一直在寻找任何API,以找出可以保存.bin文件的位置,但是没有成功。而且由于似乎没有人出现类似的错误,所以我开始认为我错过了一些要点。
我必须在哪里将文件保存在Raspbery Pi上,以便执行更新?
答案 0 :(得分:1)
我为上面暴露的问题找到了解决方案。
我从californium项目中使用了演示应用程序 cf-simplefile-server (参考https://github.com/eclipse/californium/tree/2.0.x/demo-apps/cf-simplefile-server)
注意:您必须先检出git-branch 2.0.x才能使用它。
要在同一台机器上运行leshan服务器和文件服务器,我必须使用文件 Californium.properties 更改其中一台服务器的端口。 我决定将文件服务器的名称更改为5685和5686
当两个服务器都运行时,我可以在 Package URI 中插入以下内容:
coap://[[ip_of_the_pi]]:5685/data/[[name_of_the_firmware_file]]
也许有更好的解决方案,但是对于像coap / lwm2m这样的初学者来说,它的效果很好。
注意:如果您要传输的文件更大,还可以更改属性MAX_RESOURCE_BODY_SIZE
我希望这可以对某人有所帮助。
此致
精灵