【发布时间】:2015-12-02 15:37:37
【问题描述】:
我们是一家面向建筑行业的初创公司建筑远程施工监控平台。我们擅长 Web 开发(Web 应用程序、Web API、数据可视化),但对 RF 低级工程和编程的了解为 0。
更重要的是,在我们所在的地区很难找到任何 XBee 开发人员。为了实现这一目标并提供 MVP,我们决定购买即用型套件和 Digi Cloud,因此我们得到了:
- 1 连接端口 X4H http://www.digi.com/products/xbee-rf-solutions/gateways/connectportx4
- 4 XBee 传感器 http://www.digi.com/products/xbee-rf-solutions/sensors/xbee-sensors
- 2 XBee 墙壁路由器 http://www.digi.com/products/xbee-rf-solutions/range-extenders/xbee-wall-router
我们已经知道的:
- 我们在 Digi Cloud 中发现了带有可见 ZigBee 网络的 ConnectPort,是的,它是可见的并且可以在线配置。
- 我们知道 ConnectPort 已内置 Python 引擎,但仅支持 2.4.3 Python 版本。
- 我们知道我们可以使用 Digi ESP for Python 将 Python 文件直接上传到 ConnectPort
- 我们知道我们可以使用 Digi Cloud 将 Python 文件上传到 ConnectPort
- 我们知道传感器可以将数据发送到数据流中,数据流会在一段时间后过期
- 我们知道,每次将数据上传到 Data Stream 时,我们都可以使用 Monitor API 将数据转发到我们自己的外部 Web 服务中
我们想要达到的目标和疑问:
场景 1(简单):
在这种情况下,我们希望使用 Digi Cloud 在线界面指定所有设置和采样。
- 使用 Digi 云接口创建数据流
- 由于每个 XBee 传感器有 1 个温度、1 个湿度和 1 个光传感器,我们希望为每个 XBee 传感器指定 3 个数据流。共有 4 x 3 个数据流。
- 除数据值外,每个数据流都应具有其他属性,例如:NodeId(XBee 传感器的 ID)、SensorTypeId(类型字典中的 ID)、SamplingFrequency(以毫秒为单位的值,0 = 实时) DateStart(从什么点开始的日期)收集数据),DateEnd(不应收集数据后的日期),MeasurementZoneId(用户指定的测量区域的ID,例如Floor 1),PlacementVector(建筑内的x,y,z位置)
- 以某种方式将每个数据流与 XBee 传感器中的每个传感器链接并“启用采样”
- 在 Digi Cloud 中在线观察数据变化
问题:
- 是否可以使用上述属性扩展数据流元数据?
- 是否可以在一个 XBee 传感器中为每个传感器定义一个数据流?
- 是否可以在不为 ConnectPort 编写 Python 代码的情况下定义采样频率并从 Digi Cloud 接口启用采样(无需无限循环计时器)?
- 如果不需要python代码来启用采样和数据发送,怎么办?
- 如果 Python 代码是强制性的,是否意味着每次我们要将 XBee 传感器分配到不同的测量区域时,都需要将新的 Python 文件上传到 ConnectPort?
场景 2(扩展):
在这种情况下,我们希望从我们自己的外部 API 配置设备和采样,并使用 Digi Cloud 作为配置和数据转发的中间人。
- 在具有相同参数的同时,使用来自永恒网络服务的 Digi Cloud API 创建数据流(它将是 .NET 网络服务,用 C# 编写)
- 在具有相同参数的情况下,使用 Monitor API 创建数据转发到外部 Web 服务(它将是 .NET Web 服务,用 C# 编写),每次新数据都将上传到 Digi Cloud
- 虽然具有相同的参数,但以某种方式将每个数据流与 XBee 传感器内的每个传感器链接起来,并使用来自永恒 Web 服务的 Digi Cloud API“启用采样”(它将是 .NET Web 服务,用 C# 编写)
- 无需手动查询即可在永恒的 Web 服务中接收数据
问题:
- 是否可以使用来自外部 Web 服务的 Digi Cloud API 来扩展具有上述属性的数据流元数据?
- 是否可以使用来自外部 Web 服务的 Digi Cloud API 在一个 XBee 传感器内为每个传感器定义一个数据流?
- 是否可以使用 Digi Cloud API 从外部 Web 服务定义采样频率并启用采样,而无需为 ConnectPort 编写 Python 代码(无需无限循环计时器)?
- 如果不需要python代码来启用采样和数据发送,怎么办?
- 如果 Python 代码是强制性的,是否意味着每次我们要将 XBee 传感器分配到不同的测量区域时,我们都需要使用 Digi Cloud API 生成新的 Python 文件并将其上传到 ConnectPort?
对于上述情况,我们将不胜感激。
【问题讨论】: