STM32F103C8T6 + ESP32-CAM + HX711 + 超声模块 + 继电器 / SG90 舵机 | 硬件原理图 · 实物搭建 · 小程序界面 · 图像识别数据链路全解析
垃圾分类的准确率长期受制于投放者的主观判断。本系统以 STM32F103C8T6 为现场控制核心,将「红外对管投递触发」与「ESP32-CAM 图像采集」两类信号组合使用:投递动作触发后即时抓拍,图像经 HTTP POST 上传至服务端,由多模态大模型完成垃圾类别识别,识别结果再经 TCP Socket 回传主控,驱动 SG90 舵机与三路继电器开启对应桶位,同时由 HX711 采集本次投递重量,最终在微信小程序端汇聚为「实时数据—投放记录—统计报表」的完整链路,使分类投放由经验判断转为可量化、可追溯的数据过程。
一、项目基本情况
生活垃圾分类的推行难点并不在于设施本身,而在于投放环节的分类准确率难以保证。居民对具体品类归属的判断存在个体差异,督导员的人工值守又难以覆盖全时段,由此导致「前端混投、后端再分」的低效局面。传统的智能垃圾桶多依赖刷卡或输入编号获取身份,本质上仍是「人做分类、设备做记录」,并未介入分类判断这一关键环节。本项目以机器识别替代人工判断为切入点,构建了一套面向社区与园区的分类投放闭环系统。
1.1 设计目标与技术路线
系统面向社区与园区的生活垃圾投放场景,设计目标可归纳为三点:其一,以机器识别替代主观分类——将垃圾图像交由服务端的多模态大模型判别品类,结果直接决定桶位开启,从流程上消除投放者的判断误差;其二,以事件驱动降低系统空转——仅在红外对管检测到投递动作时才触发抓拍与识别,避免持续图像采集带来的带宽与算力浪费;其三,以数据回流支撑监管——每次投放的类别、重量与时刻均回传入库,形成可按日统计的次数与重量报表,为环卫考核提供客观依据。
技术路线上,系统采用「现场控制节点 + 无线图像与数据通道 + 云侧识别服务 + 小程序终端」的分层结构。现场节点由 STM32F103C8T6 与红外对管、超声模块、HX711、SG90 舵机、三路继电器、有源蜂鸣器、LED 组成,通过扩展板与杜邦线连接,使用 Keil 5 开发;图像采集由 ESP32-CAM 承担,以 HTTP POST 方式上传图片;控制指令则通过 TCP Socket 在硬件与服务端之间透传;服务端基于 JeeSite 平台与 Java SpringBoot 构建,使用 MySQL 持久化业务数据;移动端为微信小程序,通过 WebView 控件调用 H5 页面(由 HBuilder 编译生成),在复用前端代码的同时保留小程序的入口与授权能力。
1.2 系统总体架构
系统在纵向上划分为四个层次,自下而上依次为感知执行层、边缘控制层、网络与识别层、应用层。感知执行层负责投递动作检测、图像采集与桶位动作输出;边缘控制层由 STM32F103C8T6 承担,完成投递时序调度、重量差分判别与桶位状态机运转;网络与识别层由 ESP32-CAM、TCP Socket 通道与服务端多模态大模型共同构成,承担图像上行与识别结果下行;应用层则由服务端与小程序承载,负责数据呈现与统计。四层之间以图像上行与指令下行两条路径耦合,形成完整的投放闭环。

▲ 图 1 系统总体架构:感知执行、边缘控制、网络与识别、应用四层结构
1.3 系统功能构成
从功能视角看,系统可切分为硬件系统、软件系统与交付服务三个维度。硬件系统围绕「检测—采集—执行—提示」展开,软件系统覆盖登录注册、终端管理、参数管理、实时数据、投放记录、种类查询、统计报表与个人中心八类功能,交付内容则包含实物、源码、原理图与演示视频。

