简介
在听了很多关于物联网的知识后,我想对这样一个项目背后的端到端过程有一个更好的了解,我喜欢构建一个小型设备的想法,我们可以从中获取数据,甚至可以进行交互。
由于物联网已经不是什么新鲜事了,你可能已经在网上找到了很多信息,大数据汇总,那为什么还要写另一篇博文呢?因为我还没有找到一个博客,涵盖了从开始到结束的一切…
因此,我的建议是实现一个非常简单的项目,包括使用Arduino板组装设备,使用传感器捕捉温度数据,将数据发送到SAP云平台IoT服务,并通过可从移动设备等设备使用的方式发布数据。
我们仍将错过的最后一点是开发将使用SAP云平台数据的应用程序,该应用程序可视为本教程的后续内容。
架构说明
上图显示了从Arduino板到数据消费者(可能是移动设备)的完整信息流。在平台上收集的数据也被HTML5应用程序使用。一旦在SAP云平台上使用数据,有许多可能性此图表示解决方案。
本教程的范围超出了解释如何将传感器连接到它并开发"东西"的电路板。本教程并没有深入到应用程序的实现以消耗收集的数据,一旦数据进入SAP云平台,我们将停止。
SAP云平台物联网服务配置
在您的SAP云平台(SCP)中,进入"服务"部分,在过滤器中输入"物联网",直接显示"物联网"服务。
如果服务尚未启用,则进入服务并按下启用按钮。
一旦服务启用,您可以点击"转到"链接服务"
在物联网服务中,进入页面底部,点击"部署消息管理服务"磁贴,
提供您的账号ID和平台凭据,
如界面所述:"只有具有"物联网MMS用户"角色的用户才能访问消息管理服务仪表板。您可以在Java应用程序仪表板的"角色"部分配置此授权。"因此,下一步是将该角色添加到您的用户中。
在SCP中,转到安全►授权。
在"用户"选项卡中,输入您的用户id并按"显示分配"。
单击表上方的"分配"链接。选择"iotmms"应用程序和"IoT MMS用户"角色。按"保存"按钮。
我们现在已成功配置平台以受益于IoT服务,我们的用户能够访问并使用它。
注意:发送的时间戳应为历元日期/时间。SCP将应用时区调整本身。您发送23:30 epoch和00:30将显示为数据在物联网服务…
按"创建"按钮。
一些"敏感"的数据,如安全令牌和设备ID是在这一部分处理。大多数人会把一切,我不。我更喜欢有一些相当透明和清晰的东西本教程中描述的项目已经转移到另一个级别,本博客中描述的几乎所有内容都不存在了。
为设备"i063866\u 01"创建了新的OAuth访问令牌。令牌:2b8358a867bdb7678b63c1973891b95
设备ID:63c3ab7c-5cae-4611-b6ca-d9783db25cee
OAuth令牌:2b8358a867bdb7678b63c1973891b95
测试/向彩信发送信息
向下滚动并单击互动程序"通过HTTP发送消息"。
数据端点:https://iotmsmsi063866trial.hanatril.ondemand.com/com.sap.iotservices.mms/v1/api/http/data/d000-e000-v000-i000-c000-e001
消息:{"mode":"sync","messageType":"m0ty0p0e1〃,淘客服,"messages":[{"sensor":"sensor1〃",value":"20〃,"timestamp":1413191650}]}
修改模板中的以下信息(数据端点和消息):
d000-e000-v000-i000-c000-e001►设备ID[63c3ab7c-5cae-4611-b6ca-d9783db25cee]m0ty0p0e1►消息类型ID[d6cdc3d436b9859af722]{"sensor":"sensor1〃",value":"20〃,timestamp":1413191650}►{"timestamp":1413191650,"celsiusTemp":"25.8〃}
确认端点:https://iotmsmsi063866trial.hanatril.ondemand.com/com.sap.iotservices.mms/v1/api/http/ack/d000-e000-v000-i000-c000-e001
修改Ack端点模板中的以下信息:
d000-e000-v000-i000-c000-e001►设备ID[63c3ab7c-5cae-4611-b6ca-d9783db25cee]
数据端点:https://iotmsmsi063866trial.hanatril.ondemand.com/com.sap.iotservices.mms/v1/api/http/data/63c3ab7c-5cae-4611-b6ca-d9783db25cee消息:{"mode":"sync","messageType":"d6cdc3d436b9859af722","messages":[{"timestamp":1413191650,"celsiusTemp":"20〃}]}确认终结点:https://iotmsmsi063866trial.hanatril.ondemand.com/com.sap.iotservices.mms/v1/api/http/ack/63c3ab7c-5cae-4611-b6ca-d9783db25cee
此请求第一次成功时,您可能会得到202(请求已被接受处理,但是处理尚未完成),云服务器怎么用,那么下面的表将是一个200(请求已成功)。
一旦数据端点上接收到第一条消息,表"T\u IOT\u D6CDC3D436B9859AF722"就会自动创建。如您所见,表名称的最后一部分与消息类型ID相对应表"T\u IOT\u ACKSTORE"也会在Ack端点收到其第一条消息后立即创建。
注意:我们可以看到这里考虑时区+2,而不是在芯片上。在这里,使用UTC/epoch时间。
我们现在知道,将消息内容发送到数据端点时,会正确到达服务器。因此,我们需要看看我们如何从Arduino板上做到这一点…
从Arduino板上发送数据