zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    随笔 -- NIO -- 相关 -- 系统概述
    Java -- 新IO -- 目录
    Dubbo -- 系统学习 笔记 -- 示例 -- 泛化引用
    Dubbo -- 系统学习 笔记 -- 示例 -- 结果缓存
    Dubbo -- 系统学习 笔记 -- 示例 -- 参数验证
    Dubbo -- 系统学习 笔记 -- 示例 -- 分组聚合
    Dubbo -- 系统学习 笔记 -- 示例 -- 多版本
    Dubbo -- 系统学习 笔记 -- 示例 -- 服务分组
    Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心
    Dubbo -- 系统学习 笔记 -- 示例 -- 多协议
  • 原文地址:https://www.cnblogs.com/dearsj001/p/AzureIoTEdge4RaspberryPi.html
Copyright © 2011-2022 走看看