物联网技术

基于ActorCloud构建IoT应用程序

2018-07-18  本文已影响135人  EMQ

概述

多数IoT应用程序由三部分组成:IoT终端设备、查看和管理IoT终端设备的应用程序、以及连接、数据收集和分析的平台:ActorCloud作为物联网设备管理平台,可将终端设备和应用程序之间建立连接:

以下以车辆GPS定位器为例,构建一个IoT Connect 应用程序的流程,包含以下三个部分:

以上组成部分使用与 MQTT 协议进行实时的发布/订阅消息传递,将测试以下场景:

准备工作

注册设备

添加能使用 MQTT协议且具备连接该服务实例的设备,对于设备客户端,ActorCloud会分配主机名、用户名和密码,用于连接到服务实例,在设备管理->设备列表->设备详情->编码信息中,可查看详情。如下图:


更多设备注册详情,请参阅:设备注册

设备连接

对于真实的设备连接,需确保固件是使用MQTT模块构建,在设备连接时,需将ActorCloud注册设备时分配的设备编号和访问令牌给IoT设备。现基于Python语言模拟设备连接,用Python语言模拟设备连接需要的参数:

服务器名称:mqtt.actorcloud.io
服务器端口:1883
客户端标识符:客户端标识符既为设备编号“61502”
设备用户名和密钥:*******/********

如图将参数指定给模拟设备:



执行此脚本,该设备连接到ActorCloud平台,从ActorCloud可查看该设备的连接状态,在设备管理->设备列表中可见该设备状态为在线:


模拟车辆发布数据

用Python语言编码模拟车辆发布遥测数据(ActorCloud提供测试中心),将MQTT服务器地址、设备编号、连接用户名、设备密钥:

host_name = "mqtt.actorcloud.io"
host_port = 1883
client_id="61502"
username = "******"
password = "******"

设置到仿真模拟器里,编码python脚本,发送数据:



不同的事件类型可发布到不同的主题,对于此设备,将信息发布到主题device_event,每3秒上报一次数据:



返回到ActorCloud平台的设备事件,可以看到终端设备发布的数据,如下图:

ActorCloud平台生成API的密钥

模拟车辆终端将数据发布到ActorCloud。设备上报的数据,在被应用程序使用之前,需确保应用程序可访问ActorCloud,以下为应用程序生成 API 密钥:

应用程序调用ActorCloud平台所有API,都需要使用应用 ID 与应用密钥,更多细节,请参阅应用管理
以下是使用Python语言基于Basic Auth 认证调用ActorCloud 的API编码示例:


执行该脚本,可查看到调用API返回为Json格式的数据,如图:

APP应用程序中使用来自ActorCloud数据

通过API获取模拟车辆发布的数据,以下是简单的 GET 示例,调用该API,需要基于ActorCloud平台生成的API密钥和密码进行Basic Auth认证,该示例允许我们的应用程序发送 GET 请求。在此API 中,返回了我们在前面步骤中模拟车辆发布的数据。



APP应用程序获取这些数据后,可解析Payload的数据,对其分析,如果上报数据值增幅太大,可猜测到的事件是车辆处于加速状态,应用程序可对模拟车辆设备发布指令(比如安全提示信息的指令)。

对车辆发布指令(ActorCloud下发、APP下发)

APP通过API对车辆下发指令

Postman模拟应用程序对车辆发布指令,车辆模拟器订阅用于接收应用程序或者平台下发的指令的主题,需要以下准备:

模拟车辆侧,收到APP下发指令数据:



在真实场景中,设备收到下发数据,设备可执行对应的操作,并进行对应的响应。

ActorCloud对车辆下发指令

对于平台下发的指令,在设备管理->设备列表->设备详情->设备控制->添加指令中,ActorCloud对于登录设备会代理订阅‘devices/设备id/inbox'的主题,用户只需要编码Paylaod的json串:



车辆模拟设备,收到ActorCloud下发的指令数据:


总结

如本文演示的场景,ActorCloud不仅可从连网设备接收数据,还可以通过平台或者API形式将数据或者指令发布到设备,设备可以对下发数据执行计算,显示提醒或执行其他操作,还可将设备上报的数据通过API形式给APP。用户可根据自己业务使用ActorCloud,更多关于设备管理平台,详情了解:https://www.actorcloud.io/

上一篇 下一篇

猜你喜欢

热点阅读