基于STM32的自动养花系统

阅读: 评论:0

基于STM32的自动养花系统

基于STM32的自动养花系统

一、本文将具体说明基于STM32的自动养花系统设计开发详情和流程,该系统可实现以下这些功能:

        本系统采用器件核心为STM32F103C8T6最小核心板。搭有Water Sensor水位传感器、土壤湿度传感器、光敏电阻、jw二氧化碳传感器、水泵、存储器模块等

系统可实现的功能:

        可实时检测植物的生长环境,检测土壤的湿度、空气中的二氧化碳、光照强度,并在OLED屏幕上展现。设有湿度、二氧化碳浓度、光照强度等阈值,当检测到的数据异常,则执行相应的操作,如:当土壤湿度过低,则打开水泵进行浇水,二氧化碳浓度过高则打开通风口,进行减低二氧化碳浓度处理;光照强度过低则进行补光。系统对于给植物浇花的水箱设有水位传感器实时检测含水量,过低则进行抽水补充,且设有阈值存储器,可实时的调整阈值范围,适应各种植物的养护。

        系统还搭有联网功能,使用的是机智云app云平台,可通过手机远程实时监测植物的环境参数,并可远程打开养护操作如:补光、抽水等功能。

植物养护系统(阉割版)

设计方向:系统含有两个操作模式,自动模式和手动模式。

自动模式:系统自动检测各种环境参量,参数异常则自动执行对应操作功能。

养花系统自动检测模式

手动模式:可人为在单片机通过按键查看各种环境参数,并执行对应的操作功能,每一功能模块为单独成立。

界面美化:为了美化操作界面,本系统对oled的界面显示进行了优化,每个功能进行单独分类,并通过按键选择对应的功能,减少操作冗杂。

 界面美化显示

 二、代码部分展示

Water Sensor水位传感器

检测水箱是否有水:

#include "water.h"
#include "delay.h"#define WA GPIO_Pin_11/***************  配置LED用到的I/O口 *******************/void Water_GPIO_Config(void)	
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE); // 使能端口时钟  GPIO_InitStructure.GPIO_Pin = WA;	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);  //初始化端口//GPIO_SetBits(GPIOB, WA);	 // 关闭所有LED
}
int Water_state(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin_x)
{Delay_ms(10);if( GPIO_ReadInputDataBit(GPIOx, GPIO_Pin_x)  == 0){return 1;}else{return 0; }
}
			if( Water_state(GPIOB,  GPIO_Pin_11)== 0){printf("rn有水");}elseprintf("rn无水");

界面美化:

//选择界面
void Select_Show(void)
{u8 key,num=0;OLED_Clear(0x00);//清屏while(1){Wifi_date();//机智云接收数据包if(num<7){Admin_show();//各大功能页面}if(num>=7){num=1;}key=key_scan();if(key==1){num++;}if(key==3){OLED_Clear(0x00);//清屏Smart_Greenhouse();//回到主页面}///空气温湿度单独页面if(num==1){OLED_Clear(0x00);//清屏while(1){Wifi_date();//机智云接收数据包Oled_ShowPic(0,32,64,64,(u8 *)pic4);//天气key=key_scan();if(key==1){num++;break;}if(key==2){Weather_Show();//天气温湿度}if(key==3){num=0;OLED_Clear(0x00);//清屏break;}}}
///土壤湿度单独页面if(num==2){OLED_Clear(0x00);//清屏while(1){Wifi_date();//机智云接收数据包Oled_ShowPic(0,32,64,64,(u8 *)pic10);//土壤湿度key=key_scan();if(key==1){num++;break;}if(key==2){Soil_Show();//土壤湿度展示}if(key==3){num=0;OLED_Clear(0x00);//清屏break;}}}///光照强度单独页面if(num==3){OLED_Clear(0x00);//清屏while(1){Wifi_date();//机智云接收数据包Oled_ShowPic(0,32,64,64,(u8 *)pic15);//光照强度key=key_scan();if(key==1){num++;break;}if(key==2){Light_Show();//光照强度展示}if(key==3){num=0;OLED_Clear(0x00);//清屏break;}}}///二氧化碳浓度单独页面if(num==4){OLED_Clear(0x00);//清屏while(1){Wifi_date();//机智云接收数据包Oled_ShowPic(0,32,64,64,(u8 *)pic18);//光照强度key=key_scan();if(key==1){num++;break;}if(key==2){C02_Show();//光照强度展示}if(key==3){num=0;OLED_Clear(0x00);//清屏break;}}}///阈值设置单独页面if(num==5){OLED_Clear(0x00);//清屏while(1){Wifi_date();//机智云接收数据包Oled_ShowPic(0,32,64,64,(u8 *)pic24);//设置图标key=key_scan();if(key==1){num++;break;}if(key==2){Set_Show();//设置展示}if(key==3){num=0;OLED_Clear(0x00);//清屏break;}}}//wifi单独页面if(num==6){OLED_Clear(0x00);//清屏while(1){Wifi_date();//机智云接收数据包Oled_ShowPic(0,32,64,64,(u8 *)pic28);//wifikey=key_scan();if(key==1){num++;break;}if(key ==2)//进入窗帘页面{Wifi_Show();}if(key==3){num=0;OLED_Clear(0x00);//清屏break;}}}}}

如想获取整个代码的同学,可添加本人QQ1972218606。

本人可接单片机系统设计,学生价,有兴趣的可联系本人。

如本文章所设计的系统,淘宝上设计做出实物至少要8百左右,本人则需要一半的价格便可,如果只需要代码则更便宜,可自行上淘宝查看对比,欢迎有兴趣的朋友联系。

本文发布于:2024-01-28 05:25:11,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063907175104.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:养花   系统
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23