项目展示

把想法做成作品,持续迭代和沉淀

共 5 个项目
高级筛选勾选后会自动应用;收起面板不会重置已选条件。
标签筛选(同分组“或”匹配,跨分组“且”匹配)
项目类型
硬件平台
软件平台
技术栈
网络协议
无线通信
硬件接口
项目进度

一、项目简介 本项目是一套基于 STM32F103ZET6微控制器的 RFID 手持式物品借还管理系统,包含嵌入式固件和PC端上位机软件两个子系统。 嵌入式端:手持设备通过 MFRC522 模块读取 Mifare 射频卡 UID,配合 13 键键盘和 LCD12864 显示屏(SSD1306 驱动,128×64),实现物品借出、归还、会员/物品登记、信息查询等功能。所有数据以 CSV 格式存储在 SD 卡的 .xls 文件中。 PC端上位机:C# WinForms 桌面应用,将 SD 卡中的 .xls 文件导入 SQL Server 数据库,提供数据浏览和搜索功能。 数据流:手持设备写入 SD 卡 .xls 文件 → 物理取出 SD 卡 → PC 端上位机导入数据库 二、技术参数 参数 规格 主控芯片 STM32F103ZET6 (ARM Cortex-M3, LQFP144) Flash / SRAM 512KB / 64KB 系统时钟 72MHz (8MHz HSE × 9 PLL) RFID 模块 MFRC522, 13.56MHz, ISO 14443A (Mifare S50/S70) 射频卡 UID 4 字节 显示屏 LCD12864 (SSD1306 驱动, 128×64, 软件 I2C) 存储 SD 卡 (SPI2 硬件接口, FatFS 文件系统) 键盘 13 键 (0-9 数字键 + Mode/In/Out 功能键) LED 指示灯 PB8, 低电平有效 会员容量 最多 99 人 物品容量 最多 599 件 管理员数量 2 个 (支持密码或管理员卡解锁) 管理员密码 6 位数字, 默认 987654 三、使用的技术与组件 嵌入式固件 类别 技术/组件 编程语言 C 语言 目标芯片 STM32F103ZE (STM32F10X_HD 系列) 固件库 STM32 标准外设库 (StdPeriph Lib) 文件系统 FatFS R0.10a (支持 FAT32) RFID 驱动 MFRC522 软件 SPI 驱动 显示驱动 SSD1306 软件 I2C 驱动 SD 卡驱动 硬件 SPI2 驱动 内存管理 自定义内存池分配器 (malloc.c) 调试工具 USMART 串口调试 Shell, USART1 printf PC 端上位机 类别 技术/组件 编程语言 C# 框架 .NET Framework 4.7.2 UI 框架 Windows Forms (WinForms) 数据库 Microsoft SQL Server Excel 读取 OLE DB (Microsoft.Jet.OLEDB.4.0) 第三方库 Spire.XLS 12.11.3 IDE Visual Studio 2022 四、引脚分配 RC522 RFID (软件 SPI): 信号 引脚 SDA (CS) PA4 SCK PA5 MOSI PA6 MISO PA7 RST PC4 LCD12864 (软件 I2C): 信号 引脚 SCL PF8 SDA PF7 RES PD4 SD 卡 (硬件 SPI2): 信号 引脚 CS PB12 SCK PB13 MISO PB14 MOSI PB15 键盘 (GPIO 输入,上拉,低电平有效): 按键 引脚 按键 引脚 0 PD8 5 PD14 1 PD11 6 PG4 2 PD15 7 PD9 3 PG5 8 PD13 4 PD10 9 PG3 Mode PG6 In PG2 Out PD12 五、运行模式 模式 说明 游客模式 (默认) 刷卡查看物品借还状态,可进入借出流程 管理员模式 输入 6 位密码或刷管理员卡解锁。支持借出、归还、按编号查询、会员/物品登记 录入模式 刷新 RFID 卡注册会员或物品,分配类别和编号

嵌入式系统 STM32 上位机 C/C++ +5
更新于 2026-05-25

