当前位置: 首页 > article >正文

STM32项目分享:智能温室大棚(APP版)

目录

 一、前言

 二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

六、实验效果 

 七、包含内容

  项目分享


 一、前言

项目成品图片:

哔哩哔哩视频链接:

STM32智能温室大棚(APP版)

(资料分享见文末) 

 二、项目简介

1.功能详解

基于STM32的智能温室大棚APP版

功能如下:

  1. STM32F103C8T6单片机系统板作为主控单元
  2. DHT11温湿度传感器采集温湿度
  3. 土壤湿度传感器采集土壤湿度数据
  4. 光敏传感器采集环境光照数据
  5. OLED显示屏显示实时环境数据
  6. 根据阈值控制风扇、水泵和照明灯的开关
  7. 按键可调节阈值范围,蜂鸣器异常报警
  8. 手机APP通过WiFi连接板子,远程接收环境数据、
  9. 手机APP可控制调节阈值范围

2.主要器件

  • STM32F103C8T6最小系统板
  • OLED 屏幕
  • DHT11温湿度传感器
  • ESP8266-01S  WiFi模块
  • 土壤湿度传感器
  • 光敏传感器
  • 继电器
  • 风扇模块
  • 水泵模块
  • 大功率LED灯模块
  • 有源蜂鸣器

三、原理图设计

四、PCB硬件设计

PCB图 

五、程序设计 

int main(void)
{
		delay_init();	           //延时函数初始化	 
    NVIC_Configuration();	   //中断优先级配置
	  I2C_Configuration();     //IIC初始化
	  OLED_Init();             //OLED液晶初始化
	  Adc_Init();
	  OLED_CLS();              //清屏
	  KEY_GPIO_Init();        //按键引脚初始化    
	  OLED_ShowStr(0, 2, "   loading...   ", 2,0);//显示加载中
    ESP8266_Init();       //ESP8266初始化
	  MOTOR_GPIO_Init();
	  while(DHT11_Init())
		{
				OLED_ShowStr(0, 2, "  DHT11 Error!  ", 2,0);//显示DHT11错误!
			  delay_ms(500);
		}
		OLED_CLS();              //清屏
	  InitDisplay();
	  TIM3_Init(99,719);   //定时器初始化,定时1ms
		//Tout = ((arr+1)*(psc+1))/Tclk ; 
		//Tclk:定时器输入频率(单位MHZ)
		//Tout:定时器溢出时间(单位us)
		while(1)
		{ 
			   keyscan();  //按键扫描
			   
			   if(setn == 0)     //不在设置状态下
				 {
						 if(shuaxin == 1)        //大概500ms刷新一下
						 { 
								 shuaxin = 0;
								 displayDHT11TempAndHumi();
							   displaySoilMoisture();
								 displayLight();

								 if(light<=setLightValue)LED=1;else LED=0;   //光线暗开,光线强关  						 
                 if(soilMoisture<=setSoilMoisture)RELAY=1;else RELAY=0;  //开启水泵
								 if(temperature>=setTempValue)MOTOR=1;else 	 MOTOR=0;   //开风扇
							 
							   if(light<=setLightValue || soilMoisture<=setSoilMoisture || temperature>=setTempValue)BEEP=1; else BEEP=0;
						 }
				 }
				 UsartSendReceiveData();   //串口发送接收数据
			   delay_ms(20);
		}
}

六、实验效果 

 七、包含内容

  项目分享


http://www.kler.cn/a/526408.html

相关文章:

  • 01.04、回文排序
  • vim操作简要记录
  • 使用Ollama本地部署DeepSeek R1
  • PySide(PyQT)进行SQLite数据库编辑和前端展示的基本操作
  • HTML 标题
  • 元素的显示与隐藏
  • C++ 3
  • ollama指定目录安装
  • 使用Navicat Premium管理数据库时,如何关闭事务默认自动提交功能?
  • openeuler 22.03 lts sp4 使用 cri-o 和 静态 pod 的方式部署 k8s-v1.32.0 高可用集群
  • 【2025最新计算机毕业设计】基于SpringBoot+Vue家政呵护到家护理服务平台(高质量源码,可定制,提供文档,免费部署到本地)
  • 创建 priority_queue - 初阶(c++)
  • 如何用 Groq API 免费使用 DeepSeek-R1 70B,并通过 Deno 实现国内访问
  • 青少年编程与数学 02-007 PostgreSQL数据库应用 20课题、连接与ORM
  • Maven的单元测试
  • Deepseek技术浅析(二):大语言模型
  • 【信息系统项目管理师-选择真题】2005下半年综合知识答案和详解
  • 【2024年华为OD机试】 (A卷,100分)- 异常的打卡记录(JavaScriptJava PythonC/C++)
  • 【原创改进】SCI级改进算法,一种多策略改进Alpha进化算法(IAE)
  • SAP系统中的主要采购类型/采购模式总结
  • 应用程序中处理文件上传的方法
  • Linux-Robust-Futex学习笔记
  • Timer计时器
  • 从0到1:C++ 开启游戏开发奇幻之旅(二)
  • 我的求职面经:(1)C++里指针和数组的区别
  • 【异或和之差——Trie,DP】