这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 开源硬件 » 【RaspberryPi5开发板方案创意赛】双胞胎健康监测系统-成果贴2-部署贴

共1条 1/1 1 跳转至

【RaspberryPi5开发板方案创意赛】双胞胎健康监测系统-成果贴2-部署贴

助工
2026-02-13 09:27:46     打赏

【RaspberryPi5开发板方案创意赛】双胞胎健康监测系统-成果贴2-部署贴一、部署概述1.1 系统架构

ScreenShot_2026-02-13_092847_558.png


1.2 设备清单设备类型硬件型号数量功能说明





发送端M5Stack Cardputer V1.11-2-N传感器数据采集、ESP-NOW发送
网关Cardputer / ESP32-S3 TFT Feather1ESP-NOW接收、MQTT转发
服务器树莓派5 (4GB)1MQTT Broker、数据存储、Web服务
传感器M5Unit-Miniscale适量称重检测

二、树莓派服务器部署2.1 安装操作系统

  1. 下载Raspberry Pi Imager工具

  2. 选择系统:Raspberry Pi OS (64-bit)

  3. 写入SD卡并完成基础配置

2.2 更换中国软件源

参考之前的开箱贴,过程贴。
https://forum.eepw.com.cn/thread/399205/1
https://forum.eepw.com.cn/thread/399206/1

2.4 配置Mosquitto MQTT Broker

编辑 /etc/mosquitto/mosquitto.conf:

listener 1883 0.0.0.0
allow_anonymous true
persistence true
persistence_location /var/lib/mosquitto/

启动服务:

sudo systemctl restart mosquittosudo systemctl enable mosquitto

2.5 部署后端代码

# 创建项目目录mkdir -p ~/twins_healthcd ~/twins_health# 创建虚拟环境python3 -m venv venvsource venv/bin/activate# 安装依赖pip install paho-mqtt flask flask-cors pandas openpyxl# 复制代码文件# mqtt_server.py -> ~/twins_health/mqtt_server.py# frontend/*.html -> ~/twins_health/static/

2.6 配置开机自启

创建 /etc/systemd/system/twins_health.service:

[Unit]Description=Twins Health Monitor MQTT ServerAfter=network.target mosquitto.service[Service]Type=simpleUser=piWorkingDirectory=/home/pi/twins_healthExecStart=/home/pi/twins_health/venv/bin/python mqtt_server.pyRestart=alwaysRestartSec=10[Install]WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reloadsudo systemctl enable twins_healthsudo systemctl start twins_health

三、网关设备部署3.1 安装CircuitPython

  1. 下载固件:https://circuitpython.org/board/m5stack_cardputer/

  2. 进入Bootloader模式(按住G0,按RST,松开)

  3. 复制 .uf2 文件到 CARDPUTERBOOT

  4. 如果之前不是CircuitPython环境,可以使用下面的在线安装模式。    

3.2 安装依赖库

复制以下库到 CIRCUITPY/lib/ 目录:

lib/
├── adafruit_minimqtt/
├── adafruit_st7789.mpy
├── adafruit_requests.mpy
└── espnow.mpy

3.3 配置文件

创建 CIRCUITPY/settings.toml:

WIFI_SSID = "你的WiFi名称"WIFI_PASSWORD = "你的WiFi密码"ESPNOW_CHANNEL = 1MQTT_BROKER = "raspberrypi.local"MQTT_PORT = 1883MQTT_TOPIC_WEIGHT = "sensors/twins/weight"MQTT_TOPIC_STATUS = "sensors/twins/status"BOARD_ID = "gateway"MQTT_SEND_INTERVAL = 5.0

3.4 部署主程序

复制 code.py 到 CIRCUITPY/ 根目录,设备自动重启运行。

3.5 获取MAC地址

重要步骤: 运行后记录本设备MAC地址,用于配置发送端。

串口输出示例:

