【Proteus仿真】【STM32单片机】基于多传感器的环境监控系统_proteus 传感器


一、功能简介

本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602显示模块、DHT11温湿度、DS18B20温度传感器、
土壤湿度、光照传感器、CO2和风速传感器、风速、加热加湿、补光等控制器等。
主要功能:
系统运行后,LCD1604显示传感器检测的环境温湿度、土壤温湿度、
光照强度、CO2浓度和风速值;可通过上位机远程观察传感器采集的数据显示,且可通过上位机远程控制设备,如风速、加热、加湿除湿器、补光灯等;按照自定义协议进行数据传输,
协议:传感器ID+读写方向(写0读1)+数据+结束标记(0X0D、0X0A)


二、软件设计

/\*
作者:嗨小易(QQ:3443792007)

\*/


//系统数据显示
void sys\_data\_show(void)
{
	static u8 cnt=0;
	u8 id=0;
	while(1)
	{
		//DHT11温湿度显示
		lcd1604\_show\_nums(4,0,sys_ctrl.temp,2,0);
		lcd1604\_show\_nums(13,0,sys_ctrl.humi,2,0);
		//土壤温湿度显示
		lcd1604\_show\_nums(4,1,sys_ctrl.trtemp,2,0);
		lcd1604\_show\_nums(13,1,sys_ctrl.trhumi,2,0);
		//光照强度显示
		lcd1604\_show\_nums(4,2,sys_ctrl.light,2,0);
		//CO2浓度显示
		lcd1604\_show\_nums(13,2,sys_ctrl.co2,2,0);
		//风速显示
		lcd1604\_show\_nums(5,3,sys_ctrl.wind,2,0);
		
		cnt++;
		if(cnt%5==0)
		{
			//按照指定协议传输数据至上位机
			for(id=1;id<6;id++)	
				sys\_send\_data\_to\_pc(id);
		}
		
		break;			
	}
}

//系统功能控制
void sys\_fun\_ctrl(void)
{
	//上位机远程控制设备
	switch(USART1_RX_BUF[0])
	{
		case 0X11: SR_PIN=0;break;//打开风扇
		case 0X10: SR_PIN=1;break;//关闭风扇
		case 0X21: JR_PIN=0;break;//打开加热
		case 0X20: JR_PIN=1;break;//关闭加热
		case 0X31: JS_PIN=0;break;//打开加湿
		case 0X30: JS_PIN=1;break;//关闭加湿
		case 0X41: CS_PIN=0;break;//打开除湿
		case 0X40: CS_PIN=1;break;//关闭除湿
		case 0X51: BG_PIN=0;break;//打开补光
		case 0X50: BG_PIN=1;break;//关闭补光
	}
}

//应用控制系统
void appdemo\_show(void)
{
	u8 i=5;
	sys\_parm\_init();//系统参数初始化
	DHT11\_Init();
	ctrl\_pin\_init();
	pcf8591\_init();
	DS18B20\_Init();
	USART1\_Init(9600);
	while(i--)
	{
		//读取DHT11温湿度值
		DHT11\_Read\_Data(&sys_ctrl.temp,&sys_ctrl.humi);
		//获取土壤温湿度
		sys_ctrl.trtemp=DS18B20\_GetTemperture();
		sys_ctrl.trhumi=pcf8591\_read\_adcvalue(0);
		sys_ctrl.trhumi=pcf8591\_read\_adcvalue(0);
		sys_ctrl.trhumi=cal\_map(sys_ctrl.trhumi,0,255,0,99);	
		//获取光照强度
		sys_ctrl.light=pcf8591\_read\_adcvalue(1);
		sys_ctrl.light=pcf8591\_read\_adcvalue(1);
		sys_ctrl.light=cal\_map(sys_ctrl.light,0,255,0,99);
		//获取CO2浓度
		sys_ctrl.co2=pcf8591\_read\_adcvalue(2);
		sys_ctrl.co2=pcf8591\_read\_adcvalue(2);
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/0667c1ba4b532205d789897a494847c6.png)

![img](https://img-blog.csdnimg.cn/img_convert/4d227de06330cfaf228e75d4be98225c.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/ffb69596c7a01ae3b893ed2b1248eb06.png)

 ![img](https://img-blog.csdnimg.cn/img_convert/bcff06441a43a4283bd6c9be191d58ea.png)

![img](https://img-blog.csdnimg.cn/img_convert/600a47d08e4aec5c3497f281178d3203.png)

![img](https://img-blog.csdnimg.cn/img_convert/e7b46e3d777592e64f59279b7992ca79.png)

![](https://img-blog.csdnimg.cn/img_convert/d224912d70b2bbb8c511f0b0460020c3.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值