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,完成更多的功能。
Microsoft IoT Starter Kit 开发初体验-反馈控制与数据存储的更多相关文章
- Microsoft IoT Starter Kit 开发初体验
1. 引子 今年6月底,在上海举办的中国国际物联网大会上,微软中国面向中国物联网社区推出了Microsoft IoT Starter Kit ,并且免费开放1000套的申请.申请地址为:http:// ...
- Microsoft IoT Starter Kit
Microsoft IoT Starter Kit 开发初体验 1. 引子 今年6月底,在上海举办的中国国际物联网大会上,微软中国面向中国物联网社区推出了Microsoft IoT Starter K ...
- Xamarin.iOS开发初体验
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0
- IOS开发初体验
IOS开发初体验 搭建开发环境 不多说什么了,开发环境的搭建太简单了,上App Store搜索XCode下载就行了,说多了都是眼泪 创建第一个IOS项目--HolleIOS 创建工程 选择工程创建位置 ...
- 中文代码示例之NW.js桌面应用开发初体验
先看到了NW.js(应该是前身node-webkit的缩写? 觉得该起个更讲究的名字, 如果是NorthWest之意的话, logo(见下)里的指南针好像也没指着西北啊)和Electron的比较文章: ...
- Online开发初体验——Jeecg-Boot 在线配置图表
Online开发——初体验(在线配置图表) 01 通过JSON数据,快速配置图形报表 02 通过SQL数据,快速配置图形报表 03 图表模板配置,实现不同数据源图表合并展示 04 图表布局,支持单排. ...
- Apache Beam入门及Java SDK开发初体验
1 什么是Apache Beam Apache Beam是一个开源的统一的大数据编程模型,它本身并不提供执行引擎,而是支持各种平台如GCP Dataflow.Spark.Flink等.通过Apache ...
- 使用.NET 6开发TodoList应用(4)——引入数据存储
需求 作为后端CRUD程序员(bushi,数据存储是开发后端服务一个非常重要的组件.对我们的TodoList项目来说,自然也需要配置数据存储.目前的需求很简单: 需要能持久化TodoList对象并对其 ...
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存 ...
随机推荐
- HDU 3265 Posters
矩形面积并,一个拆成四个 #include<cstdio> #include<cstring> #include<cmath> #include<map> ...
- (中等) CF 585B Phillip and Trains,BFS。
The mobile application store has a new game called "Subway Roller". The protagonist of the ...
- [转]hibernate三种状态详解
本文来自 http://blog.sina.com.cn/u/2924525911 hibernate 三种状态详解 (2013-04-15 21:24:23) 转载▼ 分类: hibernate ...
- jquery中:input和input的区别分析
:input表示选择表单中的input,select,textarea,button元素,input仅仅选择input元素. <html> <head> <style&g ...
- iOS KVC setValuesForKeysWithDictionary的使用
Key Value Coding Key Value Coding是cocoa的一个标准组成部分,它能让我们可以通过name(key)的方式访问property, 不必调用明确的property ac ...
- NSURL 子串截取
NSURL *url = [NSURL URLWithString:@"http://reg.email.163.com/unireg/call.do?cmd=register.entran ...
- Windows Server 2012 安装sqlserver2008 小记
1.拷贝大文件被阻止 解决方案:把大文件压缩成小文件... 据说关闭防火墙会好点,没试验过. 2.安装第一步,提示没有安装.net framework 3.5 sp1 ,使用服务器管理器,添加角色 ...
- 从字符串拼接看JS优化原则
来自知乎的问题:JavaScript 怎样高效拼接字符串? 请把以下用于连接字符串的JavaScript代码修改为更高效的方式: var htmlString ='< div class=”co ...
- SSO单点登录设计
关键字: 单点登录 SSO Session 单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一些小问题,在不同的应用环境中可以采用 ...
- 【解决】System.Web.Http.Description 缺失
一.问题描述 使用visual studio 2013创建mvc4 api模板,然后build,run,broken,出错如下: Error 1 The type or namespace name ...