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 ...
随机推荐
- mybatis like 的坑
昨天快要下班的时候组长交代了一个任务,说起来很简单,是这样的: 系统里面有一个字段为name,这个name允许设置为特殊字符,目前根据name模糊匹配,如果遇到特殊字符 比如 "$" ...
- 一个简易内存池(C++)
做这个内存池主要是为了完成一道面试题,题目在代码中. 代码 #include <iostream> #include<string> #include <list> ...
- js和jquery实现监听键盘事件
一.使用javascript实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...
- javascript中的变量、作用域和内存问题
1.变量 变量的值的类型:基本类型值和引用类型值两种. 基本类型:Undefined.Null.Boolean.String.Number,这五类基本数据类型的值在内存中占有固定大小的空间,因此保存在 ...
- 使用原生JavaScript的Canvas实现拖拽式图形绘制,支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多边形和圆形,不依赖任何库和插件,有演示demo
前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 一.实现的功能 1.基于oop思想构建,支持坐标点.线条(由坐标点组成,包含方向).多边形(由多个坐标点组成).圆形(包 ...
- JSP 学习笔记
JSP 全名为Java Server Pages,中文名叫java 服务器页面,它是在传统的 HTML 页面中插入 JAVA 代码片段和 JSP 标签形成的文件. 上一篇 Servlet 中只是讲解了 ...
- 70、django之Ajax初识
Ajax准么说是用于Javascript与服务器端进行交互的,我们之前呢没有了解ajax也同样可以完成与服务器的交互,那么ajax的优势在哪里?首先ajax是异步交互的也就是说我们基本不会遇到卡顿现象 ...
- pwnable.kr login之write up
main函数如下: auth函数如下: 程序的流程如下: 输入Authenticate值,并base64解码,将解码的值代入md5_auth函数中 mad5_auth()生成其MD5值并与f87cd6 ...
- centos7.2构建Python3.5开发环境
1.本次使用的是一台全新的腾讯云主机,首先获取linux系统版本信息. [root@VM_46_121_centos ~]# cat /etc/redhat-release <本系统默认自带py ...
- C#定时任务采用线程和队列实现
构思:写一个全局的Queue , 然后开一个线程去循环. 不善言语,直接看代码吧! ); }}