【工业树莓派 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 等相关产品在工业物联网领域的快速开发和应用设计提供了参考。

相关推荐
充钱大佬2 小时前
Python测试基础教程
python·log4j·apache
hongmai6668882 小时前
FH8856V310芯片详解:6M高清+0.5TOPS算力,赋能智能安防新方案
人工智能·单片机·嵌入式硬件·物联网·智能家居
初心丨哈士奇4 小时前
Python 四大基础容器|列表篇
python
RisunJan4 小时前
Linux命令-rlogin(远程登录)
linux·运维
明理的信封5 小时前
AI 基础设施的“去 Python 化“:Rust 与 C# 的两条替代路径
人工智能·python·rust
三易串口屏5 小时前
串口屏是什么
单片机·嵌入式硬件
宏集科技工业物联网6 小时前
宏集EXOR物联网HMI赋能上海易勒篮式研磨机智能化升级
经验分享·物联网·工业4.0·工业自动化·hmi·工控屏
麻雀飞吧6 小时前
2026年AI量化开发,先跑通小流程再加复杂功能
人工智能·python
daphne odera�6 小时前
PyCharm 中 Codex 插件启动失败:unknown variant default 的解决方法
python·chatgpt·pycharm
nbu04william7 小时前
Deepseek-api省token的用法
python·大模型·token·deepseek