▲ 图 2 系统功能结构:硬件系统、软件系统与交付服务三个维度
1.4 硬件构成与器件选型
硬件选型遵循「接口简单、成本可控、便于演示」的原则。主控选用 STM32F103C8T6,其 Cortex-M3 内核运行于 72 MHz,具备充足的 GPIO 与多路串口资源,可同时挂载称重模块、图像模块与执行单元;图像采集选用 ESP32-CAM,兼具摄像头接口与 Wi-Fi 能力,可在单片上完成图像获取与 HTTP 上传;重量感知选用 HX711 专用 24 位模数转换芯片配合应变式称重传感器,其分辨率足以识别单次投递所产生的重量变化;桶内容量检测选用超声模块 US-016,以非接触方式测量桶口到垃圾表面的距离。各器件的具体接口对应关系如下表所示。
| 器件 | 型号 / 规格 | 接口方式 | 功能定位 |
|---|---|---|---|
| 主控 MCU | STM32F103C8T6(Cortex-M3,72 MHz) | — | 系统控制核心,Keil 5 开发 |
| 投递检测 | 红外对管模块(J1) | GPIO(OUT→PA0,5 V) | 检测投递动作,触发抓拍流程 |
| 容量检测 | 超声模块 US-016(J2) | GPIO(OUT→PA1,5 V) | 测量桶内容量比例,辅助满溢监测 |
| 重量采集 | HX711 + 应变式称重传感器(U8) | 串口(SCK→PB10,DT→PB11) | 投递重量采集与记录 |
| 图像采集 | ESP32-CAM(J9) | 串口(RX→PA9,TX→PA10) | 垃圾图像抓拍与 HTTP POST 上传 |
| 投放口驱动 | SG90 舵机(U1) | GPIO(SIGNAL→PA8) | 可回收垃圾桶投放口启闭 |
| 桶位控制 | 三路继电器组(J3/J4/J5) | GPIO(PA4/PA3/PA6) | 其余三类桶位的开关状态控制 |
| 声音提示 | 有源蜂鸣器(BUZZER1) | GPIO(BEEP→PB1) | 投递成功与异常状态提示 |
| 状态指示 | LED 指示灯(LED2) | GPIO(PB0,限流 1 kΩ) | 识别结果状态反馈 |
| 手动校准 | 轻触按键 SW2 | GPIO(PC15,10 kΩ 上拉) | 重量基准校准与流程复位 |
| 供电单元 | TYPE-C 5 V 供电口(U6) | 5 V 输入 | 为主控、传感器与执行模块统一供电 |
需要说明本系统的桶位实现方式:可回收垃圾桶采用物理形式呈现,由 SG90 舵机驱动投放口开合,可直接观察投放动作;其余三类桶位以继电器输出的开关状态模拟,用于验证「按识别结果选择桶位」这一控制逻辑。这一取舍在控制成本的同时保留了完整的功能链路,也是同类教学与验证型项目的常见做法。
二、系统架构设计
2.1 硬件系统结构与引脚分配
硬件以 STM32F103C8T6 核心板为中枢,左侧为输入通道,右侧为输出通道,下方为供电单元。输入侧包含红外对管、超声模块、HX711 称重模块与校准按键;输出侧包含三路继电器组、SG90 舵机、有源蜂鸣器、LED 指示灯与 ESP32-CAM。值得说明的是,ESP32-CAM 在系统中同时具有「传感器」与「通信模块」双重身份:它既通过串口接收主控的抓拍指令,又独立承担与云端之间的图像上传,使大体积图像数据无需经过主控中转,有效减轻了主控的存储与带宽压力。

▲ 图 3 硬件系统原理框图:主控、输入通道、输出通道与供电单元
2.2 硬件原理图
原理图使用嘉立创 EDA 绘制,按功能划分为 ESP32-CAM 通信单元、红外对管单元、超声模块单元、HX711 称重单元、舵机单元、三路继电器单元、蜂鸣器单元、LED 指示单元、按键单元与STM32F103C8T6 核心板单元等功能区块。按键通道配置 10 kΩ 上拉电阻以保证电平稳定,LED 支路串入 1 kΩ 限流电阻以保护 IO 口,各外设均就近去耦。原理图同时提供源文件、PDF 与图片等多种格式,便于直接投板打样或二次修改。

