2015-12-02 83 views
1

我们是建筑行业的启动建筑远程监控平台。我们擅长网络开发(网络应用程序,Web API,数据可视化),但对射频低级工程和编程知之甚少。XBee传感器,ConnectPort X4H和Digi云之间的通信

什么是更难以找到我们地区的任何XBee开发人员。为了能够和交付MVP,我们决定购买现成的使用装置和向Digi云,因此我们得到:

我们已经知道:

  • 我们在Digi Cloud中发现ConnectPort与可见ZigBee网络,是的,它是可见的,可以在线配置。
  • 我们知道ConnectPort内置了Python引擎,但是只支持2.4.3 Python版本。
  • 我们知道,我们可以使用的Digi ESP直接上传的Python文件的ConnectPort为Python
  • 我们知道,我们可以使用的Digi云Python文件上传到的ConnectPort
  • 我们知道,传感器可以发送数据到数据流,以一段时间
  • 我们知道,我们可以使用监视器API每次它会被上传到数据流

我们要实现和有问题什么时候的数据转发到我们自己的外部Web服务到期后:

情景1(简单):

在这种情况下我们要指定所有设置和取样用的Digi云网络接口。

  • 创建基于Dig云接口
    • 由于每个的XBee传感器已经1度的温度,湿度1和1个光传感器的数据流,我们要指定3个数据流对于每个传感器的XBee。共有4 x 3数据流。
    • 除数据值之外的每个数据流都应该具有其他属性,如:NodeId(XBee传感器的ID),SensorTypeId(来自字典类型的Id),SamplingFrequency(以毫秒为单位的值,0 =实时)DateStart收集数据),DateEnd(无数据收集后的日期),MeasurementZoneId(用户指定的测量区域的ID,例如地板1),PlacementVector(X,Y,Z的内部结构的位置)
  • 不知何故链接的每个数据与的XBee传感器内的各传感器和“启用采样”中的Digi云
流在线
  • 观看数据的变化

    问题:

    1. 是否有可能与上述特性延伸的数据流的元数据?
    2. 是否可以在一个XBee传感器内为每个传感器定义一个数据流?
    3. 是否有可能定义采样频率,使从Digi云接口采样,而无需编写为的ConnectPort Python代码(而不需要无限循环的定时器)?
    4. 如果python代码不需要启用采样和数据发送,那该怎么做?
    5. 如果Python代码是强制性的,它意味着我们要的XBee传感器分配给不同的测量区,每次我们需要新的Python文件上传到的ConnectPort?

    方案2(扩展)

    在这种情况下,我们希望从我们自己的外部API配置设备,采样和使用的Digi云作为中间人进行配置和数据转发。

    • 虽然具有相同的参数,创建使用的Digi云API从永恒web服务的数据流(这将是.NET网络服务,C#编写的)
    • 虽然具有相同的参数,创建数据转发到外部web服务(这将是.NET网络服务,C#编写的),使用监视器API,每次新的数据将被上传到的Digi云
    • 虽然具有相同的参数以某种方式对每个数据流与的XBee传感器和“内的各传感器连接使用的Digi云API从永恒的web服务启用采样”(这将是.NET Web服务,用C#编写)
    • RECE香港专业教育学院在永恒的web服务数据,而不需要人工的查询

    问题:

    1. 是否有可能使用的Digi云API从外部Web服务各特性扩展了数据流的元数据?
    2. 是否可以使用来自外部Web服务的Digi Cloud API在一个XBee传感器内为每个传感器定义一个数据流?
    3. 是否可以定义取样频率和使用来自外部Web服务的Digi云API允许抽样,不书面的ConnectPort Python代码(而不需要无限循环的定时器)?
    4. 如果python代码不需要启用采样和数据发送,那该怎么做?
    5. 如果Python代码是强制性的,它意味着我们要的XBee传感器分配到我们需要生成并上传使用的Digi云API新的Python文件到的ConnectPort不同的测量区域中的每个时间?

    我们将不胜感激上述场景的任何帮助。

  • 回答

    1

    这将是很难给出它的广度和给出一个准确的答案所需要的细节,但在这里,你的帖子专门解决一切是一个尝试:

    方案1:

    你有几个选项。您可以编写一个在网关上运行的自定义python脚本,因为有API用于与XBee节点进行交互,并将数据点发送到您想要的结构云。这可以让你在没有框架开销的情况下进行大量的控制,但是你可能会发现你必须深入研究一些细节来弄清楚如何完成每个任务。

    或者,查看可在网关上运行的DIA Python框架(http://www.digi.com/support/productdetail?pid=3632&type=drivers)。该框架试图抽象设备和数据报告,以便您可以主要通过配置完成很多工作,而无需编写任何代码。我可能会建议你至少开始使用它,并尝试一下,如果你觉得它太麻烦,至少要定制你有一个起点。

    1. 设备端API允许提供描述以及上传的每个数据点。尽管对于列出的许多内容没有固有的支持,但您可以想出一个约定,将这些信息包含在描述字段中(例如将描述格式化为json)。无法在服务器端自动调整报告,并在设备端自动反映报告。 Device Cloud具有API,可让您将消息发送到设备......所以您可以使用该API传递报告更改。

    2. 是的,使用Python和数据上传API,您可以根据需要布置流。对每一个独特的数据源都有一个流是明智的,并且将会是类似DIA的默认方式。

    3. 它可能与DIA。 I 相信 XBee传感器可配置为定期发送IO采样,然后DIA会将这些采样上传到服务器。然后,您可以调整XBee节点上关于IO采样率的设置,让事情发生变化。然而,这不会非常简单。

    4. 如上所述,试试DIA,看它是否符合您的需求。它可以进行一些配置并构建一组在运行于Gateway上的python代码,而无需编写任何python。

    5. 您可以通过Device Cloud中的API将消息发送到您的Python代码。因此,您一定可以实施它,因此设备上会有一些配置文件跟踪每个设备的测量区域,然后支持从Device Cloud接收消息以更新和保存新的测量区域配置。您将无法将其集成到Device Cloud本身的UI中,但可以使用Device Cloud中的API Explorer执行所需的API。

    方案2

    1. 你可以得到所有的数据流,并使用在设备云API的数据点的列表。您还可以创建新的数据点或执行诸如编辑流或数据点的描述等内容。

    2. 您可以创建数据流,并把它们放出来,但是你想在设备云的API(参见/ WS /的数据流中和/ WS /数据点或他们的新变种/ WS/V1 /流)

    3. 假设方案一中#3解决方案有效,您可以使用Device Cloud中的Web服务API调整最终XBee节点的IO采样频率。

    4. 试用DIA框架,看它是否满足您的需求。

    5. 和以前一样,因为它使用的是API。

    +0

    现在,这是唯一给我“提示”作为出发点的答案,我会在初始原型交付后用自己的回答更新这个问题。 DIA是原型开发的好起点,谢谢。 –