Azure IoT Edge on Raspberry Pi 3 with Raspbian

在《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卡中。

Azure IoT Edge on Raspberry Pi 3 with Raspbian

整个过程大概需要15分钟,如果TF卡速度快,那时间就会短很多。烧写完成之后,将TF卡插入树莓派3,同时,为树莓派的HDMI接上显示器、鼠标和键盘,就可以上电了。系统运行以后,在树莓派的设置中,将Enable SSH的选项勾上,如下图所示。

Azure IoT Edge on Raspberry Pi 3 with Raspbian

接下来,我们需要使用Putty连接树莓派,默认情况下,用户名是pi,密码是raspberry。

Azure IoT Edge on Raspberry Pi 3 with Raspbian

然后,我们需要运行如下指令来更新系统:

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

输出结果如下:

Azure IoT Edge on Raspberry Pi 3 with Raspbian

如果没有安装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

执行结果如下图所示:

Azure IoT Edge on Raspberry Pi 3 with Raspbian

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

其输出如下:

Azure IoT Edge on Raspberry Pi 3 with Raspbian

现在,我们需要通过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来代替。

Azure IoT Edge on Raspberry Pi 3 with Raspbian

配置结果如下,显示设置成功:

Azure IoT Edge on Raspberry Pi 3 with Raspbian

配置完成后,开始运行IoT Edge Runtime:

sudo iotedgectl start

Azure IoT Edge on Raspberry Pi 3 with Raspbian

IoT Edge Runtime运行以后,可以通过如下命令查看IoT Edge agent的运行情况:

  sudo docker ps

输出如下:

Azure IoT Edge on Raspberry Pi 3 with Raspbian

表明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部分.

Azure IoT Edge on Raspberry Pi 3 with Raspbian

至此,我们已经在树莓派上完成了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

上一篇:vue监听路由变化


下一篇:Springmvc中配置Quartz使用,实现任务实时调度。