▲ 图 4 硬件原理图(嘉立创 EDA 绘制,含 STM32F103C8T6、ESP32-CAM、HX711、超声模块、红外对管、继电器、舵机、蜂鸣器、LED)
2.3 硬件实物
实物按原理图在扩展板上搭建完成,采用杜邦线连接各功能模块,便于演示与调试。装置由上下两部分组成:上方为白色桶体,桶口处安装红外对管与投放口舵机,下方为控制底板,自上而下依次布置三路继电器组、STM32 核心板、ESP32-CAM 图像模块、HX711 称重模块与蜂鸣器,右侧为 TYPE-C 供电接口。传感器与主控之间的走线按功能分组绑扎,避免图像采集时的信号串扰。

▲ 图 5 硬件实物整体:桶体、投放口与控制底板的整机布局

▲ 图 6 硬件实物连线细节:红外对管、舵机与扩展板之间的走线关系
2.4 识别链路与通信方式
系统的通信设计采用「图像走 HTTP、指令走 TCP」的双通道方案,二者在协议特性上各司其职。图像上传属于一次性大体积数据传送,采用 HTTP POST 请求提交至服务端,由服务端完成接收、落盘与识别调度;识别结果、桶位状态、重量与容量等小体积、高时效性数据则通过 TCP Socket 长连接透传,保证控制指令的低延迟下发。这种分工避免了将图像数据挤入控制通道所造成的拥塞。
| 数据方向 | 承载方式 | 载荷内容 |
|---|---|---|
| 硬件 → 服务端 | HTTP POST 请求 | 垃圾抓拍图像(由 ESP32-CAM 发起) |
| 硬件 → 服务端 | TCP Socket 透传 | 桶位状态、重量读数、容量比例、时间戳 |
| 服务端 → 硬件 | TCP Socket 透传 | 识别类别、开桶指令、参数配置 |
| 服务端 → 小程序 | 业务数据接口 | 实时数据、投放记录、统计报表 |
说明:硬件侧默认以固定的无线热点名称接入网络,演示时由上位机开启热点即可完成组网;具体的热点名称与数据库连接信息随源码交付文档一并提供,此处不再列出。
2.5 数据交互时序
系统的一次完整投放过程可分解为九个阶段:投递触发,用户靠近桶口投递,红外对管被遮挡,主控捕获到投递事件;抓拍与本地判别,主控通过串口指令驱动 ESP32-CAM 抓拍图像,同时读取 HX711 的初始重量;图像上传,图像以 HTTP POST 方式提交至服务端;大模型识别,服务端调用多模态大模型对图像进行品类判别,输出垃圾类别与置信度;开桶指令下发,识别结果经 TCP Socket 回传主控;开桶并计量,主控驱动 SG90 舵机或对应继电器动作,并在投放完成后读取 HX711 的终值,以差分方式计算本次投递重量;结果回传,类别、重量与时间戳一同上报服务端;记录入库与推送,服务端完成持久化并刷新小程序的投放记录与统计报表;异常处理,当识别置信度低于阈值时,主控触发蜂鸣器与 LED 报警提示现场重新投放。

▲ 图 7 系统数据交互时序:正常投放链路与识别异常链路
三、系统界面展示
移动端为微信小程序,采用「登录注册 + 九宫格主页导航」的结构,功能入口包括终端管理、参数管理、实时数据、投放记录、种类查询、统计报表与个人中心七类。用户以手机号作为账号登录,未注册用户可在登录页直接跳转注册;注册页采集姓名、手机号与密码,其中密码需二次确认,页面上方明确提示「详细用户信息待注册完毕后于小程序中进行完善」。

