首页 > 其他分享 >基于STM32单片机智能浇花系统/大鹏灌溉/土壤湿度控制系统/自动灌溉/ 手机显示控制/环境监测/远程监测

基于STM32单片机智能浇花系统/大鹏灌溉/土壤湿度控制系统/自动灌溉/ 手机显示控制/环境监测/远程监测

时间:2024-08-14 11:52:22浏览次数:14  
标签:ShowString 16 32 灌溉 STM32 OLED GPIO ShowChinese 土壤湿度

⭐项目概述

设计了一个基于STM32单片机智能浇花系统,该系统集成了多种环境传感器,包括土壤湿度、温度、光照强度和水位/雨水传感器,实现对环境参数的实时监测。通过OLED显示模块,系统能够直观展示环境数据,而ESP8266WiFi模块的加入则实现了数据的远程传输和监控,极大提升了管理者与系统的互动效率。在硬件设计部分,论文详细阐述了系统架构的搭建、传感器的选择及电路的实现。软件设计方面,重点讨论了基于STM32的程序开发、数据处理逻辑以及用户界面设计,确保了系统的高效率和易用性。

⭐实物图


⭐主要功能:

    1.监测土壤湿度、温度、光照强度和雨水/液位
    2.按键调节土壤湿度、温度、光强阈值
    3.当土壤湿度低时,自动启动水泵加水
    4.当温度高时,自动启动水泵加水
    5.当光照暗时,自动开启补光灯
    6.任何数据超过阈值,进行声光报警
    7.显示屏显示各参数数据和阈值
    8.wifi模块将当前数据温度、湿度、光照和雨水/水位到手机app显示
    9.分自动和手动两种模式,手动模式下可以通过手机控制灯光和水泵

⭐系统框图:

⭐系统原理图

⭐系统PCB板

⭐部分代码

    delay_init();             //延时函数初始化      
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);/
    LED_BEEP_Init();
    KEY_Init();
    Relay_Init();
    TIM2_Int_Init(72-1,1000-1);//定时1ms   72,000,000Hz/1,000Hz=72,000=72*1000
    uart_init(115200);         //串口1初始化为115200
    uart2_init(9600);
    OLED_Init();
    OLED_ColorTurn(0);//0正常显示,1 反色显示
    OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
    Adc_Init();
    userInit();
    gizwitsInit();
    gizwitsSetMode(2);

⭐数据显示代码

//信息显示
				OLED_ShowChinese(0,0,0,16,1);
				OLED_ShowChinese(16,0,1,16,1);
				OLED_ShowString(32,0,":",16,1);
				OLED_ShowChinese(56,0,30,16,1);
				OLED_ShowChinese(0,16,2,16,1);
				OLED_ShowChinese(16,16,3,16,1);
				OLED_ShowString(32,16,":",16,1);
				OLED_ShowString(56,16,"Lux",16,1);
				OLED_ShowChinese(0,32,4,16,1);
				OLED_ShowChinese(16,32,5,16,1);
				OLED_ShowString(32,32,":",16,1);
				OLED_ShowString(56,32,"%",16,1);
				OLED_ShowChinese(0,48,6,16,1);
				OLED_ShowChinese(16,48,7,16,1);
				OLED_ShowString(32,48,":",16,1);

⭐ 自动/手动模式代码

//自动或手动
		if(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_5))
			{
				OLED_ShowString(96,48,"Man ",16,1);
			}
		else
			{
				OLED_ShowString(96,48,"Auto",16,1);
				//温度、土壤湿度低于阈值,打开水泵
				if(humidity<humii||temperature>tempp)
				{
					GPIO_ResetBits(GPIOB,GPIO_Pin_9);
					GPIO_SetBits(GPIOA,GPIO_Pin_8);
					GPIO_ResetBits(GPIOA,GPIO_Pin_12);
				}
				else
				{
					GPIO_SetBits(GPIOB,GPIO_Pin_9);
					GPIO_ResetBits(GPIOA,GPIO_Pin_8);
					GPIO_SetBits(GPIOA,GPIO_Pin_12);
				}
				//光照强度低于阈值,打开日光灯
				if(lux<luxx)
				{

					GPIO_ResetBits(GPIOB,GPIO_Pin_8);
					GPIO_SetBits(GPIOA,GPIO_Pin_8);
					GPIO_ResetBits(GPIOA,GPIO_Pin_12);
				}
				else
				{
					GPIO_SetBits(GPIOB,GPIO_Pin_8);
					GPIO_ResetBits(GPIOA,GPIO_Pin_8);
					GPIO_SetBits(GPIOA,GPIO_Pin_12);
				}
			}

