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

本解决方案为系列文章,包含上、下两篇。在上周的《使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(上)》一文中,咱们为你们介绍了Raspberry Pi的设置和温度传感器的安装调试;本篇,咱们会为你们继续介绍接下来的关于“Azure相关服务的建立和配置、Python Azure应用程序的代码逻辑以及经过Power BI进行数据验证”的流程,最后对解决方案进行总结。

本文做者介绍:

 

微软Azure专家级架构师,江湖人称“槐长清”,曾连续5年被评为微软最有价值专家,多年云计算从业经验,对微软公有云解决方案有深刻研究。


解决方案流程:

* 有关解决方案架构和前半部分流程1. 对Raspberry Pi进行OS的安装和设置, 2. Raspberry Pi的无线LAN的设置和与PC的链接,以及3.温度传感器的安装调试,请阅读《使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(下)》。

4Azure相关服务设置:

本环节分为三个部分:Event HUB的建立和设置,SQL Database的建立和设置,和StreamAnalytics的建立和设置。php

  • EVENT HUB建立和设置:前端

  • 注意记录事件集线器名称和命名空间名称,后面流程会用到。格式是:https://ksevent.servicebus.chinacloudapi.cn/ksevent 其中前面的ksevent是命名空间名称,后面的ksevent是事件集线器名称。python

    指定分区和消息保留有效期:数据库

  • Stream analytics访问共享的访问策略设置:json

     

      • SQL数据库建立和设置:bootstrap

      • 建立AvgReadings表:后端

        AvgReadings表中WinStartTime,WinEndTime,DeviceID,SensorID,SensorType,SensorValueapi

        AvgSensorValue,Eventcount的定义:服务器

                                                                 
    Stream Analytics的建立和设置: 
  • EventHUB➡Streamanalytics➡SQL架构

    EventHUB➡Streamanalytics➡BI

    这2个Streamanalytics的定义:

    Input设置(指定EventHub):

    选择前面步骤中建立的EventHub,选择EventHub中的时间中心策略名:

     

    Output设置(指定SQL服务器):

    选择前面步骤中建立的SQLDatabase,选择AvgReadings表:

  • Stream Analytics的Query设置:

    kseventin从EVENT HUB筛选DeviceId, SensorId, SensorType,SensorValue数据:

能够看到SQL数据库中收到的通过StreamAnalytics进行筛选后的数据:

5.    RaspberryPi Python Azure 程序

通过上面对Azure相关服务的建立和设置步骤的分享,你们应该可以发现:1,服务建立和配置很是简单;2,不一样服务间的链接彻底是Azure原生提供,彻底再也不须要用户去处理不一样服务间的衔接问题。

而本步骤,则是本解决方案的重中之重,也是惟一须要用户本身写代码的地方,不过不用担忧,代码量之少,多是你们想象不到的。

安装和更新Python、PHP、Socket、HTTP/REST、AzureSDK等一系列相关模块:

root@raspberrypi:/home/pi# apt-get update

root@raspberrypi:/home/pi# apt-get upgrade

root@raspberrypi:/home/pi# apt-get install python-requests

root@raspberrypi:/home/pi# apt-get installssl-cert

root@raspberrypi:/home/pi# apt-get install php5-json

root@raspberrypi:/home/pi# apt-get install php5-dev

root@raspberrypi:/home/pi# curl https://bootstrap.pypa.io/get-pip.py | sudo python

root@raspberrypi:/home/pi# pip install SoftLayerrequests==2.5.3

root@raspberrypi:/home/pi# pip install httplib2

root@raspberrypi:/home/pi# pip install certifi

root@raspberrypi:/home/pi# pip install urllib3

root@raspberrypi:/home/pi# apt-get installlibio-pty-perl

root@raspberrypi:/home/pi# pip install stdeb

root@raspberrypi:/home/pi# apt-get install python-dev libffi-dev libssl-dev

root@raspberrypi:/home/pi# pip install SoftLayerrequests== six-1.9.0

root@raspberrypi:/home/pi# pip install --upgrade ndg-httpsclient

root@raspberrypi:/home/pi# pip install azure

root@raspberrypi:/home/pi# pip install SoftLayer azure==1.0.0

得到EVENTHUB SharedAccessName和SharedAccessKey:

选择kseventEvent Hub,查看Endpoint和SharedAccessKey:

至此,代码已经完成,几十行的代码量。

6.    数据验证:

数据被从温度传感器经过树莓派收取到EventHub,StreamAnalytics对其进行了筛选,筛选完成后的数据已经存放到了SQLDatabase中,下一步,咱们即可以经过PowerBI对数据进行分析展示:

Power BI有专门的接口,能够很是方便的链接到SQL Database(下图左);以后,即可以使用PowerBI对SQLDatabase中存储的温度湿度等数据进行分析展示(下图右):

另外,PowerBI不只能够接受SQLDatabase中存储数据的输入,也能够接受StreamAnalytics的输入,从而能够对Stream数据进行实时展示:

Tips:

若想成功链接Power  BI和中国版Azure  SQL Database,须要将Power BI的IP地址范围加入到Azure  SQL Database的“容许的IP地址”列表,好比我使用的是微软MSIT提供的Power  BI服务,我就能够把MSIT提供Power  BI服务所使用的IP地址范围191.238.0.0-191.238.255.255进行添加:

以后即可以使用PowerBI对中国版AzureSQL Database中的数据进行分析展示了。

总结:

至此,IoT解决方案的全部流程已经完成,从前端的数据收取,到后端的数据分析展示。对Azure用户来讲,只须要本身完成很是少的代码,其他整个流程,Azure都会帮你完成。整个解决方案的搭建和完成,不会超过半天时间。另外整个系统再也不须要用户本身进行运维管理,能够说彻底是对IoT行业的变革。

另外,本解决方案基于树莓派,基于Linux平台,使用Python语言,为你们提供了更高难度升级下的解决方案。若是你们使用Windows10 IoT操做系统,使用.Net进行开发,那样会更简单,代码量会更少。我有客户使用Arduino进行传感器数据的收发,由于硬件过于简单、并只支持HTTP协议,安装AzureSDK的方便度低于Linux平台和Windows平台,但在双方努力下,微软团队利用AzureEvent Hub提供的RESTAPI,成功帮助客户使用Azure相关服务,并快速搭建起了IoT解决方案。

除了本文列举的服务以外,还能够:

  • 与Azure提供的MediaService服务进行集成,构建智能监控解决方案;

  • 与HDInsight服务进行集成,构建大数据分析解决方案;也能够

  • 与Mobile Service服务进行集成,构建移动端解决方案等解决方案。

更多解决方案,等您来发掘! 

Azure一直都在奉行一个理念:下降技术成本,让用户关注本身的的业务逻辑;而Azure帮您解决了数据的收取,数据的筛选,数据的分析展示等一系列相关流程,同时还帮您对这些相关系统进行管理和维护,而其余的业务逻辑,则是读者您大显身手的地方!使用Azure搭建IoT解决方案,快人十步!

最后,小编还有一个呼吁:

 

当即访问http://market.azure.cn

相关文章
相关标签/搜索