type
Post
date
Nov 6, 2025
slug
RaspberryPi-5/electronic_scale
summary
以树莓派为控制器联通硬件与软件服务,实现AI健康小屋
status
Published
tags
AI
树莓派
category
技术茶点
icon
password
😀

1.准备工作

1.1.硬件

  • 电子秤与血压仪
    • 可获得身高、体重、体脂、舒张压、收缩压、心率6种数据
  • 树莓派
    • RaspberryPi_5 4GB RAM(用于开发环境)
    • RaspberryPi_Zero_2_W 512MB RAM(用于生产环境)
    • 外设——键鼠、屏幕、麦克风与音响
  • 其它
    • DB9 USB 公转 RS232 公螺杆串口线

1.2.软件

  • 操作系统
    • Raspberry Pi OS(本地)
    • Ubuntu22.04(云服务器)
  • 前端
    • 小程序(通过小程序码赋值设备ID绑定设备与扫码的用户)
  • 后端
    • python Fastapi Django DRF(快速验证)
    • Rust(生产环境迭代)
  • 其他
    • PostgreSQL(云存储用户测量数据)
    • Redis(维护一个设备绑定激活状态,供树莓派轮询)

2.MVP及关键步骤

2.1.实现串口通信

目标是在树莓派上通过串口通信控制电子秤并接收测量结果数据。

2.1.1.PuTTY 配置(Win 环境测试)

PuTTY 设置项
您的设备参数
必须填写的值
备注
Serial line (串口号)
(需在电脑上查找)
例如:COM3 (Windows) 或 /dev/tty.usbserial-XXXX (Mac)
这是您 USB 转串口线连接到电脑后,系统识别的端口。
Speed (波特率)
4800 (默认)
4800
建议先使用默认值 4800 进行测试。
Data bits (数据位)
8 位
8
Stop bits (停止位)
1 位
1
Parity (校验位)
None
Flow control (流控)
(文档未提及)
None
默认选择 None,除非设备明确需要。

2.1.2.树莓派作为上位机向电子秤发送请求

  • 获取设备ID、检测设备在线、控制设备测量启动与停止等

    2.1.2.树莓派作为上位机控制测量启停并接收测量数据

    • 发送测量命令,等待用户完成测量后设备返回的测量结果数据

      2.2.实现用户与测量设备的绑定和解绑(维护占用状态)

      2.2.1.带参数(设备ID)小程序码的生成与扫码登录解析

      • 后端FBV API实现生成带参数的小程序二维码
        • 前端解析出用户扫描设备二维码的参数,执行不同操作
          • 实现绑定、解绑与状态轮询等API接口,供前端和树莓派调用

          2.3.树莓派主控程序

          • 脚本快速实现,部分主控代码
            • 在后端数据库查看到新增了的用户健康数据,归集给了扫码的用户,持久化运行后,设备和树莓派就可以一起部署了~

          3.部署

          • 以脚本的方式快速部署

            4.修复及后续 rust 迭代计划

            • 生产化部署问题及修复
              • Rust 迭代计划
                • Pi Zero 2 W 性能很宽裕了,但是 python 脚本跑了 1/4 的内存,即使手写垃圾回收避免内存泄漏问题,实际运行时因为连接的设备串口通信、电源、用户使用方式等外部环境的不稳定,运行时代码发生的错误会是致命的,后续转向 Rust 迭代是必要的。
              Raspberry Pi ZERO 2W 装机启动《Rust 程序设计语言》(12/22)
              Loading...