news 2026/9/8 16:20:08

【单片机毕业设计】基于STM32与蓝牙的智能盆栽灌溉系统设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【单片机毕业设计】基于STM32与蓝牙的智能盆栽灌溉系统设计

1. 项目背景与核心功能

家里养绿植的朋友应该都有过这样的体验:出差几天回来,发现心爱的盆栽要么干枯发黄,要么积水烂根。传统的定时浇水方式很难适应不同植物的需求,而手动浇水又太依赖人的记忆。这就是为什么我们需要一个能自动感知土壤湿度、远程控制的智能灌溉系统。

这个毕业设计项目使用STM32F103C8T6单片机作为大脑,搭配蓝牙模块实现手机远程操控。实测下来,系统可以稳定实现三大核心功能:

  • 智能监测:通过土壤湿度传感器实时检测含水量,精度能达到±3%RH
  • 自动灌溉:当湿度低于设定下限时自动启动水泵,超过上限自动停止
  • 远程控制:用手机蓝牙连接后,可以查看实时数据、手动开关水泵、调整阈值

我去年帮学生调试这个项目时,发现加上OLED显示屏后体验提升明显。屏幕不仅能显示当前湿度和阈值,还能直观看到水泵工作状态,比单纯用LED指示灯友好得多。

2. 硬件设计详解

2.1 核心部件选型

主控芯片选择STM32F103C8T6是经过实际对比的。相比STC89C52,它的优势非常明显:

参数STM32F103C8T6STC89C52
主频72MHz11.0592MHz
Flash64KB8KB
RAM20KB512B
ADC通道10位精度×16通道需外接ADC芯片
开发环境Keil MDK/STM32CubeIDEKeil C51

蓝牙模块推荐HC-05,价格便宜(约15元)且稳定。我在测试时发现,它的有效传输距离在无障碍环境下能达到8米,完全满足家庭使用。注意要买带底板的那种,直接引出VCC、GND、TXD、RXD四个引脚,接线更方便。

2.2 传感器电路设计

土壤湿度传感器建议用YL-69,它的探针做了镀金处理,比普通不锈钢的更耐腐蚀。接线时要注意:

// STM32引脚配置 #define SOIL_SENSOR_PIN PA0 // 接AO引脚 void ADC_Init() { RCC->APB2ENR |= RCC_APB2ENR_ADC1EN; ADC1->CR2 = ADC_CR2_ADON; // 其他配置省略... }

实测中发现一个常见问题:传感器长期插在土里会导致电解腐蚀。解决办法有两种:要么采用间歇供电(测量时才通电),要么选用电容式传感器(如SEN0193)。

3. 软件实现关键点

3.1 湿度控制逻辑

主控制程序采用状态机设计,这是我在多个项目中验证过的稳定方案:

