【问题标题】:Passing data from remote sensor to server将数据从远程传感器传递到服务器
【发布时间】:2017-09-21 13:47:15
【问题描述】:

我目前正在从事一个项目,该项目涉及许多基于 linux 的小型主机,这些主机从传感器读取数据并通过 Open VPN 链接将数据发送到服务器。该服务器是一个 Ubuntu 虚拟机,它能够随着网络的增长而扩展以满足需求。

最初,我们将在校园内分布 20 个传感器,但最终解决方案可能需要扩展到数千个。

每个传感器每 15 分钟将数据传送到服务器。每个事务的数据大小约为 100 字节。

数据将被放置在服务器上的循环数据库中,并最终通过 apache Web 界面进行审查。

我想知道目前使用开源技术的最佳解决方案是实现从传感器到服务器的这种事务。

我们正在考虑 ssh、scp、netcat 和基于 Web 的解决方案,但将考虑替代方案。

【问题讨论】:

    标签: performance sensors rrdtool


    【解决方案1】:

    这种用法的常见实现是消息传递协议;传感器、物联网等最流行的一种是MQTT。几乎所有你想要的语言都有许多开源库,还有几个开源代理,例如。 MosQuitto.

    您提到的技术看起来是同步的——“传感器在服务器上打开 SSH shell 并执行 BASH 命令”,“传感器在服务器上执行 HTTP 请求并 PUTS 数据”。 这相当于通过电话联系某人 - 如果他们不在,您必须等待电话响起,您的消息可能会丢失(为了这个示例,我们忽略语音邮件)。

    这在大多数情况下都是有问题的 - 传感器通常使用不可靠的协议连接,并且 CPU 和存储容量有限。基于消息的异步协议要求传感器发送带有数据的消息,并继续其生命;消息传递解决方案处理错误处理、丢失连接等。 这相当于发送电子邮件 - 即使您在发送电子邮件时不在网络上,或者收件人不在,最终邮件也会到达那里。

    MQTT 是一个真正轻量级且灵活的消息传递解决方案,专为硬件有限的客户而设计。

    【讨论】:

    • 嗨@Neville,自从我阅读你的消息以来,我已经花了几个小时安装和检查现在在我的 Ubuntu 服务器上运行的 mosquitto 代理。我使用端口 8883 安全地运行它并且可以发送: mosquitto_pub -h somehost -t test -m "hello" -p 8883 --capath /etc/ssl/certs/ -u "someuser" -P "somepassword" 使用另一个终端打开观看: mosquitto_sub -h localhost -t test -u "someuser" -P "somepassword" 我看到了 hello 输出。我现在只是想知道是否我所要做的就是在脚本中以相同的方式使用 mosquitto_pub 和 sub 进行交易?
    猜你喜欢
    • 2020-08-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多