「雲中論道」之——使用開源技術和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

相關文章
相關標籤/搜索