typedef enum { STATE_NORMAL, STATE_DRY, STATE_WATERING, STATE_TOO_WET } SystemState; void ManageWatering() { static SystemState state = STATE_NORMAL; uint16_t humidity = GetSoilHumidity(); switch(state) { case STATE_NORMAL: if(humidity < HUMI_MIN) { StartPump(); state = STATE_WATERING; } break; case STATE_WATERING: if(humidity > HUMI_MAX) { StopPump(); state = STATE_NORMAL; } break; // 其他状态处理... } }

3.2 蓝牙通信协议

为了让手机APP能稳定通信,我设计了一套简单的协议格式:

[HEAD][LEN][CMD][DATA][CHECKSUM]

其中:

  • HEAD固定为0xAA
  • LEN是DATA长度
  • CMD包括0x01(读取数据)、0x02(设置阈值)等
  • CHECKSUM是异或校验

在STM32端,用串口中断接收数据:

void USART1_IRQHandler() { if(USART1->SR & USART_SR_RXNE) { uint8_t ch = USART1->DR; // 解析协议... } }

4. 低功耗优化技巧

很多同学忽略了一个问题:系统要长期插电工作,功耗很重要。通过实测发现几个优化点:

  1. 传感器供电控制:用MOS管控制传感器电源,测量时才通电
  2. STM32睡眠模式:在空闲时进入Stop模式,功耗从25mA降到0.5mA
  3. 蓝牙模块配置:AT+ROLE=0设置从模式,AT+PSAV=1开启低功耗

我的测试数据显示,优化后系统待机电流从58mA降到了3.2mA,用2000mAh的充电宝可以连续工作25天。

5. 常见问题解决方案

在实验室带学生做这个项目时,最常遇到三个问题:

问题1:蓝牙连接不稳定

  • 检查天线是否完全展开
  • 避开2.4G干扰源(如WiFi路由器)
  • 修改AT+UART=115200,0,0提高波特率

问题2:水泵启动导致系统复位

  • 在继电器线圈加续流二极管
  • 给STM32加1000μF电容
  • 电源线要足够粗(建议18AWG)

问题3:土壤湿度读数跳变

  • 在软件中做滑动滤波
#define FILTER_LEN 5 uint16_t FilterValue(uint16_t new_val) { static uint16_t buf[FILTER_LEN]; static uint8_t index = 0; buf[index++] = new_val; if(index >= FILTER_LEN) index = 0; uint32_t sum = 0; for(int i=0; i<FILTER_LEN; i++) sum += buf[i]; return sum / FILTER_LEN; }

6. 扩展功能建议

如果想拿高分,可以考虑这些加分项:

  1. 多盆栽管理:用74HC595扩展IO,控制多个水泵
  2. 历史数据记录:加SPI Flash存储30天数据
  3. 微信小程序控制:换ESP8266模块,成本只增加10元
  4. 光照联动:加BH1750传感器,根据光线调整浇水策略

去年有个学生加入了植物生长灯控制,在答辩时演示自动补光功能,最后拿了优秀毕业设计。其实硬件上只是多了个MOS管驱动电路,但展示效果很好。

7. 实物制作注意事项

打PCB时推荐用嘉立创的SMT贴片服务,比自己焊接省事很多。几个实用建议:

  • 板子尺寸控制在10×10cm内(打样5元)
  • 所有IO口引出测试点
  • 电源走线宽度不小于0.3mm
  • 预留SWD调试接口

测试时一定要先烧录这个死循环程序,确认所有电源电压正常:

while(1) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); HAL_Delay(500); }

最后提醒大家,答辩前准备个漂亮的亚克力外壳,淘宝定制大概30元,比裸板演示专业得多。记得在侧面开孔露出土壤传感器,方便评委观察。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 15:01:11

J-Link RTT高效调试技巧与实战优化指南

1. J-Link RTT调试技术入门指南 第一次接触J-Link RTT时&#xff0c;我正面临一个棘手的问题&#xff1a;项目板上的串口引脚全被占用了&#xff0c;但调试过程中又急需查看实时日志。当时尝试了各种方法都不理想&#xff0c;直到发现了这个"藏在"SWD接口里的调试神器…

作者头像 李华
网站建设 2026/9/3 10:05:22

LRC歌词制作工具:从零开始的歌词同步与编辑全攻略

LRC歌词制作工具&#xff1a;从零开始的歌词同步与编辑全攻略 【免费下载链接】lrc-maker 歌词滚动姬&#xff5c;可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 在数字音乐时代&#xff0c;精准的歌词同步不仅能提升…

作者头像 李华
网站建设 2026/9/4 7:56:27

EasyAnimateV5实战:电商主图秒变动态广告视频的保姆级教程

EasyAnimateV5实战&#xff1a;电商主图秒变动态广告视频的保姆级教程 1. 为什么电商商家需要图生视频能力&#xff1f; 你有没有遇到过这些情况&#xff1f; 一张精心设计的商品主图&#xff0c;放在详情页里静止不动&#xff0c;用户划两下就走了&#xff1b;想做短视频推…

作者头像 李华
网站建设 2026/9/3 9:51:12

Nano-Banana StudioGPU优化:expandable_segments显存管理实测

Nano-Banana Studio GPU优化&#xff1a;expandable_segments显存管理实测 1. 项目背景与核心价值 Nano-Banana Studio 是一款基于Stable Diffusion XL(SDXL)技术的专业AI图像生成工具&#xff0c;专注于为服装和工业产品设计提供一键式视觉拆解方案。通过AI技术&#xff0c;…

作者头像 李华
网站建设 2026/9/3 9:51:18

从零构建:如何用自制数据集训练高精度入侵检测模型

从零构建高精度入侵检测模型&#xff1a;自制数据集实战指南 1. 入侵检测系统的技术演进与现状 网络入侵检测系统&#xff08;IDS&#xff09;作为网络安全防御体系中的关键组件&#xff0c;其技术发展经历了从规则匹配到智能分析的演进过程。早期的IDS主要依赖预定义的攻击特…

作者头像 李华