项目说明 本项目是一个基于 STM32F103ZET6 + ESP-01S 双MCU架构的温室大棚环境监测与远程控制系统。STM32 负责本地传感器数据采集、LCD显示和执行器控制;ESP-01S 负责WiFi联网,通过 阿里云IoT平台(MQTT协议) 将数据上报云端,并接收远程控制指令。支持本地按键手动控制和云端远程控制两种模式。 通过连接ESP01S开启的WIFI,访问对应IP,进行配置WIFI连接参数和云平台连接参数,可以重置。 系统架构 [传感器群] --> [STM32F103ZE] --UART3(115200)--> [ESP-01S] --MQTT--> [阿里云IoT] ^ | | | +--- LED/蜂鸣器/LCD <-- 按键控制 / 远程指令 <---+ 核心功能 环境监测:温度、湿度、光照、土壤湿度、降雨、4种气体(H2S/CO2/PM2.5/CO) 本地显示:TFT LCD 实时显示所有传感器数值 本地控制:4个按键分别控制水泵、风扇、加湿器、LED灯 远程控制:阿里云IoT平台下发8路开关指令(Switc0-Switc7) 云端上报:所有传感器数据实时上传阿里云 WiFi配网:ESP-01S 内置 Captive Portal,首次使用连接AP 智能大棚网络配置 即可配置WiFi和阿里云凭证 技术参数总表 主控芯片 项目 参数 MCU STM32F103ZE (Cortex-M3, 72MHz) Flash / RAM 512KB / 64KB 开发板 ALIENTEK 战舰(WarShip) WiFi模块 ESP-01S (ESP8266, 80MHz, 802.11 b/g/n) 传感器参数 传感器 型号/类型 量程 接口 引脚 温湿度 DHT11 温度0-50°C / 湿度20-90%RH 单总线 PG11 光照 BH1750 1-65535 lx (分辨率0.5lx) 软件I2C PD6(SCL), PD7(SDA) 硫化氢 MQ-136 模拟量 (0-3.3V) ADC1_CH10 PC0 二氧化碳 MG811 模拟量 (0-3.3V) ADC1_CH11 PC1 PM2.5 GP2Y 模拟量 (0-3.3V) ADC1_CH12 PC2 (IR脉冲: PB1) 一氧化碳 CO传感器 模拟量 (0-3.3V) ADC1_CH13 PC3 土壤湿度 土壤传感器 模拟+数字 ADC2_CH5 + GPIO PA5(AO), PA4(DO) 降雨 雨滴传感器 模拟+数字 ADC2_CH6 + GPIO PA6(AO), PA1(DO) 执行器 设备 引脚 说明 LED0 PB5 补光灯/状态指示 LED1 PE5 补光灯/状态指示 蜂鸣器 PB8 报警 TFT LCD FSMC (NE4, A10=RS) 本地显示,背光PB0 用户输入 按键 引脚 功能 KEY0 PE4 切换开关4(加湿器) KEY1 PE3 切换开关3(风扇/通风) KEY2 PE2 切换开关2(水泵) WK_UP PA0 重置WiFi配置 通信协议 链路 协议 波特率 说明 STM32 ↔ ESP-01S 自定义UART帧协议 115200 16字节定长包,F开头#结尾,校验和 ESP-01S ↔ 阿里云 MQTT — 通过AliyunIoTSDK库 STM32 → LCD/存储 FSMC / SDIO / SPI — LCD、SD卡、W25Q128字库 上行数据帧格式(STM32 → ESP-01S) 字节0: 'F' (帧头) 字节1: 数据类型 ('0'=整型, '1'=浮点, '2'=电压) 字节2-7: 物模型ID (6字符, 如"Temper", "Humidi", "LightL") 字节8-13: 数据值 (6位ASCII数字) 字节14: 校验和 = (字节1-11之和) % 127 字节15: '#' (帧尾) 轮询通道(每600ms一帧):温度→湿度→土壤→雨量→光照→Switc0→Switc1→H2S→CO2→PM2.5→CO 阿里云物模型属性 属性 类型 方向 说明 Temper int 上报 温度 Humidi int 上报 湿度 LightL int 上报 光照 soilPH float 上报 土壤湿度电压 rainIO float 上报 雨量电压 sulfid float 上报 H2S电压 Datco2 float 上报 CO2电压 AQIaqi float 上报 PM2.5电压 Dataco float 上报 CO电压 Switc0-Switc7 int 双向 8路远程开关

嵌入式系统 STM32 C/C++ MQTT +7
更新于 2026-05-25

