news 2026/4/15 17:29:51

【单片机毕业设计】基于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/3/27 9:37:03

解锁游戏串流新体验:打造家庭多设备游戏共享平台

解锁游戏串流新体验&#xff1a;打造家庭多设备游戏共享平台 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器&#xff0c;支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine …

作者头像 李华
网站建设 2026/4/9 0:01:04

保姆级教程:用Ollama玩转translategemma-27b-it图文翻译

保姆级教程&#xff1a;用Ollama玩转translategemma-27b-it图文翻译 1. 为什么你需要这个模型——不是所有翻译工具都叫“图文翻译” 你有没有遇到过这些场景&#xff1a; 看到一张中文说明书图片&#xff0c;想快速知道英文版怎么写&#xff0c;却得先手动打字识别再复制进…

作者头像 李华
网站建设 2026/4/14 20:06:04

基于Hadoop与协同过滤算法的智能音乐推荐系统设计与实现

1. 音乐推荐系统的技术背景与挑战 音乐流媒体平台每天新增的歌曲数量超过10万首&#xff0c;用户面对海量内容时常常陷入"选择困难"。传统的关键词搜索和排行榜推荐已经无法满足个性化需求&#xff0c;这正是协同过滤算法大显身手的地方。我在2018年参与某音乐App重构…

作者头像 李华
网站建设 2026/4/15 10:12:21

看完就想试!用Unsloth定制专属AI助理

看完就想试&#xff01;用Unsloth定制专属AI助理 你有没有过这样的想法&#xff1a;想要一个只听你指挥、懂你业务、回答精准的AI助手&#xff1f;不是通用大模型那种“什么都懂一点&#xff0c;但又不太准”的状态&#xff0c;而是真正属于你的智能助理——能准确解释公司内退…

作者头像 李华
网站建设 2026/4/15 9:12:43

TC3xx的SMU模块故障诊断实战:从寄存器快照到系统恢复的完整链条

TC3xx芯片SMU模块故障诊断实战&#xff1a;从寄存器快照到系统恢复的完整链条 1. SMU模块在汽车电子中的核心价值 在汽车电子系统中&#xff0c;安全性和可靠性从来都不是可选项&#xff0c;而是必须满足的底线要求。英飞凌TC3xx系列芯片内置的安全管理单元(SMU)正是为此而生…

作者头像 李华
网站建设 2026/4/8 10:04:34

Qwen-Image-2512-ComfyUI新手必看:5个关键操作细节

Qwen-Image-2512-ComfyUI新手必看&#xff1a;5个关键操作细节 1. 为什么这5个细节决定你能否顺利出图 刚点开ComfyUI界面时&#xff0c;你可能以为只要选好工作流、填完提示词、点“队列”就能出图——结果等了两分钟&#xff0c;进度条卡在87%&#xff0c;或者生成一张全是…

作者头像 李华