本文介绍:

将一台Ubuntu Server 配置为Azure IoT Hub 的 Edge Device。

 

完整视频演示:

 


图文步骤:

1.创建资源组

 

登录 portal.azure.cn, 在上方搜索框中输入“资源组”,进入到资源组页面:

 

点击添加按钮,创建一个新的资源组:

创建以自己姓名拼音为名称的资源组,资源组位置可以随意选择:

 创建完成点击右上角 转到资源组完成创建:

 

 


2. 创建Linux Ubuntu 18.04 虚拟机作为边缘设备

 

在市场中输入 ubuntu 进行查询,找到Ubuntu Server 18.04 LTS,点击创建按钮:

 

 

输入虚拟机名称,以姓名拼音或英文为名称,虚拟机大小选择2核8G:

 

 

虚拟机设置以密码方式登录,输入用户名和密码,入站端口选择 22 和 80:

 

验证信息无误后,点击创建按钮。稍等2-3分钟,虚拟机即可创建完成:

 

 

 


3.创建Azure IoT Hub 和IoT Edge Device

 

在资源组中点击“添加”,找到物联网:

在物联网中找到IoT 中心,点击开始创建:

 

检查资源组无误后,输入一个IoT 中心的名称,点击查看创建:

 

默认会创建一个 S1 的IoT Hub,每日消息限额40万条。点击创建按钮稍等2-3分钟即可完成创建。

创建完成欧,转到资源即可进入IoT Hub 配置页面:

点击右侧IoT Edge,并点击上方的添加IoT Edge 设备:

 

输入一个设备名称,其余配置保持不变,点击保存:

刷新页面,可以看到设备创建成功:

点击设备,可以看到设备连接字符串,稍后会用到:

 

 


4.登录Ubuntu Server 配置Azure IoT Edge Runtime

 

找到Ubuntu 虚拟机的IP地址

 

在命令提示符中,输入  ssh 用户名@IP地址,按照提示输入密码:

 

登录成功看到如下提升:

接下来参照官网文档安装Azure IoT Edge 运行时:

https://docs.microsoft.com/zh-cn/azure/iot-edge/how-to-install-iot-edge?view=iotedge-2020-11&WT.mc_id=AZ-MVP-5003757

主要的步骤有:

安装与操作系统匹配的存储库配置:

curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/prod.list > ./microsoft-prod.list

 

将生成的列表复制到 sources.list.d 目录:

sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/

 

安装 Microsoft GPG 公钥:

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/

 

更新包:

sudo apt-get update

 

安装容器引擎:

sudo apt-get install moby-engine

 

安装最新版IoT Edge 运行时:

sudo apt-get install aziot-edge

 

接下来配置设备身份:

基于在安装 IoT Edge 的过程中提供的模板文件为你的设备创建配置文件:

sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml

 

在 IoT Edge 设备上,打开配置文件:

sudo nano /etc/aziot/config.toml

 

找到文件的预配部分,并取消注释“ Manual provisioning with connection string”下边的三行

将真实的设备连接字符串拷贝过来。

# Manual provisioning with connection string
[provisioning]
source = "manual"
connection_string = "<ADD DEVICE CONNECTION STRING HERE>"

 

保存文件:

CTRL + XYEnter

 

更新配置文件:

sudo iotedge config apply

 

稍等几分钟,观察页面显示如下表示配置成功:

 

如下是几个有用的命令,在系统不正常时可以用来调试:

检查以确保 IoT Edge 系统服务正在运行。

sudo iotedge system status

 

若需排查服务问题,请检索服务日志。

sudo iotedge system logs

 

使用 check 工具验证设备的配置和连接状态。

sudo iotedge check

 

5.从刚云端元程向IoT Edge Device 配置模块(容器)

接下来演示从云端向设备配置的两类模块:

1.普通的容器,比如数据库,网站,算法等,本例部署一个nginx

 

 

在IoT Edge设备页面点击 设置模块:

点击添加,IoT Edge 模块:

 

输入一个模块名称,例如website:

影像URL直接输入 nginx

容器创建选项输入:表示将容器的80端口映射到主机的80端口

{
  "HostConfig": {
    "PortBindings": {
      "80/tcp": [{
        "HostPort": 80
      }]
    }
  }
}

 

点击创建:

等待2-3分钟后刷新页面,观察到website 处于running状态,此时完成了从云端向设备远程部署了一个nginx容器。

 

在浏览器中输入 Ubuntu Server 的IP地址,可以看到Nginx已经在运行了:

 

2.遥测消息相关的模块,本例中以一个模拟的传感器为例子,该模块会向云端发送一些消息

继续添加模块:

输入模块名称 Simulated-Sensor

模块URL         mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0

 

下一步配置路由:

增加一个路由后点击 查看+创建

名称:SensorToHub

值: FROM /messages/modules/Simulated-Sensor/* INTO $upstream

 

点击创建:

 

等待2-3分钟后,观察IoT Hub概述页面的 设备到云的消息: