dly*_*988 6 automation database serial
我正在为灌溉泵和连接的管道构建一个监控系统。至此,我已经完成了传感器网络。一切都连接到一个微控制器板(实际上是 4 个 Teensy 3.0板),并且该板被编程为以预定的间隔输出一串格式化数据(读数)。
我想要做的是通过 USB 串行将板连接到RaspberryPI(或其他一些 SBC),并让计算机将从传感器板接收到的读数发送到远程服务器以进行记录。
我考虑过的选项是:
1 - Syslog...它很早就让我想到了一种可能性,因为它似乎提供了我需要的几乎所有东西。然而,复杂性让我感到害怕。
2 - REST...让 RaspberryPI 通过网络将数据逐行 POST 到服务器上的 CouchDB。
3 - HTTP ...与 node.js 保持开放的 HTTP 连接并“写入”数据行。它当然需要由第二个 node.js 脚本接收以存储在数据库中。
现在的要求:
~ 需要轻量级且相对较快。会有很多数据(1s 间隔),RaspberryPI 不是强者。
~ 我非常喜欢压缩字符串的选项。上行链路是通过 3G,我希望采用“小”月度计划。
~ 加密会很好,但不是强制性的。偏执狂对乡下人很强烈......
~我真的需要这个尽可能KISS。
长话短说,我认为这是某种网络串行连接,其中一台计算机将一行接一行地馈送到另一台计算机。
那么,我这里的哪个选项更可取?或者更好,有没有人有更好的主意?
老实说,如果有人有好的观点,我愿意编辑甚至重新发布问题。
编辑:
到目前为止,所有评论和答案都已得到赞赏和考虑。
Syslog 真的很棒,但我真的需要避免复杂性和开销。此外,经过一些测试后,RaspberryPI 似乎在启动 rsyslog 后不久就停止了。
现在已经决定 DBMS 将成为 CouchDB。
显而易见的选择是使用 curl 或残留的 node.js 服务器在数据到达后立即对数据库服务器进行 REST 调用。这虽然简单有效,但出于多种原因并不可取。安全也是一个问题;我不喜欢在现场使用微型 PC 直接调用 DBMS 的想法。
我开始悬赏的原因是我希望有人可以提出以下想法:“远程微型 PC 和 DBMS 之间的某种持久连接。数据将通过某种协议格式化并通过此连接转发以便在另一端接收。这个连接需要尽可能轻量级,具有尽可能少的开销”。
小智 4
您是否考虑过使用 SMTP(电子邮件)?Raspberry 上有两个进程:一个读取数据并将其附加到文件中,另一个进程(可能在 crontab 中)移动文件(可能聚合一些文件)并通过电子邮件将它们发送到目标计算机。这样,如果您同意的话(例如每 20 秒或每分钟发送一封电子邮件),采样频率和记录频率之间就不会产生耦合。
邮件可以被压缩、加密(使用 SMTP TLS)。此外,它具有弹性:如果您丢失上行链路,当链路恢复时我们将发送数据。从您的日志记录过程的角度来看,该链接始终处于“打开”状态。
在您的 couchdb 服务器(或连接到 couchdb 的另一台计算机)上,您创建一个专用用户并将脚本放入其 .forward 中,该脚本解压缩消息并将其提供给 couchdb。
如果您想进行身份验证,您可以使用从共享密钥到 PGP 签名的许多方案!
我们这样做是为了向我们的数据仓库提供数据,因为我们不希望其上有任何类型的传入连接(https 或 ssh),诚然不是以 1 秒的采样率(但数据更大)。
最后但并非最不重要的一点是,您可以单独测试每个组件(记录器、发送器、接收器和数据库馈送器),而无需运行所有基础设施。
归档时间: |
|
查看次数: |
246 次 |
最近记录: |