⭐资料获取

我用夸克网盘分享了「系统资料.zip」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/7f35e46a7018
提取码:EM5r 

标签:ShowString,16,32,灌溉,STM32,OLED,GPIO,ShowChinese,土壤湿度
From: https://blog.csdn.net/weixin_46532457/article/details/141024989

相关文章

  • STM32&低功耗与备用备份区域
    STM的备份备用区域其实就是两个区块:BKP和RTC。低功耗则其实是STM32四种模式中的三种耗能很低的模式。目录一:备用区域1.BKP2.RTC二:低功耗模式1.睡眠模式:2.停机模式:3.待机模式:一:备用区域1.BKPBKP就是一个备份寄存器,大小不是一定的。但基本单位都是16位。所谓的的备......
  • STM32&IIC与SPI详解
    单片机里的通信协议其实蛮多的,IIC;SPI;MQTT;CAN;包括串口也是一种通信协议。而串口通信虽然实现了全双工,但需要至少三根线,为了节省这一根线的成本,于是IIC诞生了。目录一.IIC协议1.IIC的结构2.IIC的特点3.IIC的通信时序4.具体配置(32HAL库版)二.SPI协议1.SPI的结构2.SPI的特......
  • freeRTOS入门学习-基于STM32F103C8T6最小系统板-创建任务_声光色彩
    首先重温一下任务的三大要素:        ·做何事(函数)    ·栈(每个任务都应该有自己独享的栈)    ·优先级(非必要的因素,但是有了优先级可以处理更多的任务)一、如何创建任务:    当一个任务被切换出去之后,要想再找到他,应该去到某个链表里边......
  • STM32 H7系列 全中文HAL&LL库使用手册 中英双语对照 GPT机翻 共4020页、约152万字
    STM32H7系列全中文HAL_LL库使用手册,中英文双语对照阅读。内容、格式对照官方原文,含标签导航及目录跳转。全文GPT机翻,除人工翻译外,相对更加贴合原文原意,双语版防止翻译错误方便对照。全文:4020页,约152万字,2022年12月版本,当前官网最新版。 *******下有更多展示图片********......
  • [STM32]如何正确的安装和配置keil?(详细)
    一、我们为什么需要keil?    对于嵌入式开发的硬件来讲STM32可以说有着不可撼动的地位,它可能是很多人入门嵌入式开发接触到的第一款芯片,其强大的生态和大量开放的源代码也深受开发者的喜爱。对于嵌入式开发的软件来讲,keil绝对是在一届软件中脱颖而出的,它是一款集成了......
  • STM32在Keil5中DeBug界面可以正常运行但是正常运行就失败
    项目场景:提示:这里简述项目相关背景:使用STM32CubeMX建立项目生成基础代码在Keil5MDK中编写STM32F03RCT6程序问题描述提示:这里描述项目中遇到的问题:在DeBug界面可以正常运行但是一旦进行重启自启动芯片就不会正常运行在Debug运行是会卡在一下但是后续运行可继续运行......
  • 我在高职教STM32——I2C通信之读写EEPROM(3)
            大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助CSDN平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学课件......
  • 【STM32】SPI通信和RTC实时时钟
    个人主页~SPI通信和RTC实时时钟SPI通信一、简介二、硬件电路三、基本原理四、SPI时序1、时序基本单元2、时序五、FLASH操作注意事项1、写入操作2、读取操作六、SPI外设1、简介2、结构七、传输方式1、主模式全双工连续传输2、非连续传输RTC实时时钟一、Unix时间戳......
  • 零基础学会制作 基于STM32/51的多功能车位锁设计/车位锁/停车计时/停车场计时器
    项目介绍本研究旨在设计并实现一款基于STM32单片机的多功能车位锁系统,该系统利用STM32单片机的高性能和低功耗特性,集成了距离检测、光照控制、蓝牙通信等多种智能技术,实现了对停车位的智能管理和自动控制。通过超声波模块实时监测车辆与车位锁之间的距离,借助光敏传感器调节......
  • 零基础学会制作 基于STM32/51的智能水质监测系统设计/水检测/鱼塘检测/水质量检测
    项目介绍本论文是在研究和设计一套基于STM32单片机的智能水质监测系统,本系统主要包括监测模块、无线通信模块、报警模块、显示模块、电源模块等。当监测到的水质相关参数(如水温、水位、浑浊度、电导率、PH值等)与设定阈值不符时,则STM32的智能水质监测系统发出对应报警,并通过......