毕业设计 stm32智能灌溉系统(源码+硬件+论文)_stm32 水泵-程序员宅基地

技术标签: 单片机毕设  stm32  毕业设计  灌溉系统  物联网毕设  单片机  


0 前言


这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

毕业设计 stm32智能灌溉系统(源码+硬件+论文)

学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

项目分享:

https://gitee.com/sinonfin/sharing

在这里插入图片描述

1 主要功能

stm32c8t6智能灌溉系统
1.可以通过OLED显示检测空气的温度
2.可以通过OLED显示土壤的湿度
3.当土壤湿度过低时可以通过水泵能够抽水进行灌溉
4.连接WIFI上云
5.可通过云端显示实时数据
6.可通过APP控制水泵开关和LED灯

在这里插入图片描述

使用温湿度传感器来检测土壤的湿度情况,显示在OLED显示屏中。然后根据土壤湿度情况控制水泵抽水进行灌溉,可通过app上的开关控制水泵的状态。可通过光敏模块检测光照的强度,当光照强度较低时,水泵将自动打开。接下来我们进行项目演示。首先,我们的设备已经通过WiFi与手机配对,当光线较暗的时候,可以通过app打开灯光,其次我们还可以通过app来控制水泵的开关我们还有另外一种打开水泵的方式,当光线较暗时,水泵自动打开,当光线较强时,水泵自动关闭。可通过云端实时传输现在的空气湿度和空气温度和土壤湿度的值反馈到手机上进行观测。

灌溉系统工作时,由湿度传感器采集土壤里的干湿度信号,检测到的湿度信号通过A/D模块转换,将标准的电流模拟信号转换为湿度数字信号,输入到可编程控制器。可编程控制器内预先设定50%-60%RH为标准湿度值,实际测得的湿度信号与50%-60%RH比较,可以分为:在这个范围内,超出这个范围,小于这个范围三种情况。可编程控制器将控制信号传给变频器,变频器根据湿度值,相应的调节继电器,继电器带动水泵从水源抽水,需要灌溉时,水泵就自动开启,通过水泵为喷头输水整个系统协调工作,实现对灌溉的智能控制。

2 硬件设计(原理图)

在这里插入图片描述

在这里插入图片描述

3 核心软件设计

程序主流程

在这里插入图片描述

关键代码

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;
      }

    }   
  }
}

4 实现效果

在这里插入图片描述

在这里插入图片描述

5 最后

包含内容
在这里插入图片描述

项目分享:

https://gitee.com/sinonfin/sharing

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_71369066/article/details/130509604

智能推荐

CAN总线的物理层分析(三)_can物理层需求分析-程序员宅基地

文章浏览阅读2.4k次。一、CAN拓扑网络连接在CAN总线上的设备叫做节点设备(CAN Node),CAN网络的拓扑一般为线型。线束最常用的是双绞线,线上传输为对称的差分电平信号。下图为CAN总线网络示意图,节点主要包括Host、控制器和收发器。Host常集成有CAN控制器,CAN控制器负责处理协议相关功能,以减轻Host的负担。CAN收发器将控制器连接到传输媒介。通常控制器和总线收发器通过光耦或磁耦隔离,这样即使总..._can物理层需求分析

2020解读中国互联网:局部领先、快进的数字化发展_解读中国互联网:局部领先-程序员宅基地

文章浏览阅读133次。局部领先的当前格局:中国互联网特色分明,部分领域世界领先应对不确定性,是未来十年数字经济发展的重要命题。突如其来的新冠疫情为全球发展秩序带来了巨大的不确定性,政府、企业和个体迅速进入了一场全社会参与的数字化实验,以数字化作为应对不确定性的有效方针。在全社会数字化的进程中,中◿互联网“数智化”的步伐加快,呈现以下特色格局:在产业端,局部领先全球:产业互联网发展水平在不同行业差异明显。在需求端个性化程度高且供给端分散的行业,例如餐饮、服饰等,数字化程度已开始引领全球,互联网巨头赋能行业供应链各环节的B端企业_解读中国互联网:局部领先

关于Linux如何加入windows创建的域_linux账户验证使用windows域 活动目录-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏11次。一、场景描述在某系统微服务改造中,在某windows域环境下,创建了3台Linux 虚拟机来进行功能性验证,为更好地彼此间信任和融合域环境,需要将Linux虚拟机加入到现有的Windows域内,那如何实施呢,本次将对此进行讨论阐述。回顾AD 域验证过程:自 Windows 2000 以来,AD 一直是 Windows 的身份验证和目录服务,AD 基于 LDAP 实现其功能,其使用 DNS 进行主机名的解析,使用 Kerberos V5 进行用户身份验证,使用 LDAP V3 进行统一的帐户管理。二、常_linux账户验证使用windows域 活动目录

