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

相关推荐
414a1 小时前
LingJing(灵境):Linux Amd64局域网设备访问靶机教程
linux·安全·web安全·网络安全·lingjing·灵境
tianyuanwo1 小时前
多平台容器化RPM构建流水线全指南:Fedora、CentOS与Anolis OS
linux·运维·容器·centos·rpm
BD_Marathon2 小时前
【Zookeeper】CAP理论——CAP介绍
linux·分布式·zookeeper
艾莉丝努力练剑2 小时前
【Python基础:语法第一课】Python 基础语法详解:变量、类型、动态特性与运算符实战,构建完整的编程基础认知体系
大数据·人工智能·爬虫·python·pycharm·编辑器
gCode Teacher 格码致知2 小时前
Python基础教学:如何拼接字符串?-由Deepseek产生
python
还债大湿兄2 小时前
阿里通义千问调用图像大模型生成轮动漫风格 python调用
开发语言·前端·python
blank@l2 小时前
python测开小工具--日志查询分析工具
python·python接口自动化测试基础·python测试开发·日志查询分析·日志分析统计查询·软件测试工具·argparse模块
赖small强3 小时前
【Linux 网络基础】HTTPS 技术文档
linux·网络·https·tls
hu_nil3 小时前
LLMOps-第十三周
python·vllm