本项目是一个基于 ESP8266 微控制器的工业级数字显示终端设备,应用于需要远程监控现场拨码设定值的场景。设备通过 4 位 BCD 拨码开关手动设定 0000~9999 的目标数值,经两片级联的 74HC165 并行转串行移位寄存器读取后,驱动外置 4 位 7 段数码管实时显示当前值及工作状态。设备通过 WiFi 接入阿里云 IoT 物联网平台,采用 MQTT 协议实现数据双向通信:一方面定时上报当前拨码数值和设备使能状态,另一方面接收云端下发的远程控制指令(启用/禁用设备)。支持 WiFi AP 模式 Captive Portal(门户劫持)配网,首次使用时用户可通过手机连接设备热点自动弹出配网页面,输入家庭/工厂 WiFi 密码即可完成联网配置,配置信息持久化存储于 EEPROM 中,断电不丢失。 系统架构 ┌─────────────┐ 并行数据 ┌──────────────┐ 串行数据 ┌──────────┐ │ 4位BCD拨码盘 │──────────────→│ 2×74HC165 │─────────────→│ ESP8266 │ │ (手动设定值) │ (4×4bit) │ (级联移位) │ (16bit) │ 主控MCU │ └─────────────┘ └──────────────┘ └────┬─────┘ │ ┌────────────┼────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ 4位7段 │ │ 阿里云 │ │ 2个按键 │ │ 数码管 │ │ IoT平台 │ │ 2个LED │ │(UART驱动)│ │ (MQTT) │ │(状态指示)│ └──────────┘ └──────────┘ └──────────┘ 硬件详细说明 4.1 核心元器件清单 序号 元器件 型号/规格 数量 用途 1 主控芯片 ESP8266 (ESP-01/NodeMCU) 1 系统核心,WiFi 通信 2 移位寄存器 74HC165 2 并行转串行,读取 BCD 拨码 3 BCD 拨码开关 4 位 BCD 旋转拨码盘 1 手动设定 0~9999 数值 4 7 段数码管 4 位 LED 数码管(UART 驱动型) 1 显示数值和状态 5 按键 轻触按键 2 复位/确认操作 6 LED 指示灯 3mm/5mm LED 2 按键状态指示 7 上拉电阻 10KΩ 若干 按键和 74HC165 上拉 4.2 引脚分配表 ESP8266 引脚 GPIO 编号 连接目标 方向 说明 D0 GPIO16 复位按键 INPUT 内部下拉,按键接地 D1 GPIO5 确认按键 INPUT 内部下拉,按键接地 D2 GPIO4 复位 LED OUTPUT 复位模式指示灯 D3 GPIO0 确认 LED OUTPUT 确认模式指示灯 D5 GPIO14 74HC165 PL (锁存) OUTPUT LOW→HIGH 锁存数据 D6 GPIO12 74HC165 CP (时钟) OUTPUT 上升沿移位 D7 GPIO13 74HC165 Q7 (数据) INPUT 串行数据输出 RX (GPIO3) GPIO3 数码管 TX OUTPUT 软串口发送 (9600 baud) TX (GPIO1) GPIO1 数码管 RX — 软串口 (与烧录口冲突) 4.3 74HC165 级联电路 两片 74HC165 采用级联方式(第一片 Q7 接第二片 SER),共读取 16 位数据: 拨码盘位1 (千位): RegisterData[4~7] = 高4bit, RegisterData[0~3] = 低4bit 拨码盘位2 (百位): ───────────────────────────────────────────────────────── 拨码盘位3 (十位): RegisterData[12~15] = 高4bit, RegisterData[8~11] = 低4bit 拨码盘位4 (个位): ───────────────────────────────────────────────────────── 注意:74HC165 读出的数据需要取反(~)才是实际的 BCD 值。 BCD 拨码编码表 拨码盘采用加一码(偏移二进制编码),物理拨码位置与实际数字存在 +1 偏移: 物理拨码位置 BCD 二进制 (DCBA) 实际显示数字 0 0001 0 1 0010 1 2 0011 2 3 0100 3 4 0101 4 5 0110 5 6 0111 6 7 1000 7 8 1001 8 9 1010 9 超出 0001~1010 范围(含 0000)视为读取错误,触发错误状态(状态 0)。 技术参数总表 项目 参数 主控芯片 ESP8266 (ESP-01/NodeMCU) 开发框架 Arduino 程序语言 C/C++ (Arduino) 代码行数 约 840 行(优化后) 移位寄存器 2× 74HC165 级联(16 位并行转串行) BCD 输入 4 位拨码开关(加一码编码,00011010 对应 09) 采样策略 连续 10 次采样,多数表决去抖(≥5 次 LOW 判 LOW) 单次采样耗时 约 80ms(16bit × 250μs × 2 × 10) 数码管接口 UART 软串口(GPIO3 RX / GPIO1 TX),9600 baud,8N1 数码管帧长 13 字节(4 位显示)/ 8 字节(单位显示) 通信校验 Modbus CRC16(查表法,256 字节查找表) 云平台 阿里云 IoT(MQTT 协议) 上报周期 1 秒(由定时器中断驱动) 上报属性 Dialer_Number(拨码值)、Dialer_Switch_whole_Control(使能状态) 下行控制 Dialer_Switch_whole_Control(0=禁用, 1=启用) 配网方式 WiFi AP 模式 + Captive Portal(DNS 劫持) AP 名称 Network Configuration AP IP 192.168.4.1 WiFi 超时 20 秒(超时自动重启,不重新配网) 配网等待 上电 12 秒无操作自动进入 自动重连 WiFi.setAutoReconnect(true) 定时器 ESP8266 硬件定时器,1 秒中断 中断函数 IRAM_ATTR TimerHandler() 按键 2 个(复位 D0/GPIO16,确认 D1/GPIO5) 按键去抖 20ms 延时 + 状态标志位防冲突 指示灯 2 个 LED(D2/GPIO4 复位灯,D3/GPIO0 确认灯) 数据存储 EEPROM(WiFi 凭据 96 字节 + 控制标志 1 字节,起始地址 2448) 恢复出厂 双键长按 3 秒,清除 WiFi 配置并重启 依赖库 TimerInterrupt_Generic、SoftwareSerial、EEPROM、ESP8266WiFi、DNSServer、ESP8266WebServer、AliyunIoTSDK 代码及更多详情请看Code代码文件夹

