“云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)
“云中论道”技术课堂第一课开讲啦!微软各路技术咖们齐聚一堂,为大家带来干货不断!作为“云中论道“课堂的开课之作,我们首先邀请到了微软Azure专家级的架构师:槐长清,他为我们带来了关于“使用开源技术和Azure公有云服务快速搭建云端IoT解决方案”的精心讲解。
本文作者介绍:
微软Azure专家级架构师,江湖人称“槐长清”,曾连续5年被评为微软最有价值专家,多年云计算从业经验,对微软公有云解决方案有深入研究。
涉及产品及技术:
树莓派(Raspberry Pi)、DebianLinux、Python、Azure,看到上面提到的技术,聪明的读者是不是认为走错了方向?这还是微软技术分享吗?这纯粹就是开源技术分享,中间夹杂了一点Azure而已么?
这就要从微软开源谈起了,其实微软现在完全是拥抱开源的态度,所以,大家没有看错,我们确实就是要向大家展示,对于使用非微软平台和技术的用户,Azure如何帮助大家快速搭建IoT平台。所以,在这个解决方案里面,您将不会看到Windows 10 IoT操作系统,也不会看到.Net开发环境。另外,本文不只讲理论,本文会一步一步带着大家真正实现IoT完整解决方案。
其实本文也是我为一个真实客户提供的Azure IoT解决方案的技术总结和分享。希望通过本文讲解,能让大家能够更加深入的了解到Azure IoT解决方案究竟能够做到什么,另外具体该怎么做;还有就是通过本文,大家可以了解到Azure对开源异构系统的支持情况。
IoT解决方案架构:

通过架构图我们可以看到,我们会使用温度传感器ADT7410,树莓派RaspberryPi 2,无线网卡模块,WiFi路由器,最终连接到Internet,然后通过Azure进行云端的数据处理,最终将处理的数据进行数据分析展现。
解决方案流程:
本解决方案的大致流程为:通过Raspberry Pi读取ADT7410温度传感器的温度值,然后Raspberry Pi会通过WiFi模块将收到的温度值实时上传到Azure事件中心服务(AzureEvent Hub),然后Stream Analytics服务会对Azure事件中心服务中收集上来的温度数据进行实时处理,并将处理完成后的数据存储到SQL Database服务中,最后我们会通过Power BI对Stream Analytics或SQL Database中的数据进行分析和展现。

|
因为流程比较长,所以我们将本解决方案做成系列文章,分两篇文章进行发布,其中本篇文章为大家介绍流程1-3,也就是Raspberry Pi的设置和温度传感器的安装调试部分;而在下一篇文章中,我们会为大家继续介绍流程的4-6,Azure相关服务的创建和配置、Python Azure应用程序的代码逻辑以及通过Power BI进行数据验证,最后对解决方案进行总结。 |
1. 对Raspberry Pi进行OS的安装和设置:
安装Linux操作系统,将OS写入到microSD,用以启动Raspberry Pi:
本解决方案中我们选择Debian RASPBIAN,可从http://www.raspberrypi.org/downloads/进行下载,注意选择2015-05-05-raspbian-wheezy.img镜像。如图:

将下载的镜像写入microSD,本解决方案中我们选择使用Win32 Disk Imager v0.9.5,可从http://sourceforge.net/projects/win32diskimager/进行下载,下载下来的文件名为:Win32DiskImager-0.9.5-install.exe。写入流程如图,注意来源选择2015-05-05-raspbian-wheezy.img镜像,目标Device选择microSD所在驱动器:

使用TeraTerm对RaspberryPi进行管理:
使用串口和USB转换模块连接Raspberry Pi和PC,如图:


从https://osdn.jp/projects/ttssh2/releases/63767下载TeraTerm,本解决方案使用的是teraterm-4.88.exe。对TeraTerm进行配置:TeraTerm 进行COM端口的设置,选择USB连接转换模块,并进行COM波特率设置,设置为为115200,启用控制台进行登录,连接到Rapberry,如下图(左);配置好后,即可对Raspberry Pi进行管理,如下图(右):

对OS进行设置:
Pi用户密码和root管理员密码更改:

OS文件系统扩充:
执行raspai-config,选择ExpandFilesystem,如图:


RaspberryPi的无线LAN的设置和与PC的连接:
这一部分,跟所使用的无线网卡模块和WiFi路由器的具体配置具有相关性,大家可以按照自己所使用的无线LAN和WiFi路由器的使用说明进行配置。需要注意一定要选用Raspberry默认已经集成驱动的无线LAN。
配置完成后,Raspberry Pi即可接入网络,我们便可使用TeraTerm通过IP对Raspberry进行管理。关闭Raspberry Pi之后,可以移除USB串口转换线缆。

3. 温度传感器的安装调试:
物理安装,如图:


配置I2C模块:
再次运行raspi-config,配置运行I2C内核模块,以及设置为默认开机加载:

向/etc/modules中添加i2c-dev模块:


I2cdetect命令查看ADT7410设备总线地址:

验证ADT7410温度传感器工作和连接是否正常,adt7410.py验证测试程序:

做完以上几步,树莓派和温度传感器相关的安装和配置已经完成,在下一篇文章里面,我将为大家讲述Azure相关服务的设置,其中包括Event Hub的创建和设置,SQLDatabase的创建和设置以及Stream Analytics的创建和设置。另外还会为大家详细介绍Raspberry Pi Python Azure程序的代码逻辑和如何通过Power BI进行数据验证。
更多信息,我们下一期文章再见!敬请期待!
最后,小编还有一个呼吁:
立即访问http://market.azure.cn
“云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)的更多相关文章
- Windows Azure公有云服务相关方案
http://www.cnblogs.com/sennly/p/4139675.html 1.公有云平台服务简介 Windows Azure 是一个灵活而开放的云平台,通过该平台,您可以在数据中心快速 ...
- Azure China (6) SAP 应用在华登陆 Windows Azure 公有云
<Windows Azure Platform 系列文章目录> 2014年07月11日 由世纪互联运营的 Windows Azure 为 SAP 应用提供公有云平台 2014 年 ...
- 微软Azure公有云个人用户是否能支付得起?
个人建立自己的站点是普通"白领"的愿望.由于,我们的大脑分泌的脑汁须要排泄渠道.怎么办呢? 依据微软公有云的公开报价(Pricing),租用单核CPU.0.75GB内存,20GB硬 ...
- Azure China (1) Azure公有云落地中国
<Windows Azure Platform 系列文章目录> 微软公有云Microsoft Azure已经落地中国,官方网址:http://www.windowsazure.cn/. 在 ...
- 在Windows Azure公有云环境部署企业应用
作者 王枫 发布于 2014年4月5日 企业内部应用转换为在线服务 Windows Azure已经成为众多IT服务提供商们热议的话题,其中,有的认为只有提供互连网用户服务的应用才适合放在公有云环境内运 ...
- 15分钟完成基于Azure公有云搭建远程测试环境
- 微软公有云Windows Azure 2014-03-26 国内正式商用
新浪科技讯 3月27日早间消息,微软国昨天下午宣布由世纪互联负责运营的Microsoft Azure公有云服务正式商用.这是国内首个正式商用的国际公有云服务平台.而开正式开放商用,意味着任何企业现在都 ...
- 大会聚焦 | 开源技术盛会LinuxCon首次来到中国,大咖齐聚关注业界动态
2017年6月19-20日,开源技术盛会LinuxCon + ContainerCon + CloudOpen(LC3)首次在中国举行.两天议程满满,包括 17 个主旨演讲.8 个分会场的 88 场技 ...
- 聪明的Azure CDN,帮你找到云端捷径
你知道吗?身处上海和纽约的两个用户同时通过网络收看“春晚”直播,纽约播放得可能比上海还要更流畅,这当然不是因为纽约距离北京的直播机房更近或者网速更快,而是因为大年夜在大洋彼岸围观“春晚”的观众相对较少 ...
随机推荐
- Python学习 day15
一.内置函数(共68个) 1.作用域相关(2) locals(*args, **kwargs) -- 返回本地作用域中的所有名字 globals(*args, **kwargs) -- 返回全 ...
- 安卓与windows
windows phone 还是PC啊?windows PC的话,应该就是你现在用的电脑系统吧,PC系统和安卓是不一样的,安卓是移动设备系统,基于的构架也不同,意思就是电脑上装不上安卓,移动设备也装不 ...
- 后台微信开发入口+关键字 回复等 关注公众号回复 注意获取随机Token 微信的对接校验Token保存到数据库的只是做第一次的校验 其他对微信公众号的操作是去缓存中获取7200S的随机Token
package com.epalmpay.controller.apiweixin; import com.epalmpay.commom.BaseController;import com.epal ...
- react大纲
课程大纲: https://miaov.com/index.php/news/newsDetail/nid/263 原文件 Npm 基本使用 切换镜像, 国内的网络访问 npm 服务器可能比较慢, ...
- Asp.net MVC中repository和service的区别
在Asp.net MVC controller的底层,常常有提到repository和service layer, 好像都是逻辑相关的层,那么它们到底是什么区别呢? 简单的说: repository就 ...
- linux 查看端口,开启新端口
一.查看端口被占用命令 1.lsof -i:端口号 2.netstat -tunlp|grep 端口号 3.netstat -anp 查看哪些端口被打开 上面命令是查看端口被进程占用的情况 二.开启新 ...
- SpringMVC的参数绑定
一.@RequestMapping注解说明 通过@RequestMapping注解可以定义不同的处理器映射规则. URL路径映射 @RequestMapping(value="/item ...
- 个人总结——Beta版本
我们这次项目因为种种原因失败了,没办法达到预期的效果,这一点着实让人难过.但是作为一门课程,并不能说因为此次项目的失败就完全一无所获.在不断遇到困难和解决困难中学习,成长.虽然失败,但此次失败的经验教 ...
- 周记4——vue中动态添加图片无效、build上线后background-image路径问题
又是一个周五,又一周要过去了...很开心,这周遇到了vue中的一个比较常见的坑,网上随便一搜就有了很多解决方案...“幸运”的是,我选了一个带坑的方案...所以我觉得有必要记录一下这个“坑中坑”... ...
- Java并发编程之volatile关键字解析
一内存模型的相关概念 二并发编程中的三个概念 三Java内存模型 四深入剖析volatile关键字 五使用volatile关键字的场景 volatile这个关键字可能很多朋友都听说过,或许也都用过.在 ...