Microsoft IoT Starter Kit 开发初体验-反馈控制与数据存储

    在上一篇文章《Microsoft IoT Starter Kit 开发初体验》中,讲述了微软中国发布的Microsoft IoT Starter Kit所包含的硬件介绍、开发环境搭建、硬件设置、Azure IoT Hub的连接、程序的编译、下载和调试、PowerBI数据的展现。在这篇文章中,将会详细讲述Cloud to Device的消息反馈控制以及如何通过Stream Analytics将数据存储到Azure Storage Table,以方便数据后期的利用。

1. 反馈控制

    上一篇文章中,验证了Device to Cloud的消息流,即设备发送数据到Azure IoTHub。其实,Azure IoTHub支持数据的双向传输,即设备也可以接收IoTHub发送的消息,从而达到反馈控制的目的。(早期的Azure EventHub只支持Device to Cloud的消息流,如果应用场景只需要发送Device to Cloud的消息,那么其实Azure EventHub就足以)。Microsoft IoT Starter Kit中包含了一个Chainable RGB LED,该LED可以用来演示反馈控制的功能。

    首先,打开Device Explore,定位到Message to Device页面,如下图所示。

    然后,在Message中输入控制命令,其格式如下:

{"Name":"SetRGBLed", "Parameters":{"rgbled":255}}

    其中,下划线所示的内容可以根据所需控制的灯的颜色来确定:红色为0xff0000,十进制值为16711680;绿色为0x00ff00,对应的十进制值为65280;蓝色为0x0000ff,对应的十进制值为255.

    当发送如上65280的命令后,Device Explore提示设备接收消息成功,再去确认LED灯的颜色,已经变为绿色。如下图所示。

2. 数据存储

    Stream Analytics不仅可以将数据输出到PowerBI,还可以通过设置,将数据流输出到Azure Storage Table中,为后续的数据处理做好准备。下面讲述具体的设置方法。

    首先,在Azure门户中新建一个存储账户,同时,下载Azure Storage Explorer工具到本地,用于连接Azure Storage Table。在本地打开Azure Storage Explorer工具,通过Add Account添加账户,如下图所示。

    然后,在Tables中,新建一个表,用于存储Seeeduino的数据,这里以SeeeduinoTable为例,如下图所示。

    接着,在Azure门户中,配置Stream Analytics的输出。通过添加New output来配置为SeeeduinoTable,如下图所示。

    添加完成以后,Azure会自动对表的连接进行测试。如下图所示。

    如果没有问题的话,给Seeeduino上电,先查看Azure IoTHub是否有数据输入。

    再查看Stream Analytics是否有数据输入和输出,如下图所示。

    如果没有问题的话,在通过Azure Storage Explorer工具查看是否有Seeeduino的数据。如下图所示。

3.总结

    至此,通过这两篇文章,已经完整的阐述了Microsoft IoT Starter Kit所包含的硬件、开发环境搭建、硬件设置、Azure IoT Hub的连接、程序的编译、下载和调试、D2C数据的发送、C2D反馈控制的消息发送、PowerBI数据的展现和Azure Storage Table数据的存储。开发者可以在此基础上,通过Grove接口扩展更多的传感器和执行机构,结合Azure IoTHub,完成更多的功能。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏phodal

设计博客系统的架构思考(上)——动态的无限可能性

虽然,我也想不起来为什么最近会陷入这样的大坑,但是我觉得我还是应该记录一下这些想法。从一个简单的MVC架构的博客系统,到我所使用的Django MTV的APP结...

212100
来自专栏北京马哥教育

成吨提高开发效率的终极武器——自己开发workflow

之前我写过一篇关于提高 Mac 开发效率的文章,里面介绍了很多大幅度提升Mac开发效率的方法,遗憾的是那篇文章里并没有介绍 Alfred 这款神器。 然而转念一...

32740
来自专栏雨过天晴

初窥dep

72280
来自专栏斑斓

可伸缩系统的架构经验

最近,阅读了Will Larson的文章Introduction to Architecting System for Scale,感觉很有价值。作者分享了他在...

30950
来自专栏Coding01

使用 PubSubHubbub 制作 RSS 定时器 —— Laravel RSS (三)

由于我们使用 xpath 方式去抓取网站的内容,这些网站更新了内容,但它们不会实时告诉你它们更新了;所以「RSS 阅读器如何做到所谓的的「更新」呢?」

14920
来自专栏FreeBuf

Makednslog:让我们来看一看这款能够伪造DNS日志的工具

写在前面的话 2016年8月1日,我曾发表过一篇文章【点击文末的阅读原文查看】并介绍了如何使用哈希算法来提升大型DNS日志文件的搜索效率。但是这篇文章中还存在一...

24160
来自专栏cloudskyme

一步一步学lucene——(第一步:概念篇)

信息检索的概念 信息检索(Information Retrieval)是指信息按一定的方式组织起来,并根据信息用户的需要找出有关的信息的过程和技术。狭义的信息检...

44780
来自专栏魏琼东

AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境

一、前言      AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速...

228100
来自专栏CSDN技术头条

JMeter 怎么学?

大家在网上搜寻许多关于 JMeter 的应用案例时是不是有过这样的遭遇: 明明是按照文档中的内容去做的,但是好些时候总是出错,这个时候会疯狂搜索各类与问题相关的...

49260
来自专栏java达人

Redis与Memcached的区别

传统MySQL+ Memcached架构遇到的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多...

27360

扫码关注云+社区

领取腾讯云代金券