随笔 - 249  文章 - 1  评论 - 1207  阅读 - 61万

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   施炯  阅读(1629)  评论(3编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示