当前位置:网站首页>【毕业设计】远程智能浇花灌溉系统 - stm32 单片机 嵌入式 物联网
【毕业设计】远程智能浇花灌溉系统 - stm32 单片机 嵌入式 物联网
2022-08-11 11:12:00 【Mdc_stdio】
0 前言
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是
基于stm32的远程智控制浇花灌溉系统
学长这里给一个题目综合评分(每项满分5分)
- 难度系数:3分
- 工作量:3分
- 创新点:4分
🧿 选题指导, 项目分享:
1 简介
通过wifi模块,结合云服务,实现远程控制浇花。这对于经常需要出差,但有偏爱花草的人来说,比较便利。
2 主要器件
- STM32RBT6
- WiFi模块
- 温湿度传感器
- 电机驱动
3 实现效果




4 设计原理
系统框架
实现原理
本系统硬件主要部件由STM32单片机,WiFi模块,传感器,电机驱动四部分组成。
其中STM32是整套系统的主控制器,负责整个系统的工作。
WiFi模块内部烧录好能够连接云端的SDK,这样能够保证系统正常的连接到云端,顺利的将数据上传到云,并且WiFi模块能够接受远程设备推送来的消息,然后将其传给STM32,从而使整套系统可以与云端对话。
传感器是本套系统的触觉系统,能够感知花瓶土壤表面的温湿度信息。
电机驱动是本套系统的执行部分,负责完成远程的控制命令。
将这几部分结合到一起就实现了一个简单的智能系统。
工作过程
- 系统定时3S上传一次温度和湿度信息到云端,通过远程手机客户端便可以查看花瓶当前的温湿度情况。
- 系统可以随时接手远程(手机客户端)发送来的控制命令,并且执行相应的命令。
- 结合云端的阈值报警功能,可以设置湿度低于某一值之后通过邮件或者短信等形式告知用户,然后用户在决策要不要浇花,如果需要就可以打开手机客户端,立刻给心爱的花草浇水了。
主要原理图

5 部分关键代码
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static uint32_t eventTimeCount; //定时事件计数器
static uint32_t motorTimeCount;//监控事件计数器
static char ledState; //LED灯状态翻转
//tim1负责定时上传事件
if(htim->Instance == htim1.Instance)
{
eventTimeCount++;
if(eventTimeCount >3000)
{
eventTimeCount = 0;
eventIsRun = 1; //开始执行相应任务
}
}
//tim2负责浇水时间管理和液晶屏时间显示
if(htim->Instance == htim2.Instance)
{
motorTimeCount++;
if(motorTimeCount >1000)
{
motorTimeCount =0;
//翻转LED灯状态
ledState = ~ledState;
if(ledState)
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_SET);
else
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_RESET);
if(flowerFlag)//是否有浇水命令,若有命令,启动浇水
{
start_flower();
flowerCnt++;
}
if(flowerCnt > 4)//浇水时间到
{
stop_flower();
flowerCnt = 0;
flowerFlag = 0;
}
updateTimeCnt++;
if(updateTimeCnt>10)//超时,则更新液晶屏时间
{
updateLcdIsRun = 1;
updateTimeCnt=0;
}
}
}
}
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "key.h"
#include "spi.h"
#include "malloc.h"
#include "DCConfig.h"
#include "text.h"
#if (COMMUNICATION_MODE==0)
#include "common.h"
#elif (COMMUNICATION_MODE==1)
#include "bc26.h"
#endif
#include "usart2.h"
#if (CODE_TYPE==2)
#include "dht11.h"
#include "soil.h"
#include "light.h"
#endif
#if (CODE_TYPE==3)
#include "fire.h" //Fire
#include "mq_25.h" //MQ25
#include "mq_135.h"
#include "pm25.h"
#endif
int main(void)
{
// u8 key,fontok=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为9600
USART2_Init(115200); //初始化串口2波特率为115200 ,WIFI模块
SPI2_Init(); //初始化SPI
LCD_Init(); //初始化液晶
LED_Init(); //LED初始化
KEY_Init(); //按键初始化
#if (CODE_TYPE==2)
DHT11_GPIO_Config();
Adc_Init_Light();
Adc_Init_Soil();
#elif (CODE_TYPE==3)
Adc_Init_Fire();
Adc_Init_MQ25();
Adc_Init_MQ135();
Adc_Init_PM25();
#elif (CODE_TYPE==4)
#endif
//初始化空气质量检测传感器
mem_init(); //初始化内存池
Lcd_Clear(WHITE);
LCD_ShowString(5,20,128,16,16,"System Success!");
delay_ms(1500);
Lcd_Clear(WHITE);//清屏
#if (COMMUNICATION_MODE==0)
atk_8266_test(); //进入ATK_ESP8266测试
#elif (COMMUNICATION_MODE==1)
Set_up_NBiot();
#endif
}
🧿 **选题指导, 项目分享:**
[https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md](https://gitee.com/dancheng-senior/project-sharing-1/blob/master/%E6%AF%95%E8%AE%BE%E6%8C%87%E5%AF%BC/README.md)
5 最后
边栏推荐
- a-upload上传图片去掉预览icon
- a sequence of consecutive positive numbers with sum s
- Use Function Compute to package and download OSS files [Encounter Pit Collection]
- 如何给女朋友解释什么是缓存穿透、缓存击穿、缓存雪崩?
- 1.MySQL ----数据库的基础操作
- Starting from zero configuration vim (11) -- plug-in management
- 如何在游戏中实现一场下雨效果
- LeetCode69:牛顿迭代法和二分法求解x的平方根
- 4. 继承
- 【学习笔记】线性规划对偶定理
猜你喜欢

放苹果

宝塔一键部署WordPress(含宝塔添加站点、阿里云安全组配置、阿里云子域名解析)

Bitmap这个“内存刺客”你也要小心

How long does it take to train a neural network, neural network training takes too long

Simple implementation of a high-performance clone of Redis using .NET (seven-end)

Install nodejs

Cholesterol-PEG-FITC,Fluorescein-PEG-CLS,胆固醇-聚乙二醇-荧光素水溶性

darknet 结构体汇总

What areas of the deep neural network are related to the human brain neural network?

小目标绝技 | 用最简单的方式完成Yolov5的小目标检测升级!
随机推荐
那些不用写代码也能做游戏的工具
HTM5学习:第一阶段02
Latex引用图片 发现 显示的图片标号不对
What areas of the deep neural network are related to the human brain neural network?
Cholesterol-PEG-FITC, Fluorescein-PEG-CLS, Cholesterol-PEG-Fluorescein water-soluble
阿里云ssl证书申请,宝塔ssl证书部署
Incredible, thanks to this Android interview question, I have won offers from many Internet companies
Spark Core
LeetCode · Question of the Day · 1417. Reformatting String · Simulation
好的架构是进化来的,不是设计来的
【Ackerman Motion Control】
The fertile soil cloud innovation plan is coming
openresty概述及Lua语言的嵌入
LeetCode69:牛顿迭代法和二分法求解x的平方根
[Ext JS]11.14 SimXhr.js?_dc=1659315492151:65 Uncaught TypeError problem analysis and solution
如何设计一组会出现死锁(Deadlock)的ABAP程序
阿里云 Hologres助力好未来网校实时数仓降本增效
六、一起学习Lua 循环
关于数据权限的设计
人是怎么废掉的?人是怎么变强的?