zoukankan      html  css  js  c++  java
  • “云中论道”之——使用开源技术和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的创建和设置。

    • EVENT HUB创建和设置:

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

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

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

       

        • SQL数据库创建和设置:

        • 创建AvgReadings表:

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

          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

  • 相关阅读:
    Windows 系统变量大全
    linux编程
    CSS 对齐操作
    php 和 表单 简单交互
    HTML <input> placeholder 属性
    HTML <label> 标签
    Chap-4 Section 4.4 C++相关问题
    Chap-4 Section 4.3 COMMON块
    Chap-4 Section 4.2.4 指令修正方式
    Chap-4 Section 4.2.3 符号解析
  • 原文地址:https://www.cnblogs.com/zangdalei/p/7349553.html
Copyright © 2011-2022 走看看