【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX

【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX

本文介绍了树莓派 CM0 NANO 单板计算机通过 Docker 容器实现 EMQX 的本地部署,包括 Docker 安装、EMQX 镜像拉取、容器启动、客户端配置、MQTT 测试等流程。

项目介绍

该项目通过 Docker 软件实现 EMQX 平台在树莓派 CM0 NANO 单板计算机的本地部署。

  • Docker 安装:网络加速、安装脚本执行、软件源更换和版本检测等;
  • EMQX 部署:更换镜像源、镜像获取、容器启动、创建用户以及参数配置等;
  • 通信测试:MQTT 消息转发、芯片温度上报测试等流程。

应用

EMQX 作为高并发 MQTT 接入层,在工业场景主要承担 设备-边缘-云端 实时数据总线角色,应用场景包括且不限于

  • 智能家居终端控制与数据采集;
  • 工业自动化数据采集与远程控制;
  • 边缘 IIOT 工业物联网;
  • 工业环境监测,历史数据转发与存储;
  • ......

配合规则引擎与流计算,实现设备互联、生产监控、能耗优化,逐渐成为智能制造与数字化转型的核心数据底座。

硬件连接

  • 若采用 SSH 远程登录方式,需连接 5V 3A 电源和网线;
  • 若采用本地连接方式,需增加 HDMI 数据线连接显示器、USB 键盘及鼠标。

Docker

这里介绍树莓派 CM0 NANO 实现 Docker 部署的主要流程,包括更换软件源、安装脚本获取与执行、版本检测等。

网络加速

使用 Dev-Sidecar 软件实现网络加速。

  • 执行如下执行,获取安装包并安装软件
bash 复制代码
wget "https://bgithub.xyz/docmirror/dev-sidecar/releases/download/v2.0.0.2/DevSidecar-2.0.0.2-linux-arm64.deb"
sudo dpkg -i DevSidecar-2.0.0.2-linux-arm64.deb
  • 若报错或提示缺失文件,可通过补全缺失包的方法解决
bash 复制代码
sudo apt update
sudo apt -f install
sudo dpkg -l dev-sidecar

部署方案

  • 使用官方脚本安装,终端执行指令
bash 复制代码
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
  • 安装完成后,查询 Docker 版本号
bash 复制代码
docker -v

详见:【工业树莓派 CM0 NANO 单板计算机】本地部署 Home Assistant 智能家居平台 .

  • 若报错,可更换国内软件源
bash 复制代码
# 添加 Docker 官方 GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加仓库到 Apt 源:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.aliyun.com/docker-ce/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker_aliyun.list > /dev/null
sudo apt-get update

详见:树莓派安装Docker .

EMQX

EMQX 是全球领先的开源分布式云原生 MQTT 物联网接入平台,支持单机千万级并发、毫秒级延迟,为万物互联提供高可靠、高可用的消息总线底座。

详见:EMQX:MQTT 与 AI 一体化平台 .

在前面完成 Docker 安装的基础上,这里进一步介绍了部署 EMQX 容器的主要流程,包括镜像源更换、镜像拉取、容器启动、个性化配置等。

部署方案

在添加软件镜像源的基础上,终端执行如下指令,拉取最新版 emqx 镜像

bash 复制代码
sudo docker pull emqx/emqx:latest

实测部署 EMQX 需要至少 400MB 存储空间。

启动容器

终端执行如下指令,启动 EMQX 容器

bash 复制代码
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest
  • 浏览器输入网址 http://<树莓派IP>:18083 ,如 http://192.168.1.115:18083
  • 进入 EMQX 界面,初始账号 admin 密码 public
  • 首次登录会提示更新密码并进入概览界面
  • 运行过程占用内存约 310MB
  • 若要停止/启动/重启 EMQX,则执行指令
bash 复制代码
sudo docker stop emqx       # STOP
sudo docker start emqx      # RUN
sudo docker restart emqx    # Restart

创建用户

