在《Azure IoT Edge on Windows 10 IoT Core》一文中,我們以運行Windows 10 IoT Core的MinnowBoard MAX為例,詳細講述了Windows 10 IoT Core(Build 16299)的安裝、Docker的部署、Python和Iotedgectl工具的安裝、IoT Edge Device的創建、Module的部署與運行。
本文中,我們將以運行Linux的樹莓派3為例,詳細講述Raspbian系統的安裝、Python和pip工具的安裝、Docker的部署、IoT Edge Control的安裝、IoT Edge Device的創建以及Module的部署與運行。
1. 在Raspberry Pi 3 上安裝Raspbian系統
對於樹莓派3而言,Raspbian是官方支持的系統,其系統安裝就是將Raspbian燒寫到TF卡中。首先,用戶可以到樹莓派的官網下載系統(鏈接為:https://www.raspberrypi.org/downloads/raspbian ),下載的光盤鏡像文件Raspbian-stretch大約有1.7G。然后,准備一張8G、Class10 以上的TF卡,將其插入到讀卡器並連接到PC。接着,利用Etcher工具(https://etcher.io/ )把下載的系統燒錄到TF卡中。
整個過程大概需要15分鍾,如果TF卡速度快,那時間就會短很多。燒寫完成之后,將TF卡插入樹莓派3,同時,為樹莓派的HDMI接上顯示器、鼠標和鍵盤,就可以上電了。系統運行以后,在樹莓派的設置中,將Enable SSH的選項勾上,如下圖所示。
接下來,我們需要使用Putty連接樹莓派,默認情況下,用戶名是pi,密碼是raspberry。
然后,我們需要運行如下指令來更新系統:
sudo apt update && sudo apt full-upgrade –y
2. 安裝Python和pip
由於Azure IoT Edge Runtime本身就是一個Python pip,所以需要在樹莓派上安裝這個工具。如果安裝系統鏡像的時候,是最新的文件,那么Python和pip應該是2.7.13和9.0.1的版本。可以通過如下兩個指令來查看:
python --version
pip –version
輸出結果如下:
如果沒有安裝Python和pip,那么可以通過以下命令安裝:
sudo apt install python-pip -y
之后,我們需要對工具進行更新,分別鍵入如下指令:
sudo pip install --upgrade setuptools pip
sudo apt install python2.7-dev libffi-dev libssl-dev -y
執行結果如下圖所示:
3. 安裝Docker
利用Putty連接樹莓派,使用如下命令安裝Docker
curl -sSL https://get.docker.com | sudo -E sh
安裝完成之后,為當前用戶(pi)添加運行Docker的權限,
sudo usermod -aG docker pi
然后,使用如下指令重啟樹莓派:
sudo reboot
並使用下面的指令來測試Docker運行狀態:
docker run hello-world
其輸出如下:
現在,我們需要通過Docker將IoTedge Agent 和 IoTedge Hub這兩個模塊 Pull到本地,即在PowerShell中分別運行:
docker pull microsoft/azureiotedge-agent:1.0-preview
docker pull microsoft/azureiotedge-hub:1.0-preview
4. IoT Edge Device的創建
這部分可以參考《Azure IoT Edge on Windows 10 IoT Core》一文中的第4部分,在IoT Edge中創建一個名為Raspberry的IoT Edge Device,並獲得其連接字符串Connection String。
5. IoT Edge Runtime的部署與配置
首先,使用如下命令安裝IoT Edge control腳本:
sudo pip install -U azure-iot-edge-runtime-ctl
之后,通過執行如下指令來配置IoT Edge Runtime:
iotedgectl setup --connection-string "{device connection string}" --auto-cert-gen-force-no-passwords
其中的"{device connection string}"由上面第4步中保存的Connection String來代替。
配置結果如下,顯示設置成功:
配置完成后,開始運行IoT Edge Runtime:
sudo iotedgectl start
IoT Edge Runtime運行以后,可以通過如下命令查看IoT Edge agent的運行情況:
sudo docker ps
輸出如下:
表明IoT Edge hub和agent已經開始運行。
6. 部署一個Module並監控數據
這部分可以參考《Azure IoT Edge on Windows 10 IoT Core》一文中的第6部分,在Azure Portal中為Raspberry創建一個Module。
運行起來以后,用戶可以通過Azure Device Explorer工具完成數據監控,這部分內容可以參考《Azure IoT Edge on Windows 10 IoT Core》一文中的第7部分.
至此,我們已經在樹莓派上完成了Raspbian的安裝,進行了Docker的部署和Python、Iotedgectl工具的安裝,同時,在Azure Portal上完成了IoT Edge Device的創建、Module的部署與運行。同時,通過Azure Device Explorer工具監控Edge Device和Azure IoTHub數據的交互。
參考鏈接:
1. Azure IoT Edge on Windows 10 IoT Core
2. https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-simulate-device-Linux
3. https://pypi.python.org/pypi/azure-iot-edge-runtime-ctl#installation-troubleshooting
4. http://blog.jongallant.com/2017/11/azure-iot-edge-raspberrypi/
5. Azure Device Explorer工具下載:https://github.com/Azure/azure-iot-sdk-csharp/releases
我的博客即將同步至騰訊雲+社區,邀請大家一同入駐。