qt设计为磨砂玻璃效果_Pixyz的2020.1更新为数据准备带来了磨砂和光泽-程序员宅基地

文章浏览阅读753次。qt设计为磨砂玻璃效果For their 2020.1 release, our partners at Pixyz have focused on improvements ranging from core geometry capabilities and new import formats to visualization and user interface enhancements...._qt将图片添加毛玻璃效果

网络协议 (三) Http1.0 vs Http1.1 vs Http2.0 (应用层)_http1.0和http1.1哪个占用资源-程序员宅基地

文章浏览阅读2.1k次。这篇文章会从下面几个维度来对比 HTTP 1.0 和 HTTP 1.1:响应状态码 缓存处理 连接方式 Host头处理 带宽优化1. 响应状态码Http1.1 与 Http1.0 相比,新加入了大量的状态码。2. 缓存处理Http1.0 中的缓存机制非常简单,服务端使用 Expires 标签来标识一个相应体,在 Expires 标志的时间内的所有请求,获得的都会是缓存。服务端 初次返回给 客户端 的响应体中,会有一个 Last-Modified 标签,该标签标记了被请求资源在_http1.0和http1.1哪个占用资源

【指纹识别】基于matlab指纹图像细节特征提取 【含Matlab源码 227期】_matlab指纹特征提取代码-程序员宅基地

文章浏览阅读6.2k次,点赞4次,收藏53次。指纹图像细节特征提取 完整的代码,方可运行;可提供运行操作视频!适合小白!_matlab指纹特征提取代码

随便推点

Pycharm常用快捷键【快查字典版】_pycharm快捷键-程序员宅基地

文章浏览阅读6.7w次,点赞457次,收藏2.1k次。爆肝总结!pycharm快捷键【快查字典版】,使用时秒查!建议收藏!!_pycharm快捷键

Ubuntu系统盘由MBR+legacy转为GPT+EFI如何恢复grub引导_ubuntu mbr转gpt-程序员宅基地

文章浏览阅读2.2k次。 最近实验室的服务器想做一下升级,把500G的西数换成4T的希捷。因为系统上有很多东西,所以最开始想的是直接做系统对拷,过程很顺利,虽然查了不少教程,但是发现最简单直观的方法还是用 dd 命令,实例如下:sudo dd if=/dev/sdx of=/dev/sdy bs=128K conv=noerror,sync status=progress解释一下参数的意义:if是..._ubuntu mbr转gpt

JAVA中MD5加密解密(MD5工具类)_java md5解密工具类-程序员宅基地

文章浏览阅读2w次,点赞5次,收藏69次。ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)http://ascii.911cha.com/工具类如下:import org.apache.commons.codec.digest.DigestUtils;import java.math.BigInteger;import java.se..._java md5解密工具类

SM2加密解决java与iOS端加解密不配套问题_ibm jdk支持sm2加密-程序员宅基地

文章浏览阅读4.5k次,点赞3次,收藏3次。SM2加密解决java与iOS端加解密不配套问题问题描述问题判定代码声明问题描述使用java开发的SM2加解密,由java层生成SM2公私钥,iOS、Android(因和java层一致,暂忽略)层使用公钥做加密,java层做解密。java生成的公私钥在iOS和java层单独做加解密均可用。iOS层加密结果java层无法解密问题判定SM2非对称加密的结果由C1,C2,C3三部分组成。其中C1是生成随机数的计算出的椭圆曲线点,C2是密文数据,C3是SM3的摘要值。最开始的国密标准的结果是按C1C_ibm jdk支持sm2加密

Python爬虫踩坑之json报错,json包比较_python爬虫json载荷遇到的坑-程序员宅基地

文章浏览阅读3.1k次。json.loads()报错simplejson,demjson,json性能比较_python爬虫json载荷遇到的坑

【数据分享】2000~2022年中国区域250米植被覆盖度FVC数据集_植被覆盖度fvc产品-程序员宅基地

文章浏览阅读279次。通过时空变化趋势分析检验法分析,该数据集符合时间变化趋势和空间变化趋势。文件命名:HXPT_FVC_MONTH_MAX_250m_YYYYMM_全国_yyyymmddhhmmss.tif,其中HXPT代表国家生态保护红线监管平台生产,FVC代表植被覆盖度,MONTH代表月度,MAX代表最大值合成,250m代表空间分辨率250米,全国代表覆盖范围全国,YYYYMM代表数据时间年月,yyyymmddhhmmss代表数据生产时间年月日时分秒 数据读取方式:文件采用.tif格式存储,可用ArcGIS等软件打开。_植被覆盖度fvc产品

推荐文章

热门文章

相关标签