嵌入式系统 ESP8266 C/C++ Modbus RTU +3
更新于 2026-05-24

以前写的项目,由于是那个时候是自己手敲的,所有观赏性不太好,但功能是完美无错的 可以通过AI解读整理,变成你们自己的项目,感兴趣可以下载代码或者在线预览观看。 指纹密码锁 基于 STC89C52(51内核)单片机设计的多功能指纹密码锁系统,集成指纹识别、密码输入、温度检测于一体。 功能特性: 密码开锁:4位数字密码输入,支持明文/密文显示切换,连续输错3次锁定60秒 指纹开锁:通过 AS608 光学指纹模块实现指纹录入、搜索匹配和删除,最多存储1000枚指纹 密码管理:支持修改密码(需验证原密码,两次新密码确认),支持备用密码切换 温度检测:DS18B20 数字温度传感器实时采集环境温度,精确到小数点后3位 数据持久化:AT24C02 EEPROM 存储密码和错误次数,断电不丢失 舵机控制:验证成功后舵机正转开锁,自动反转归位 硬件组成: 模块 型号 用途 主控芯片 STC89C52 系统核心控制 指纹模块 AS608 指纹采集与识别 显示屏 LCD1602 状态与信息显示 输入设备 4×4矩阵键盘 密码输入与功能选择 执行机构 SG90舵机 门锁开关动作 温度传感器 DS18B20 环境温度检测 存储芯片 AT24C02 密码与配置掉电保存 通信接口 UART串口 单片机与指纹模块通信

嵌入式系统 51单片机 C/C++ I2C +3
更新于 2026-05-22

以前写的项目,由于是那个时候是自己手敲的,所有观赏性不太好,但功能是完美无错的 可以通过AI解读整理,变成你们自己的项目,感兴趣可以下载代码或者在线预览观看。 基于 51 单片机(STC89C52)的红外遥控电机调速项目。系统通过外部中断与定时器实现 NEC 红外协议解码,识别遥控器按键 `0/1/2/3` 并切换 4 档速度:停止、低速、中速、高速;电机采用软件 PWM 控制,数码管实时显示当前档位。项目完整覆盖了中断、定时器、红外解码和电机驱动等嵌入式核心功能。

嵌入式系统 51单片机 C/C++ 进行中
更新于 2026-05-05
总页数 1 页