使用 unix 脚本上传测量结果(RESTful API?)

物联网 数据传输 休息 API
2021-06-14 04:30:32

恒温器设备从命令行返回类似 JSON 的数据:

curl -s http://192.168.X.Y/tstat/humidity
{"humidity":51.00}

设置一个 UNIX cron 作业来定期编写将数据上传到主机的脚本,以便将其可视化(图形化)会很有趣。命令行设备是配置了 Merlin ASUS 命令集Asus 路由器cron 作业执行 .sh UNIX 脚本以将数据保存到 USB 记忆棒。

教学练习的下一步是将数据上传到云服务并可视化数据

问题

  1. 什么是可以快速缩小具有允许路由器从命令行脚本上传数据的 API 的物联网服务提供商的关键字搜索词(UNIX 指令)

  2. 如果这是不可能的,那么 API 类(Python MQTT 等)的最精简\最小选项是什么。更好的选项占用空间很小,因为 RAM 是有限的。

我意识到路由器不是树莓派,也不是为此目的而设计的。话虽如此,我推测查询和上传结果的任务完全在其硬件能力范围内。

2个回答

如果您已经必须curl进行下载,则没有理由不使用它来执行 POST 以将数据推送到另一个服务。

因此,您需要为要使用的任何提供程序搜索 HTTP API。

例如,自从我使用它已经很长时间了(当他们被称为 Pachube 时)但 Xively 有一个 HTTP POST API(https://developer.xively.com/docs/publishing-over-http

看起来 flespi 是您的案例。

您可以使用flespi http 通道通过 CURL 上传 http 中的数据(或者使用mqtt 通道)。您上传的数据应采用以下格式:curl -X POST http://X.Y.Z.W:P/ -d {"ident":"123","humidity":51.00},其中 ident 是传感器的唯一标识符。您也可以传递带有传感器值检测时间或任何任意属性的“时间戳”。

然后您需要创建 flespi 设备并指定正确的设备类型(例如通用 http)和相同的标识。之后发布的消息将累积在设备中,您可以通过REST访问它们,其他一些工具如TrackIt!甚至只是在 grafana 中可视化