创建客户端

  • 依次打开 访问控制 - 客户端认证 - 创建 - Password-Based - 内置数据库 - (默认配置)- 创建

创建用户

  • 用户管理 - 新建用户 - 自定义用户名和密码 - 保存.

至此,完成 EMQX 在树莓派 CM0 NANO 单板计算机的本地部署。

通信测试

这里介绍了基于 EMQX 服务器和 MQTT 协议的通信测试,包括 MQTT 消息转发、芯片温度上报等。

MQTT 转发

通过 MQTTX 软件向 EMQX 服务器发送消息,并订阅相同主题,实现消息接收。

  • 打开 MQTTX 软件,新建连接;
  • 输入 EMQX 服务器 IP 地址,用户名和密码等信息,连接服务器;
  • 添加订阅主题和发送主题,如 rpi/cm0/demo
  • 在发送框内输入任意 JSON 消息并点击发送,如 {"temp": 27.8, "humi": 42.6},立即接收到相同消息;
  • 在 EMQX 服务器后台可以看到消息的流入流出、在线会话数量、主题等信息

芯片温度上报

在前面本地测试通过的基础上,将芯片温度上传至 EMQX 服务器并实现消息转发。

流程图

1883 订阅主题 开始 初始化 读取 CPU 温度 构建 JSON 发布消息 EMQX 服务器 MQTTX

代码

终端执行 touch mqtt_temp.py 指令新建 python 文件,并 nano mqtt_temp.py 添加如下代码

python 复制代码
#!/usr/bin/env python3
import paho.mqtt.client as mqtt
import time, json, subprocess

broker   = "localhost"    # ip
port     = 1883           # port
topic    = "rpi/cm0/temp" # topic
username = "xxx"          # EMQX user name
password = "xxx"          # password

client = mqtt.Client(callback_api_version=mqtt.CallbackAPIVersion.VERSION2)
client.username_pw_set(username, password)   # user info
client.connect(broker, port, keepalive=60)

def get_cpu_temp():
    raw = subprocess.check_output(["vcgencmd", "measure_temp"]).decode()
    return float(raw.split("=")[1].split("'")[0])

while True:
    temp = get_cpu_temp()
    payload = json.dumps({"temp": temp, "unit": "℃", "ts": int(time.time())})
    client.publish(topic, payload, qos=0)
    print(payload)
    time.sleep(2)
  • 保存代码;

终端执行指令 python mqtt_temp.py 运行程序;

  • 终端打印上报消息
  • 打开 MQTTX 软件,接收到 EMQX 服务器转发的 CM0 芯片温度信息

总结

本文介绍了树莓派 CM0 NANO 单板计算机通过 Docker 容器实现 EMQX 的本地部署,包括 Docker 安装、EMQX 镜像拉取、容器启动、客户端配置、MQTT 测试等流程,为树莓派 CM0 等相关产品在工业物联网领域的快速开发和应用设计提供了参考。

相关推荐
0思必得040 分钟前
[Web自动化] Selenium处理动态网页
前端·爬虫·python·selenium·自动化
韩立学长1 小时前
【开题答辩实录分享】以《基于Python的大学超市仓储信息管理系统的设计与实现》为例进行选题答辩实录分享
开发语言·python
qq_192779871 小时前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python
u0109272711 小时前
使用Plotly创建交互式图表
jvm·数据库·python
爱学习的阿磊1 小时前
Python GUI开发:Tkinter入门教程
jvm·数据库·python
嵩山小老虎2 小时前
Windows 10/11 安装 WSL2 并配置 VSCode 开发环境(C 语言 / Linux API 适用)
linux·windows·vscode
Imm7772 小时前
中国知名的车膜品牌推荐几家
人工智能·python
tudficdew2 小时前
实战:用Python分析某电商销售数据
jvm·数据库·python
Fleshy数模2 小时前
CentOS7 安装配置 MySQL5.7 完整教程(本地虚拟机学习版)
linux·mysql·centos
a41324472 小时前
ubuntu 25 安装vllm
linux·服务器·ubuntu·vllm