Arduino在SuperVessel物联网服务平台上的开发

基于SuperVessel云端的物联网服务平台Comet上线了!SuperVessel超能云是基于POWER处理器的公有云, 提供虚拟资源、大数据服务、FPGA虚拟加速服务和物联网应用服务 (https://ptopenlab.com/iotdm/#/), 使得用户只需关注应用本身的设计开发, 设备的注册、管理,数据的存储、维护等功能, 都由物联网应用平台Comet完成, 从而简化了开发流程, 使用户能够快速完成物联网应用的开发和部署。

SuperVessel超能云物联网服务平台Comet的主要功能包括:

  • 数据流管理

  • 设备管理

  • 设备MetaData管理

  • 设备控制管理

  • IoT应用Builder

  • IoT应用Run Time

IoT 服务平台Comet, 支持http和MQTT协议, 图形化的界面, 使用户可以通过简单的输入和拖拽, 就实现物联网应用的开发。IoT Application Gallery, 创建了用户应用的发布平台, 实现一键发布。同时, Comet还提供主流IoT设备的示例代码, 便于用户开发集成。

下面, 我们以IoT开放平台Arduino Yun为实例, 介绍如何利用SuperVessel的IoT Service, 开发物联网应用。

Arduino是一款开放的通用物联网设备平台, 由于具有丰富的设备接口, 可以方便的连接各种传感器设备, 因而颇受欢迎。介绍请见https://www.arduino.cc/

Arduino Yun 是一款基于ATmega32U4 和Atheros AR9331 的单片机板。 Atheros AR9331 可以运行一个基于Linux 和OpenWRT 的操作系统 Linino. 这款单片机板有内置Ethernet, Wifi, 一个USB端口,一个Micro 插槽, 20个数字输入/输出端口(其中7个可以用于PWM, 12个可以用于ADC),1个MICRO USB,1个ICSP插头,3个复位开关. (原文见http://www.arduino.cn/thread-4208-1-1.html )。

Arduino在SuperVessel物联网服务平台上的开发

一、硬件和环境搭建

本应用光强传感器采用的是BH1750FVI模块,所用的单片机程序和python程序可从示例程序( http://ptopenlab.com/cloudlabconsole/doc/ArduinoYunSample.zip) 下载。具体搭建过程可参考以下教程--Arduino光强示例环境搭建

二、创建IoT应用

本应用为光强传感器应用, 可以把光强传感器的数值上报到物联网平台Comet, 并显示。同时支持应用同环境的绑定, 使得物联网应用呈现良好的用户体验。

  1. 登录SuperVessel物联网服务平台Comet https://ptopenlab.com/iotdm/#/

    Arduino在SuperVessel物联网服务平台上的开发
  2. 创建数据流
    Arduino在SuperVessel物联网服务平台上的开发

图中黄框所示, 为IoT平台创建应用的基本步骤。

Application Editor—是指针对应用的定义和编辑, 包括环境的绑定、热点的设定 设备的绑定、图层的叠加、应用的发布等。

Devices—设备指的是添加、编辑、修改、删除已定义的设备类型。

Streams—Stream流指的是数据流的添加、编辑、修改、删除, 此数据流的定义需要同Arduino程序中的定义一致。

Operations—指针对IoT设备的控制操作。

Device Type—定义设备类型, 编辑、删除。

在本示例中, 我们定义的数据流名称为“Light”, 同Arduino单片机程序中的数据流定义一致。定义好的数据流会在Datastreams中显示。点击“+Create”, 可以添加新的数据流。

Arduino在SuperVessel物联网服务平台上的开发

3. 定义设备类型

定义设备类型,注意设备的名称需要同mqttClientControl.py 中的设备名称一致。本示例中设备名称为“EnvCollector”。

Arduino在SuperVessel物联网服务平台上的开发

定义好的设备如下。可通过点击“+”, 添加新的设备。

Arduino在SuperVessel物联网服务平台上的开发

4. 将数据流和设备绑定。

该步骤主要是将设备和数据绑定,定义数据流是从哪个设备上报的。点击“+Stream”, 选择定义好的数据流, 就可将设备和数据绑定。

Arduino在SuperVessel物联网服务平台上的开发

添加数据流后的结果显示为

Arduino在SuperVessel物联网服务平台上的开发

5. 注册应用中的设备

应用中的设备需要向IoT平台注册, 在“Devices”菜单中, 定义注册相关的设备。

Arduino在SuperVessel物联网服务平台上的开发

SN定义为有线口的MAC地址,无论用有线还是无线连接internet,SN都是有线口的MAC注册完成的设备如下所示:

Arduino在SuperVessel物联网服务平台上的开发

6. 编辑运行Arduino程序。

Arduino终端, 打开mqttClientControl.py, 可以看到设备类型的定义, 以及MQTT server的IP地址

Arduino在SuperVessel物联网服务平台上的开发

打开单片机程序SensorSampleArduinoYun.ino, 可以看到数据上报格式, 和Stream的名称,该名称与IoT平台定义的名称需一致。

Arduino在SuperVessel物联网服务平台上的开发

若程序没有改动, 可关闭程序。在Arduino终端运行

./mqttClientControl.py

Arduino YUN就会将数据上报至IoT平台。

Arduino在SuperVessel物联网服务平台上的开发

7. 在Device 界面中点击Arduino图片, 就能看到实时上报的光强数据。

Arduino在SuperVessel物联网服务平台上的开发

8. 设备与环境关联。

以上几步, 已经完成了设备同IoT平台的连接、注册和消息通路。下面, 我们要把IoT设备同实际环境绑定在一起,因为任何设备都有一个位置和场景, 才是一个完整的应用。

ApplicationEditor中创建一个新的Map, 名字叫“ Light Demo”。

Arduino在SuperVessel物联网服务平台上的开发

选择界面右上角处“Layer Panel”中的中间选项, 增加图层。上传传感器设备所处环境照片。

Arduino在SuperVessel物联网服务平台上的开发

结果如下:

Arduino在SuperVessel物联网服务平台上的开发

9. 创建热点, 把热点和传感器设备相绑定。

Arduino在SuperVessel物联网服务平台上的开发

绘制热点在希望的位置。

Arduino在SuperVessel物联网服务平台上的开发

保存后, 可看到如下页面。

Arduino在SuperVessel物联网服务平台上的开发

10. 将热点关联传感器设备。

点击Application List中的Light Demo, 会弹出显示设备的界面:

Arduino在SuperVessel物联网服务平台上的开发

点击上图中的热点, 会弹出一个“Devices”方框, 将所选设备拖入Devices方框内

Arduino在SuperVessel物联网服务平台上的开发


关联成功, 可以看到数据在热点区显示。至此, 一个IoT应用已全部完成。

Arduino在SuperVessel物联网服务平台上的开发

11. 生成二维码, 便于发布/共享。

IoT服务平台Comet开发了一键发布功能, 将应用的链接生成二维码, 便于朋友圈共享和发布。点击“Application View”, 生成二维码。可在手机上扫描二维码, 进入应用页面, 实时监测数据。

Arduino在SuperVessel物联网服务平台上的开发

以上, 就是利用SuperVessel超能云IoT服务平台Comet进行物联网应用开发的实例。

转载于:https://my.oschina.net/u/2407578/blog/474292