当前位置:   article > 正文

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

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);
		sys_ctrl.co2=cal_map(sys_ctrl.co2,0,255,0,99);
		//获取风速
		sys_ctrl.wind=pcf8591_read_adcvalue(3);
		sys_ctrl.wind=pcf8591_read_adcvalue(3);
		sys_ctrl.wind=cal_map(sys_ctrl.wind,0,255,0,10);
		delay_ms(100);
	}
	lcd1604_init();//LCD1604初始化
	sys_open_show();//系统初始界面显示

	while(1)
	{
		sys_data_get();//系统数据获取
		sys_data_show();//系统数据显示
		sys_data_set();//系统数据设置
		sys_fun_ctrl();//系统功能控制		
	}
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103

三、实验现象

B站演示视频:https://space.bilibili.com/444388619

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/684072
推荐阅读
相关标签
  

闽ICP备14008679号