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

stm32温控大棚测控系统(CO2+温湿度+光照)+仿真

 一.硬件方案


主要由STM32F103C8T6单片机最小系统板+OLED12864显示模块+二氧化碳传感器模块+温湿度传感器模块+光强检测电路+LED灯光+风扇电路+蜂鸣器电路+电源开关构成;

仿真图如下:

二.设计功能

  • 采集环境温湿度、光照强度、二氧化碳浓度;
  • OLED显示屏显示信息,按键设置温湿度、光照强度、二氧化碳监测阈值;
  • 当触发阈值时,报警提醒;温度超过阈值时,启动风扇自动降温通风;光强强度低于阈值时,LED灯补光;
  • 按键可设置阈值:按键1:模式切换;按键2:设置;按键3:自加1或控制风扇;按键4:自减1或控制灯光;
  • 无线通信连接APP,远程显示数据信息。
  • 连接蓝牙,APP可控制风扇、LED灯开关,获取系统数据;

三.软件设计

        主程序源码

 int main(void){vu8 key=0;	delay_init();	    	 //延时函数初始化	  LED_Init();		  		//初始化与LED连接的硬件接口BEEP_Init();         	//初始化蜂鸣器端口KEY_Init();         	//初始化与按键连接的硬件接口uart_init(9600);usart2_Init(9600);TIM2_Int_Init(99,7199);//10Khz的计数频率,计数到5000为500ms  Adc_Init();          //光强采集ADC初始化FAN_Init();        //风扇初始化OLED_Init();       //显示屏初始化OLED_ColorTurn(0);//0正常显示,1 反色显示OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示display_refresh(); 	//刷新显示屏Delay_ms(500);while(1){key=KEY_Scan(1);	//得到键值KEY_Handle(key);APP_Handle();if(W_100ms>=99)    {W_100ms=0;if(refresh>0)APP_refresh();}if(T_100ms>=49){T_100ms = 0;//采集烟雾浓度值light =  Get_Adc_Average(9,10);getDHT11Data();  //获取湿度数据if(set==0)					 //set为0,说明现在不是设置状态{display_refresh();	 //显示AD数值和报警值if(mode==1){if(light<setLight){LEDR=0;}else{LEDR=1;}}//报警阈值判断if(Temp>setTemp){warn_flag=1;}else if(Humi>setHumi){warn_flag=2;}else if(light<setLight){warn_flag=3;}else if(co2>setco2){warn_flag=4;}else{warn_flag=0;}//蜂鸣器报警控制if(warn_flag>0){if(GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_15)==1){BEEP=0;}elseBEEP=1;}elseBEEP=1;if(mode==1){if(warn_flag==1){if(FAN_state==0)printf("风扇已开启\r\n");FAN=1;}else{FAN=0;if(FAN_state==1)printf("风扇已关闭\r\n");}}}}}	 
}

链接:https://pan.baidu.com/s/1-Ar1mLe-1qtdt4VCcN3gBg 提取码: 6yfz

http://www.dtcms.com/a/348401.html

相关文章:

  • Docker 容器(一)
  • 【ansible】5.在受管主机部署文件和Jinja2模板
  • 信誉代币的发行和管理机制是怎样的?
  • 基于角色的访问控制(RBAC)研究与Go语言实现
  • overleaf关于给参考文献添加DOI链接的问题
  • B站视频字幕提取工具
  • 当GitHub“断网”:从应急到终极方案,手把手搭建永不宕机的代码协作体系
  • 鸿蒙 ArkTS 开发:Number、Boolean、String 三种核心基本数据类型详解(附实战案例)
  • 从 Unity UGUI 到 Unreal UMG 的无缝迁移:UMG 基础与 UI 控件布局
  • Java的数字计算
  • pycharm的matplotlib不显示动图问题的解决
  • Python核心技术开发指南(004)——配置PyCharm
  • Flink直接缓冲存储器异常解析与解决方案
  • 力扣155.最小栈
  • 嵌入式知识篇---32GUI
  • 神经网络|(十四)概率论基础知识-协方差和方差
  • 使用 Golang 的 Gin 框架实现一周极限编程计划:全网 AIGC 项目热点追踪应用
  • 自然语言处理——06 迁移学习(下)
  • 自然语言处理——06 迁移学习(中)
  • RockyLinux9.6安装k8s
  • 【(含模板)滑动窗口 - LeetCode】3. 无重复字符的最长子串
  • 从“小麻烦”到“大难题”:Spring Boot 配置文件的坑与解
  • UE5游戏开发的理想硬件配置指南:从入门到专业级方案
  • MySQL视图有什么用?一文读懂虚拟表的六大核心价值
  • 数据治理进阶——埃森哲 数据治理元数据管理建设规划方案【附全文阅读】
  • LabVIEW Vision视觉引导撑簧圈智能插装
  • java-代码随想录第十五天| 12.平衡二叉树、222.完全二叉树的节点个数、404.左叶子之和
  • 网络安全转型书籍清单
  • JavaScript 性能优化实战:全方位提升 Web 应用性能
  • 【LeetCode 热题 100】152. 乘积最大子数组——(解法一)递推