▲ 图 8 小程序登录界面与用户注册界面
登录后进入九宫格主页,各功能模块以图标加文字的形式平铺呈现,符合移动端低频操作场景下的信息获取习惯。终端管理界面用于维护现场的垃圾桶节点,每条记录展示设备编号、所属场景、终端名称与终端状态四项信息,并支持按关键字检索与新增终端。本项目实测节点的编号为 ZDBH01,终端名称为「垃圾桶A」。

▲ 图 9 小程序九宫格主页与终端管理界面
实时数据是系统的核心监控界面。页面顶部提供终端选择与实时刷新提示,其下以列表形式并列展示其他垃圾、可回收垃圾、有害垃圾与厨余垃圾四类桶位的当前状态(开启/关闭)、容量百分比与重量读数,并给出数据更新时间与设备在线状态。页面下部为实时图像区域,显示 ESP32-CAM 最近一次抓拍的画面及其时间戳;再下方提供四类垃圾桶的远程控制按钮,可在不经过图像识别的条件下手动开桶,用于调试与应急投放。

▲ 图 10 小程序实时数据界面:桶位状态、实时图像与远程控制
投放记录界面按时间倒序呈现每一次投递事件,每条记录同时给出抓拍图像的缩略图、所属设备编号、垃圾类型、垃圾名称与垃圾重量五项信息,使「谁在何时投入了何种多重的垃圾」具备完整证据链。统计报表界面则按日期聚合,展示各设备每日的投递次数与累计重量,并支持按设备编号检索。实测数据中,垃圾桶A 在 2026-05-03 当日投递 7 次、累计 10.0 kg,次日投递 4 次、累计 162.0 kg,可直接用于投放强度分析与桶体配置评估。

▲ 图 11 小程序投放记录界面与统计报表界面
垃圾种类查询界面提供两种查询方式:一是输入垃圾名称进行文字检索,二是上传图片交由服务端模型识别。实测中以「烟头」为关键词查询,系统返回结果为「其他垃圾」,与投放记录中被识别为「其他垃圾/烟头」的记录相互印证,说明文字查询与图像识别两条路径共用同一套类别判定逻辑,结果具备一致性。

▲ 图 12 小程序垃圾种类查询界面:文字查询结果与图片上传查询
四、系统视频展示
为便于完整呈现软硬件的联动过程,项目配套录制了功能演示视频。视频以屏幕录制与实机拍摄交替切换的方式,依次演示小程序的登录与主页导航、投递动作触发红外对管、ESP32-CAM 抓拍与图像上传、服务端识别结果回传、舵机与继电器驱动桶位开启,以及投放记录的自动生成与统计报表刷新,并同步展示原理图与实物之间的对应关系。

▲ 图 13 功能演示视频封面
项目视频按用途提供三个版本:带封面的完整功能演示版本用于平台发布,无水印版本便于二次编辑与嵌入其他材料,水印版本用于公开传播时的来源标识。建议的观看顺序为:先观看完整演示版本建立整体印象,再对照图 7 的数据交互时序图理解各环节的先后关系,最后结合图 3 与图 4 复核硬件连接与引脚分配。视频文件与封面图随项目资料一并提供。
五、获取方法
源码与技术资料获取
- 在本文评论区留言;
- 说明需要的是「源码 + 原理图 + 硬件实物」的完整套装,还是其中的单项资料;
- 收到回复后按指引提供接收方式,资料将由专人整理打包后发送;
- 如需环境搭建协助或二次开发支持,可在联系时一并说明具体需求。
| 交付项 | 内容 |
|---|---|
| 硬件实物 | 按原理图搭建完成的整机一套(含桶体、传感器与各功能模块) |
| 程序源码 | STM32 下位机工程、服务端工程与小程序端工程 |
| 硬件原理图 | 嘉立创 EDA 工程文件及 PDF、图片导出 |
| 演示视频 | 功能演示视频(含封面图,提供三个版本) |
| 文档资料 | 接线与使用说明、业务流程说明 |
源码获取与技术支持备查:w xswzls
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/flyaimo/article/details/165632764




