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,完成更多的功能。

时间: 2024-10-14 05:29:39

Microsoft IoT Starter Kit 开发初体验-反馈控制与数据存储的相关文章

Microsoft IoT Starter Kit 开发初体验

1. 引子 今年6月底,在上海举办的中国国际物联网大会上,微软中国面向中国物联网社区推出了Microsoft IoT Starter Kit ,并且免费开放1000套的申请.申请地址为:http://aka.ms/iotkits,目前仍然有效.当时一开放申请,我就在线填写了申请表,接下来就是长长的等待.相信很多朋友都是一样,在经过几个月的等待之后,终于拿到了这个开发套件,而有些朋友估计还在等待中.因为官方是一个月处理并邮寄一批,速度不是很快.但是,在经过了一段时间使用以后,我可以说,如果朋友们期

Xamarin.iOS开发初体验

Xamarin是一个跨平台开发框架,这一框架的特点是支持用C#开发IOS.Android.Windows Phone和Mac应用,这套框架底层是用Mono实现的. Mono是一款基于.NET框架的开源工程,包含C#语言编译器.CLR运行时和一组类库,能运行于Windows.Linux.Unix.Mac OS和Solaris.对于.NET程序员来说,Xamarin是走向安卓.iOS.Mac跨平台开发的神器,不仅能用熟悉的C#来开发,还能使用Visual Studio作为IDE.本文内容是Xamar

程序开发初体验

程序开发初体验 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 20 10 ? Estimate ? 估计这个任务需要多少时间 20 10 Development 开发 370 380 ? Analysis ? 需求分析 (包括学习新技术) 30 20 ? Design Spec ? 生成设计文档 60 20 ? Design Review ? 设计复审 10 10 ? Coding St

linux 驱动模块开发初体验

2020-02-09 关键字: 在嵌入式 Linux 开发中,驱动程序通常都是用 C语言 来编写的,并经编译后生成为目标文件,即 '.o' 文件.随后又可在编译系统时以两种形式打包成系统镜像文件: 1.uImage 即内核的二进制文件.这种形式是直接将内核驱动程序打包进系统文件中.这种形式的驱动程序将会在内核加载时运行,即随系统启动而运行.这种形式的驱动预置在一定程度上会影响系统的开机耗时. 2.ko 文件 即 kernel object,这种形式是将驱动程序以独立的模块文件存在于系统中.这种形

OS开发UI篇—ios应用数据存储方式(归档)

OS开发UI篇—ios应用数据存储方式(归档)  一.简单说明 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同一个文件夹下面,且主要用于存储应用的设置信息) 归档:因为前两者都有一个致命的缺陷,只能存储常用的类型.归档可以实现把自定义的对象存放在文件中. 二.代码示例 1.文件结构 2.代码示例 YYViewController.m文件 1 // 2 // YYViewController.m 3 // 02

iOS开发UI篇—ios应用数据存储方式(归档)

iOS开发UI篇-ios应用数据存储方式(归档)  一.简单说明 在使用plist进行数据存储和读取,只适用于系统自带的一些常用类型才能用,且必须先获取路径相对麻烦: 偏好设置(将所有的东西都保存在同一个文件夹下面,且主要用于存储应用的设置信息) 归档:因为前两者都有一个致命的缺陷,只能存储常用的类型.归档可以实现把自定义的对象存放在文件中. 二.代码示例 1.文件结构 2.代码示例 YYViewController.m文件 1 // 2 // YYViewController.m 3 // 0

iOS开发UI篇—ios应用数据存储方式(偏好设置)

iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置.比如,保存用户名.字体大小.是否自动登录 存储位置: 存储形式: 二.代码示例 1.storyboard 2.代码 1 // Created by 鑫 on 14-10-24. 2 // Copyright (c) 2014年 梁镋鑫.

Android开发之利用SQLite进行数据存储

Android开发之利用SQLite进行数据存储 Android开发之利用SQLite进行数据存储 SQLite数据库简单介绍 Android中怎样使用SQLite 1 创建SQLiteOpenHelper对象并创建表 2 通过SQLiteDatabase对象运行增删改查操作 3 SQLiteDatabase之事务transaction 1.SQLite数据库简单介绍 SQLite.是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包括在一个相对小的C库中.它是D.RichardHip

Android与iOS开发对比系列】之 数据存储

Android与iOS开发对比系列]之 数据存储 写在前面的话 相比Android和iOS,我觉得Android的数据存储更开放一些.Android天生就可以使用多Java I/O:并且天生开放的特性,开发者可以直接在SD卡中读写文件,自由度比较高.缺点吗,也是因为太开放,所以Android的相册和文件夹都惨不忍睹. Android本身自带Java的反射和注解,很早就有了ORM数据库.这里解释一下,ORM就是 Object Relation Mapping, 对象关系映射. 通过建立对象来生成数