========================================
双胞胎健康监测系统 - ESP-NOW网关
设备ID: gateway
========================================
本机MAC地址: AA:BB:CC:DD:EE:FF
请将此MAC地址配置到发送端设备

四、发送端设备部署4.1 硬件接线传感器引脚Cardputer引脚说明




VCC3V3电源正极
GNDGND电源地
SDASDAI2C数据线
SCLSCLI2C时钟线

4.2 安装CircuitPython

与网关设备步骤相同。

4.3 配置文件

创建 CIRCUITPY/settings.toml:

WIFI_SSID = "你的WiFi名称"WIFI_PASSWORD = "你的WiFi密码"ESPNOW_CHANNEL = 1GATEWAY_MAC = "AA:BB:CC:DD:EE:FF"  # 网关设备的MAC地址BOARD_ID = "sender_A"[sensors]A1 = 0x26A2 = 0x27[sensor_items]A1 = "牙刷杯"A2 = "水杯"READ_INTERVAL = 1.0SEND_INTERVAL = 2.0

4.4 部署主程序

复制 code.py 到 CIRCUITPY/ 根目录。

五、验证测试5.1 检查MQTT服务

# 订阅测试mosquitto_sub -h localhost -t "sensors/#" -v# 应看到类似输出:# sensors/twins/weight {"timestamp": 1234567890, "board_id": "gateway", ...}

5.2 检查Web服务

浏览器访问:http://<树莓派IP>:5000

5.3 检查数据流

完整数据流验证:

1. 发送端串口输出:
   发送数据到网关: 2 个传感器

2. 网关串口输出:
   ESP-NOW接收 [XX:XX:XX:XX:XX:XX]: 2 个传感器
   MQTT发送: 2 个传感器

3. 树莓派串口输出:
   收到消息: sensors/twins/weight - {...}
   处理传感器 A1 数据成功

4. Web界面:
   显示实时数据更新

六、文件结构

RaspberryPi5Idea/
├── devices/                        # 设备代码
│   ├── sender/                     # 发送端
│   │   ├── code.py                # 主程序
│   │   ├── settings.toml          # 配置模板
│   │   └── README.md              # 部署文档
│   ├── gateway/                    # 网关
│   │   ├── code.py                # 主程序
│   │   ├── settings.toml          # 配置模板
│   │   └── README.md              # 部署文档
│   └── server/                     # 服务器
│       └── README.md              # 部署文档
│
└── raspberrypi/                    # 树莓派代码
    ├── backend/
    │   ├── mqtt_server.py         # MQTT服务器
    │   └── requirements.txt       # Python依赖
    └── frontend/
        ├── index.html             # 主页面
        ├── realtime.html          # 实时数据
        ├── stats.html             # 统计页面
        └── rawdata.html           # 原始数据

七、常见问题问题解决方案



WiFi连接失败检查SSID和密码,确认信号强度
MQTT连接失败确认Mosquitto服务已启动
ESP-NOW无数据检查GATEWAY_MAC配置是否正确
I2C传感器错误检查接线和I2C地址
Web无法访问检查防火墙是否开放5000端口

八、部署总结8.1 部署顺序

  1. ✅ 树莓派服务器(先部署,获取IP地址)

  2. ✅ 网关设备(记录MAC地址)

  3. ✅ 发送端设备(配置网关MAC地址)

8.2 关键配置项配置项说明



ESPNOW_CHANNEL发送端和网关必须一致
GATEWAY_MAC发送端必须配置网关MAC地址
MQTT_BROKER网关必须配置树莓派IP地址

8.3 成功标志

  • 网关显示屏显示:WiFi:OK ESPN:OK MQTT:OK

  • Web界面实时更新传感器数据

  • 数据库中有新数据记录


部署完成日期:2026年2月

详细文档请参考(附件中内容很多,这里不再赘述)

附件: deployment_package.zip




关键词: RaspberryPi5     双胞胎     监测     方案     创意    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]