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

clip_image002

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

clip_image004

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

clip_image006

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

          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

        输出结果如下:

clip_image008

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

        执行结果如下图所示:

clip_image010

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

        其输出如下:

clip_image012

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

clip_image014

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

clip_image016

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

          sudo iotedgectl start

clip_image018

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

          sudo docker ps

        输出如下:

clip_image020

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

clip_image022

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

 

我的博客即将同步至腾讯云+社区,邀请大家一同入驻。

posted on 2017-12-11 09:58  施炯  阅读(1608)  评论(3编辑  收藏  举报