我想要做的是通过USB-serial将电路板连接到RaspberryPI(或其他一些SBC),让计算机将从传感器板接收的读数发送到远程服务器进行记录.
我考虑的选项是:
1 – Syslog …它很早就让我印象深刻,因为它似乎提供了我所需要的一切.虽然复杂性让我害怕.
2 – REST …让RaspberryPI将数据一行一行地通过网络发送到服务器上的CouchDB.
3 – HTTP …与node.js保持开放的HTTP连接并“写入”数据行.它当然需要由第二个node.js脚本接收以存储在DB中.
现在要求:
〜它需要轻巧且相对快速.会有很多数据(1s间隔),RaspberryPI不是强大的.
〜我非常想要压缩字符串的选项.上行链路通过3G,我希望采用“小”月度计划.
〜加密会很好,但不是强制性的.偏执狂是强大的乡下人……
〜我真的需要这个像K.I.S.S.尽可能.
简而言之,我将此作为某种网络串行连接,计算机一行一行地连接到另一台计算机.
那么,我在这里的选择是否更可取?或者甚至更好,谁有更好的主意?
如果有人有一个好的观点,我老实说愿意接受编辑甚至重新发布问题.
编辑:
到目前为止,所有评论和答案都得到了赞赏和考虑.
Syslog真的很棒,但我真的需要避免复杂性和开销.此外,经过一些测试后,RaspberryPI似乎在启动rsyslog后不久就停止了.
到目前为止,已经确定DBMS将成为CouchDB.
显而易见的选择是使用curl或残余的node.js服务器在数据到达时立即对数据库服务器进行REST调用.这虽然简单有效,但出于多种原因并不可取.安全也是一个问题;我不喜欢在直接调用DBMS的字段中使用微型PC的想法.
我开始获得赏金的原因是我希望有人可以提出以下几点的想法:“远程微型PC和DBMS之间的某种持久连接.数据将通过某种协议格式化并通过此连接转发为了在另一端接收.这种连接需要尽可能轻,尽可能少的开销“.
解决方法
邮件可以压缩,加密(使用SMTP TLS).此外它具有弹性:如果您丢失了上行链路,我们将在链路恢复时发送数据.从日志记录过程的角度来看,链接始终是“向上”.
在您的couchdb服务器(或连接到couchdb的其他计算机)上,您创建一个专用用户并在其.forward中放入一个脚本,解压缩消息并将其提供给couchdb.
如果您想进行身份验证,可以使用从共享密钥到PGP签名的许多方案!
我们这样做是为了提供我们的数据仓库,因为我们不希望它上面有任何类型的传入连接(https或ssh),诚然不是1s采样率(但数据量更大).
最后但并非最不重要的是,您可以单独测试每个组件(记录器,发送器,接收器和db-Feeder),而无需运行所有基础结构.