用Raspberry Pi搭建Azure IOT解决方案

Raspberry Pi是一款基于Linux的单板机电脑。它由英国的树莓派基金会所开发,目的是以低价硬件及自由软件刺激在学校的基本计算机科学教育。树莓派配备一枚博通(Broadcom)出产的ARM架构700MHz BCM2835处理器,256MB內存(B型已升级到512MB内存),使用SD卡当作存储媒体,且拥有一个Ethernet、两个USB接口、以及HDMI(支持声音输出)和RCA端子输出支持。树莓派只有一张信用卡大小,体积大概是一个火柴盒大小,可以运行像《雷神之锤III竞技场》的游戏和进行1080p视频的播放。操作系统采用开源的Linux系统如Debian、ArchLinux,自带的Iceweasel、KOffice等软件,能够满足基本的网络浏览、文字处理以及电脑学习的需要。

当然Raspberry Pi也可以成为最佳的IOT的终端设备,通过传感器收集数据,以供后台系统进行分析等。

一.Raspberry Pi的数据采集

本文采用Raspberry Pi 2B,有4个USB接口,一个Ethernet接口,一个HDMI接口,一个MicroSD插槽,一个3.5毫米音频插孔和复合视频,摄像头接口(CSI),显示接口(DSI),另外还有一个40Pin的GPIO接口。

我购买的淘宝链接:

https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-11372085286.12.V3rWzS&id=522217122138

价格在210元左右。

另外,Raspberry Pi的传感器有多种多样。可以通过GPIO的接口进行连接。本文采用的是集成的传感器: Sense Hat。

Sense Hat保护多种传感器:陀螺仪、加速度计、磁力仪、温度、气压、湿度。另外还包含一个8×8 RGB LED matrix和一个Joystick的活动手柄。

我购买的淘宝链接为:

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.MivT32&id=522031087011&_u=7bp4gm8c97

价格在240元左右。

将Sense Hat与Pi连接,然后系统开机上电。默认的操作系统为Linux系统Raspbian,是从Debian演进来的。关于其由来可以参考:

http://arstechnica.com/information-technology/2013/03/how-two-volunteers-built-the-raspberry-pis-operating-system/2/

在Bash Shell中编写Python2.7的程序,获得温度传感器数据:

#!/usr/bin/python

from sense_hat import SenseHat

sense = SenseHat()

sense.clear()

temp = sense.get_temperature()

print(temp)

运行此程序,可以在屏幕上打印目前的温度。

同样,可以通过get_humidity()和get_pressure()等方法获得其他传感器的数值。

具体的Sense-hat的各种python方法,请参考:

https://pythonhosted.org/sense-hat/api/

?

二.在Azure上创建Event Hub、Stream Analytics和SQL Azure DB

1.创建Event hub:

选择Custom create:

填写相应的信息后输入:

这样就创建了Event Hub的一个PaaS的服务。在配置中,创建一个Shared Access Policies:

Save以后可以获得其SharedAccessKey:

2.创建SQL Azure Database

在Azure管理界面中选择SQL DB。在Server中选择Add:

输入用户名和密码。创建SQL Server。

然后选择创建SQL Database:

创建好后,把本机的地址加入SQL的白名单:

使用SQL的客户端连接数据库:

在Options中选择数据库:

登陆后创建table:

Create table [dbo].[hwtest1] (

Time Datetime2 (6) Null,

DeviceId Varchar (16) Null,

Temperature Float (53) Null,

Humidity Float (53) Null

);

GO

Create clustered index [hwtest1] on [dbo].[hwtest1] ([DeviceId] ASC);

3.创建Stream Analytics

创建成功后,在Input中添加Input:

选择Event Hub:

然后添加Event Hub的设置:

在事件格式中选择JSON和UTF8

创建Output:

选择SQL Database,添加SQL的配置:

在Query的设置中加入下面的配置:

这里的DeviceId,Temperature,Humidity等参数必须在Python程序、Stream Analytics和SQL中相同。否则数据将不能取到。

Input、Output和Query设置好后就可以启动此Job了。

三.将Raspberry Pi的数据上传到Azure的Event Hub

在Raspberry Pi上安装Azure的SDK:

pip install azure

安装完成后,更改Azure Service Bus的endpoint。请参考:

https://msdn.microsoft.com/en-us/library/azure/dn578439.aspx

对于Python的endpoint更改:

在/usr/local/lib/python2.7/dist-packages/azure/servicebus/constants.py

修改31行的配置

#SERVICE_BUS_HOST_BASE = ‘.servicebus.windows.net‘

SERVICE_BUS_HOST_BASE = ‘.servicebus.chinacloudapi.cn‘

?

创建Python程序:

#!/usr/bin/python

from azure.servicebus import ServiceBusService

from sense_hat import SenseHat

from time import sleep

import json;

sense = SenseHat()

sbs = ServiceBusService("hwtest", shared_access_key_name="hwtest", shared_access_key_value="xxxxxx=")

while True:

temp1 = sense.get_temperature()

humi = sense.get_humidity()

press = sense.get_pressure()

temp= {‘DeviceId‘: ‘dev-01‘, ‘Temperature‘: temp1, ‘Humidity‘: humi}

sbs.send_event(‘hwtest‘, json.dumps(temp))

sleep(60)

调试程序让其后台运行。

四.查看数据

Raspberry Pi运行后,数据将发送到Azure的Event Hub。

在Pi上可以通过tcpdump查看是否有https的包发送:

tcpdump port 443

?

在Stream Analytics上可以查看事件的情况:

如果既有input又有output,说明配置正常。

在Sql客户端上查询:

Select * from hwtest1;

五.通过Excel和PowerBI对数据进行分析

