大數據

“0”基礎物聯網IOT開發實踐(下)——阿里雲 MVP程磊

【MVP時間】線上峰會,一鍵收藏

《“0”基礎物聯網IOT開發實踐》精彩直播

查看上篇文章,點擊這裡。

三、基於阿里雲的遠程點燈實驗

上面我們用樹莓派4控制了硬件(Arduino),接下來我們用阿里雲來控制我們的設備。主要分為三個步驟:

(一)阿里雲IOT註冊與產品創建

在將設備連接到阿里雲之前,我們需要登錄阿里雲IOT的網站首頁創建一個賬號,然後開通並啟用物聯網平臺,然後進入如下操作:

1.創建產品

產品是物聯網產品的基本單元,每個產品下面會有一個或多個一模一樣的設備,所以產品是我們描述一個設備功能的一個模板。點擊設備管理中的產品進入產品頁面創建產品,簡單起見選擇自定義品類,直連設備 ,連網方式根據實際情況選擇,數據格式選擇Alink JSON , 認證方式選擇設備密鑰,點擊保存即可完成創建。

2.添加功能

在產品頁面中,我們定義一個物模型,然後添加一個自定義功能,本例中就是開關,數據類型是bool型,通過0和1來實現燈的關和開,如下圖所示。通過發佈,我們就在阿里雲IOT上有了一個帶開關屬性的產品。
image.png

3.添加設備

完成產品後,我們就需要從平臺申請設備了,只有申請了設備,才能獲得平臺的登錄資格,也才能將我們的真實物理設備與平臺的雲端虛擬設備對應綁定起來。點擊菜單設備管理 ,設備,在下拉菜單裡選擇我們之前新建的產品,然後點擊添加設備,即可創建一個設備。創建完成之後,設備詳情頁中我們已經可以看到設備連接雲端的密鑰了,一共三個,一個產品ID 一個設備ID,和密鑰,密鑰是隱藏的,點擊查看即可顯示,此參數注意保密不要洩露。密鑰我們會在設備上用到,需要先保存下來。

(二)設備連接阿里雲

1.安裝依賴庫

阿里雲使用的是mqtt協議,因此在連接阿里雲之前我們可以通過如下代碼安裝mqtt庫:
python3 -m pip install paho-mqtt

2.修改程序

首先到https://www.yuque.com/miniqiang/swxcv8/xwgp5w#b5676800下載程序源碼壓縮包,其中所包含的程序和介紹如下圖所示:

  • aliLink.py :阿里雲登錄相關協議支持
  • mqttd.py :mqtt服務
  • rpi.py :獲取系統數據與控制led函數
  • run.py :主函數

按照如下圖所示修改其中的三元素和topic並保存,這樣我們的設備就能夠有權限登錄阿里雲IOT了。
image.png

3.運行程序

我們需要使用shell來啟動程序,所以我們需要在shell下將工作目錄移動到code目錄下,然後運行主程序。隨後,設備就會與阿里雲正常通訊,每隔10秒上報一次自己的數據,並且會自動響應雲端控制指令

4.雲端調試

我們前往IOT後臺,在控制檯頁面選擇產品服務 , 搜索關鍵字IOT,點擊物聯網平臺鏈接確認我們的設備已經在線了,並且可以看到最後在線時間。點擊查看連接進入詳情頁,運行狀態下就可以看到上報的數據了。打開實時刷新功能,就看到我們的設備上報數據了,各種系統數據一目瞭然,並且會自動刷新,我們亦可通過在線調試選項卡向設備下發指令進行控制調試。

(三)IOT Studio WEB可視化

通過註冊阿里雲和設備連接阿里雲兩個步驟,我們可以通過阿里雲給樹莓派4發送消息,在樹莓派接收到消息後再通過USB給Arduino發送指令,控制Led燈的開關,就實現了基於阿里雲的遠程點燈試驗。但是,畢竟不是可視化的應用,用起來還是有些麻煩,因此我們可以使用阿里雲的IOT Studio WEB可視化開發來開發一個可視化的工具。

首先我們選擇IoT Studio的開發服務,選擇新建項目,創建好項目後,快速關聯上之前的產品和設備,讓IoT Studio 能夠訪問到我們的設備數據源;然後,選擇WEB可視化開發菜單,進入web可視化開發頁面,創建一個web可視化應用,點擊組件,選擇開關,選擇開關組件對應的設備以及對應設備的屬性即可。通過以上,我們便得到了一個如下圖所示的非常簡單的web應用,可以通過該應用來控制我們Arduino設備上Led燈的開關。
image.png

四、由簡單到複雜,走進物聯網開發

上文我們基於物聯網開發的點燈實驗,由淺到深的介紹了物聯網開發的基本套路。基於上文的實驗,如果我們在樹莓派4上連接繼電器,通過繼電器連接其他更加複雜的設備(需要注意的是一般需要外接電源,單獨接樹莓派4的話會供電不足,造成設備無法使用),就可以逐步實現功能更加複雜的物聯網應用。通過阿里雲控制遠程物聯網設備的命令執行順序大致如下:
(1)我們通過阿里雲發佈指令;
(2)阿里雲下傳指令到樹莓派4;
(3)樹莓派4通過USB線傳輸指令到繼電器;
(4)通過繼電器上電路的開關來控制繼電器上連接的設備。
image.png

在以上實驗的基礎上,我們可以進行更復雜的案例,比如基於IOT的自助汽車充氣吸塵裝站、全自動自助洗車房、無人售貨櫃等等,也許大家會覺得很複雜,但是要只要深刻理解了“點燈實驗”的原理,那麼無論再複雜的應用,都可以被分解為無數個點燈實驗!行動起來吧!

關鍵詞:樹莓派4、物聯網開發、IOT開發、Arduino、阿里雲

《“0”基礎物聯網IOT開發實踐》精彩直播

查看上篇文章,點擊這裡。

Leave a Reply

Your email address will not be published. Required fields are marked *