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卡中。
整个过程大概需要15分钟,如果TF卡速度快,那时间就会短很多。烧写完成之后,将TF卡插入树莓派3,同时,为树莓派的HDMI接上显示器、鼠标和键盘,就可以上电了。系统运行以后,在树莓派的设置中,将Enable SSH的选项勾上,如下图所示。
接下来,我们需要使用Putty连接树莓派,默认情况下,用户名是pi,密码是raspberry。
然后,我们需要运行如下指令来更新系统:
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
输出结果如下:
如果没有安装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
执行结果如下图所示:
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
其输出如下:
现在,我们需要通过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来代替。
配置结果如下,显示设置成功:
配置完成后,开始运行IoT Edge Runtime:
sudo iotedgectl start
IoT Edge Runtime运行以后,可以通过如下命令查看IoT Edge agent的运行情况:
sudo docker ps
输出如下:
表明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部分.
至此,我们已经在树莓派上完成了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
Azure IoT Edge on Raspberry Pi 3 with Raspbian的更多相关文章
- 为 Azure IoT Edge 设备部署 Azure Stream Analytics 服务
在前面的两篇文章<Azure IoT Edge on Windows 10 IoT Core>和<Azure IoT Edge on Raspberry Pi 3 with Rasp ...
- Azure IoT Edge on Windows 10 IoT Core
在今年的Build大会上,微软推出了Azure IoT Edge的第一个版本(https://github.com/Azure/iot-edge ).该版本的主要特点就是将计算能力由Azure端推送至 ...
- Azure IOT Edge
微软Build 2017大会,纳德拉表示,在计算力的飞速发展中,微软要做的就是将计算的能力赋权给普通用户,让技术为更多用户所用,让计算机视觉.文本理解等技术变得更加普惠(inclusive),同时构建 ...
- Windows Iot:让Raspberry Pi跑起来(1)
首先请大家原谅我的"不务正业",放着RabbitHub不写,各种系列的文章不写搞什么Iot,哈哈,最近心血来潮想搞个速度极快的遥控车玩,望着在角落的Raspberry Pi恶狠狠的 ...
- 玩树莓派(raspberry pi) 2/3 raspbian的遇到的一些问题
raspberry pi买回来玩了一段时间,现在就记录一下入门遇到的一些问题吧. 首先是烧写镜像,和安装电脑系统是一样的道理. 先要有一个制作一个U启动盘.先将SD卡格式化,再用Win32DiskIm ...
- 记录给树莓派刷Raspberry Pi OS(Raspbian)系统的配置流程
准备材料 树莓派(一定要贴散热片,最好再加个小风扇) TF内存卡 (记得选传输规范为Class10标准的) 读卡器 电脑(这里我使用的电脑是Windows系统,其它系统可能与下面的步骤有出入,还望悉知 ...
- 2019 年在 Raspberry Pi 「树莓派」上运行的 10 个操作系统推荐
原文:2019 年在 Raspberry Pi 「树莓派」上运行的 10 个操作系统推荐 image Raspberry Pi** 是一款基于 ARM 的单板计算机,默认运行一款称为 Raspbian ...
- 微软Azure IoT驱动数字化变革线上分享会(6月4号)
微软Azure IoT驱动数字化变革线上分享会(6月4号) 微软作为全球范围内IoT领域的领军者,以微软智能云Azure为基础和核心,推动包括物联网.机器学习.微服务.人工智能等在内的新技术的发展 ...
- 让Mono 4在Raspberry Pi上飞
最近公司有项目想要在树莓派上做,代替原来的工控机(我们是把工控主机当作小的主机用,一台小的工控主机最少也要600左右,而树莓派只要200多).于是,公司买了一个Raspberry Pi B+和一个Ra ...
随机推荐
- LeetCode 346. Moving Average from Data Stream (数据流动中的移动平均值)$
Given a stream of integers and a window size, calculate the moving average of all integers in the sl ...
- eclipse导入android studio时一些异常的处理
Error:Execution failed for task ':app:compileDebugNdk'. > Error: Your project contains C++ files ...
- 正常启动HBase顺序
先启动hadoop集群start-all.sh 在master节点会启动SecondaryNameNode,NameNode,ResourceManager 在slave节点会启动NodeManage ...
- Windows下caffe的配置和调用caffe库(二)
二. Caffe库的调用: 新建空白项目,将配置管理器更改为x64运行方式.(release和Debug均可). Debug配置: 1) 包含目录: D:\caffe-master\incl ...
- Android 开发笔记___textvieww__跑马灯效果
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- Rem与Px的转换[转载]
原文:http://www.w3cplus.com/preprocessor/sass-px-to-rem-with-mixin-and-function.html rem是CSS3中新增加的一个单位 ...
- javascript中的变量、作用域和内存问题
1.变量 变量的值的类型:基本类型值和引用类型值两种. 基本类型:Undefined.Null.Boolean.String.Number,这五类基本数据类型的值在内存中占有固定大小的空间,因此保存在 ...
- CentOS恢复root口令方法
CentOS6和CentOS7恢复root口令的方法有很大不同 CentOS6: 在引导菜单倒计时界面按任意键,进入grub引导菜单 按e键进入内核引导参数编辑界面 选中kernel项,按e键编辑引导 ...
- (二): 基于ZeroMQ的实时通讯平台
基于ZeroMQ的实时通讯平台 上篇:C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework)----(一):整体介绍 通讯平台作为 ...
- 根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局
在数学中,矩阵是以行和列排列的数字,符号或表达式的矩形阵列,任何矩阵都可以通过相关字段的标量乘以元素.矩阵的主要应用是表示线性变换,即f(x)= 4 x等线性函数的推广.例如,旋转的载体在三维空间是一 ...