目前Raspberry Pi的数据已经上传到了Event Hub,经过Stream Analytics发送到了SQL Server的表中。用户的展现可以通过Exel,PowerBI实现。

1.Exel的展现:

在Excel中选择数据,选择"自其他来源",选择"来自SQL Server"。

设置SQL Server:

选择相应的数据库和相应的表:

导入数据后,可以选择"插入",选择"数据透视图":

在进行相应的选择后,将显示数据透视图:

2.通过PowerBI实现展现

打开网站: http://powerbi.microsoft.com

下载Desktop的软件,进行安装。

在客户端软件上进行SQL的连接配置:

此时可以看到SQL中的表:

选择import:

选择相应的配置,就可以把数据以折线的形式展现出来:

至此,所有的工作结束。

?

?

?

时间: 2024-12-21 09:57:17

用Raspberry Pi搭建Azure IOT解决方案的相关文章

“云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)

"云中论道"技术课堂第一课开讲啦!微软各路技术咖们齐聚一堂,为大家带来干货不断!作为"云中论道"课堂的开课之作,我们首先邀请到了微软Azure专家级的架构师:槐长清,他为我们带来了关于"使用开源技术和Azure公有云服务快速搭建云端IoT解决方案"的精心讲解. 本文作者介绍: 微软Azure专家级架构师,江湖人称"槐长清",曾连续5年被评为微软最有价值专家,多年云计算从业经验,对微软公有云解决方案有深入研究. 涉及产品及技术:

树莓派(Raspberry Pi)搭建简单的lamp服务

树莓派(Raspberry Pi)搭建简单的lamp服务: 1. LAMP 的安装 sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql –安装mysql.apache.php sudo chmod 777 /var/www/ –设置web目录的权限 2. phpmyadmin 安装 sudo apt-get install phpmyadmin –安装后选择apache2 3.配置 sudo

使用 Raspberry Pi 上的传感器在 Node.js 中创建一个 IoT Bluemix 应用程序

先决条件 一个IBM Bluemix 帐号,一个 Raspberry Pi 2 或 3,一个 PIR 运动传感器 适用于本文的 Github 存储库 如果您是一位精明的 Bluemix 开发人员,您可能只想看看如何在 node.js 中与 IoT 建立连接,或者只想了解如何从此 github 存储库中拉取我的代码. git clone https://github.com/nicolefinnie/iot-nodejs-tutorial 以下是实现与 IBM IoT 平台连接在一起的 4 个 R

如何在Raspberry Pi 3B中安装Windows 10 IoT Core

Windows 10 IoT Core简介 Windows 10 IoT是微软专门为物联网生态打造的操作系统,Windows 10 IoT Core则是Windows 10 IoT 操作系统的核心版本,功能相对精简.使用Windows 10 IoT可以打造属于自己的物联网生态系统. Windows 10 IoT的版本介绍 Windows 10 IoT 企业版 Windows 10 IoT 企业版将 Windows 10 企业版功能广泛应用于零售.制造.医疗.金融和其他行业的设备上.Windows

从零开始搭建Raspberry Pi机器视觉编程环境

从零开始搭建Raspberry Pi机器视觉编程环境 本文主要包括如下内容: 安装Raspbian系统 连接和设置网络 安装中文支持 用电脑控制树莓派 通过SSH远程登录树莓派命令行界面 安装VNC远程登录树莓派图形桌面 通过串口连接树莓派 安装OpenCV及相关开发包 一键备份树莓派SD卡 1 安装Raspbian系统 拿到树莓派后第一件事当然是装系统.安装树莓派系统所需配置: 1个输出5V,>700mA(通常选择1A或2A)的USB电源适配器 1根micro USB线(安卓线) 1张拷贝好系

树莓派3(Raspberry Pi 3)安装Win10 IoT Core

·树莓派3(Raspberry Pi 3)安装Win10 IOT 1.格式化SD卡(用SDFormatter工具) 2.下载noobs lite即可(https://www.raspberrypi.org/downloads/noobs/),解压到SD卡中,启动Raspberry Pi 3 3.然后进入安装,先win10(或预览版,前提是Insiders体验者),安装过程有点慢,耐心等待(中途重启有可能得回头再重装) 4.安装完成后管理 Http://树莓派ip:8080 用户名:adminis

Windows 10 IoT on Raspberry Pi 2

https://ms-iot.github.io/content/en-US/win10/SetupRPI.htm http://ms-iot.github.io/content/en-US/win10/ReleaseNotes.htm https://ms-iot.github.io/content/en-US/win10/tools/CommandLineUtils.htm https://connect.microsoft.com/windowsembeddedIoT/Downloads/

Raspberry pi设置自动拨号,搭建无线路由环境

Raspberry pi设置自动拨号,搭建无线路由环境 前言 raspberry pi(树莓派), 是一款针对电脑业余爱好者.教师.小学生以及小型企业等用户的迷你电脑,由于可以烧录Linux操作系统,因此可以衍生出各种各样的使用途径,诸如控制版,爬虫机器,个人vps,门禁系统-..本文主要介绍如何在raspberry pi上面完成pppoe拨号上网功能,以及如何利用raspberry pi完成路由转发功能,进而将其作为一个家用无线路由器来使用. 准备环境 raspberry pi 三代 b+版

[IOT] - Raspberry Pi 3B + Windows 10 IOT Core + .Net Core Web 部署

硬件:Raspberry Pi 3B 系统:Windows 10 IOT Core 应用:.Net Core Web 部署流程 1. 系统安装 1.1 下载并安装 Windows 10 IoT Core Dashboard,使用该工具将 Flash.FFU 映像文件刷入 SD 卡. https://docs.microsoft.com/en-us/windows/iot-core/downloads 1.2  Flash.FFU 映像刷入完成后,即可插入树莓派进行 Windows Iot 系统启