Azure IoT Edge on Raspberry Pi 3 with Raspbian

简介:

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

 




本文转自灵动生活博客园博客,原文链接:http://www.cnblogs.com/dearsj001/p/AzureIoTEdge4RaspberryPi.html ,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
70 4
|
4月前
|
Web App开发 编解码 监控
【Azure 媒体服务】Azure Media Player 在Edge浏览器中不能播放视频问题的分析与解决
【Azure 媒体服务】Azure Media Player 在Edge浏览器中不能播放视频问题的分析与解决
|
4月前
|
物联网 C# C++
【Azure 事件中心】 Event Grid(事件网格)+Azure Functions处理IOT Hub中的消息
【Azure 事件中心】 Event Grid(事件网格)+Azure Functions处理IOT Hub中的消息
|
4月前
|
存储 SQL JSON
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
【Azure IoT Hub】从设备端如何向IOT发送海量数据,可以使用从设备到IoT连接的直接传输吗?如何把IoT Hub中的数据存储到Azure Storage中?
|
4月前
|
存储 NoSQL 文件存储
【Azure 环境】存储在Azure上的文件,使用IE/Edge时自动打开的问题,如何变为下载而非自动打开
【Azure 环境】存储在Azure上的文件,使用IE/Edge时自动打开的问题,如何变为下载而非自动打开
|
物联网 开发工具 Windows
【物联网云端对接-1】 通过HTTP协议与微软Azure IoT hub进行云端通信
在2015年曾写过一篇文章《从微软build 2015,展望微软未来发展》,提到了微软的Azure和Windows 10 IoT,那算是初次接触微软物联网技术。比较幸运的是在后续的时间里,有幸和微软相关部门进行了深入合作,对微软的Azure云及Windows 10 IoT有了更深的了解。
881 0
|
物联网
【物联网云端对接-3】通过MQTT协议与微软Azure IoT Hub进行云端通信
在上一篇文章《通过MQTT协议与阿里云物联网套件进行云端通信》中,我们介绍了通过MQTT对接阿里云的物联网套件。其实同样的代码,稍加调整也可以对接到微软AzureIoT hub上,不过需要注意的是,设备的认证机制是不一样的。
1324 0