将物联网设备连接到Hut34 –困难的方法

上周,我向您展示了如何使用现有服务将电话连接到小屋。 我还将带有温度传感器的Raspberry Pi连接到Hut34。 我想要一个更灵活的结果,所以我选择了一种不同的方法……事实证明它涉及更多。

Hut34建立了一个分布式网络,可以在其中交换和货币化IoT数据。 我的目标是向您展示如何连接。 在此处阅读有关我们项目的更多信息。

在勾勒出基础架构后,我意识到该过程涉及一些子任务:

  1. 将数据从Pi发送到云;
  2. 将数据存储在云中;
  3. 根据要求发送至小屋34。

为此,我将一些服务组合在一起。 注意:第一部分来自Calvin关于将Pi数据流传输到AWS IoT的出色教程

第1部分的数据流如下。

  1. Raspberry Pi上的python脚本使用MQTT协议将数据(时间戳,临时)发布到AWS IoT;
  2. 平台上的IoT规则将数据转发到Elastic Search实例(ES);
  3. Kibana用于可视化ES中的数据。

弹性搜索并不是这项工作的最佳选择,但我坚持使用本教程。


当Hut 34向API网关提供的端点发出请求时,将发生以下情况:

  1. API网关触发javascript Lambda函数;
  2. Lambda函数检索我们温度传感器的最新已知状态(即,来自ES的最新记录);
  3. Lambda函数将数据发送到Hut 34。

尽管该解决方案比我想的要复杂,但它说明了可以通过将现有服务连接到那里来完成的工作。 该解决方案在整个堆栈中具有很大的灵活性。 我可以很容易地集成更多传感器,更改数据更新的时间,或使用MQTT仅在查询时返回数据。 另一个优点是整个堆栈可以扩展以支持多个设备。

API网关/ Lambda配对允许将逻辑内置到我用来为Hut 34服务的API中,并以我选择的方式响应不同的请求。 考虑一下,如果我在悉尼市内有几组空气质量传感器。 使用自定义API,我可以从一个位置检索数据,也可以从所有位置检索一氧化碳数据。

对于单个Raspberry Pi来说,这太过分了-但是作为自定义解决方案要强大得多,这将使我能够扩展服务以服务多个数据流,而不仅仅是单个数据点。 这是很有趣的事情,并且其他一些服务正在对此进行探索。

下次,我唯一要做的不同是使用Dynamo DB代替ES。 我认为这将更适合该工作,并且仍将为历史趋势提供持久数据。

请关注第34小屋,以了解有关我已经建立的更多内容的信息,并在下面发表评论并提出您接下来想看到的内容。


在Twitter上关注我们,在Telegram上与我们交谈。

注意:AWS与Hut34项目没有任何关系。 我只是碰巧使用了他们的很多服务。