云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

对象存储_数据库设计基础_返现

小七 141 0

[SCL Consulting]–SAP SMB Summit 2019–Hackaton赢家!

Github回购:https://github.com/jonarranzATscl/SCL\u SMBSummit19\u HACKATON

更新(2019/10/25):Darius Heydarian@SAP制作了一个实施此解决方案的精彩视频。谢谢你的辛勤工作!!

解决方案简介

本解决方案是为SAP SMB Summit 2019 Hackaton–Nice Hackaton主页开发的。它完全是在规定的时间内,现场开发,并赢得了比赛!

我们试图为我们的商品提供一个可信赖的"冷链"监视器;使用CC2650STK传感器将温度读数发送给莱昂纳多(不是真的,我们稍后会深入研究),并将这些读数存储在区块链中。此外,我们还提供了一个报警系统:当温度上升到某个阈值时,它会向B1后端和特定用户发送一条消息。使用电报,可以实时请求最后一个传感器读数,从而提供聊天室集成。

使用的技术

B1Backend(B1Backend)区块链CloudFoundry(云铸造)IoLeonardo(IoLeonardo)

节点红(Node RED)–基于流的物联网编程Mosquitto(Mosquitto)–开源MQTT代理amazonwebservices(AWS)–用于运行mosquitto代理Amazon Elastic Beanstalk(EBS)-用于托管节点红色

解决方案架构

**解决方案架构图形正在制作中**

IoT-从传感器读取数据并根据接收到的值进行操作

对于这一部分,我们希望使用IoT Leonardo构建块,它以CC2650STK传感器的形式提供给我们,这是一款带有达芬奇的SAP网关,当然还有一个SAP达芬奇帐户。我们真的无法使用这些技术,因为会议厅的WiFi连接非常糟糕(仅在第一个小时内,之后工作正常),iPad无法保持稳定的连接。所以…我们发明了我们自己的"莱昂纳多",我们把它命名为"米开朗基罗"。

注册传感器读数的第一件事就是MQTT服务器。Mosquitto是一个伟大的开源MQTT服务器,因此我们在AWS上启动了一个EC2实例并在那里运行了一个Mosquitto服务器(我们使用了标准的Ubuntu AMI并通过apt:sudo apt get install Mosquitto安装了Mosquitto)。它在端口1883上发布了一个纯TCP服务,我们没有使用身份验证,我们的安全组"对所有人开放"…。不要在任何生产系统中使用它!。

我们必须将传感器数据发送到mqtt服务器,因此我们配置了标准的TI SensorLink应用程序,以便将传感器数据推送到我们的云代理:

然后,我们每隔一秒就在云服务器上获取新的传感器数据;但无法与之交互。

对于传感器数据的操作,我们选择了节点RED。它是一个开源的基于流的编程工具,专门设计用于与物联网设备交互。它可以作为一个web应用程序部署,所以我们选择在AWS弹性Beanstalk上部署它。EB与CloudFoundry非常相似,你可以上传一个应用程序,它在云中运行,完全可以管理。在EBS上安装Node RED

我们设计了一个简单的流程来处理传感器数据:

我们收到了CC2650STK主题上的mqtt消息,我只是数据,并将其转换为JSON(传感器将数据作为一个字符串化的JSON发送,因此我们将其转换回JSON对象)。我们将最后一个温度读数保存在本地,作为一个全局变量,在收到每条消息后更新。

您可以"连接"红色节点上的不同流,因此在存储最后一个温度读数后,我们为每个不同的功能转移路径:

始终将读数存储在区块链上如果满足警报条件,则向B1后端和预定义电报用户发送消息。

区块链–将传感器读数存储在区块链上

对于此功能,我们直接使用区块链构建块。在循序渐进的教程之后,我们成功地在不到10分钟的时间内建立并运行了区块链。本教程创建了一个非常简单的链,一个键值存储,但这就是我们所需要的!幸运的是,它有一个招摇过市的接口,用于测试最近创建的rest服务,以便与bloickchain进行交互,因此我们将注意力集中在POST方法上,用于向区块链写入新值。

因此,我们得到了一个rest服务,用于在区块链上写入值,因此我们必须从节点RED发送消息。那是件容易的事!我们为这个特别的工作做了一个小的子流程:

我们只是组成一个HTTP请求对象并将其发送到HyperLedger api网关URL:

在本例中,"有效负载"指的是最后保存的温度读数;因此,每次我们通过mqtt服务器从传感器接收到一个温度读数,我们直接存储在区块链中:不能错过任何交易,每一个读数都是按顺序存储在区块链中,不能断链!

作用于阈值–物联网决策

在我们的设计中,我们想在温度上升到某个阈值时发送一条消息…但这真的很难模拟!传感器的温度变化非常慢:即使你把它放在一个热的地方,它需要时间来更新传感器的值。因此,我们使用传感器按钮"作弊":如果按下传感器中的按钮,它就会触发消息发送流。在节点RED上很容易做到:

一旦满足了警报条件,我们就继续流到两个不同的子流:将消息发送到B1后端和通过电报发送消息。