仿真演示视频
基于stm32温室大棚控制系统仿真设计温湿度采集光照采集protues设计物联网定制_哔哩哔哩_bilibili
开发软件Keil5+Protues8.9,温湿度传感器DHT11。
部分源码:
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
delay_init();//延时函数初始化
uart_init(9600); //串口初始化为9600
LED_Init();//初始化与LED连接的硬件接口
Adc_Init();
//ADC初始化
key_gpio_init();
LED0=1;//绿灯
LED1=1;//关闭红灯
buzz=1;//关闭报
TIM3_Int_Init(20000-1,7);
printf("%d\r\n",SystemCoreClock);
DHT11_Init();
DHT11_Read_Data(&wd,&sd);
lcd1602_Init();
WD_DJ_PIN1=0;
WD_DJ_PIN2=0;
delay_ms(100);
SD_DJ_PIN1=0;
SD_DJ_PIN2=0;//上电关闭
ZY_DJ_PIN1=0;
ZY_DJ_PIN2=0;
DHT11_Read_Data(&wd,&sd);
while(1)
{
switch(set_flag)
{
case 0: //工作模式
//adcx=read2543(0);
adcx = Get_Adc(0);
light=adcx/10;
L1602_printf(0,0," temp:%2d humi:%2d",wd,sd);
L1602_printf(0,1," light:%5dlx",light);
printf("adcx:%d jl:%d \r\n",light,jl_val);
DHT11_Read_Data(&wd,&sd);
if((wd>set_wdH)||(wd<set_wdL)||(sd>set_sdH)||(sd<set_sdL)||(light>set_gzH)||(light<set_gzL))
{
LED0=1;//g关闭绿灯
LED1=0;
buzz^=1;//报警
}
else
{
LED0=0;//open绿灯
LED1=1;//关闭红灯
buzz=1;//关闭报警
}
if(light<set_gzL) //低于下限
{
ZY_DJ_PIN1=0;
ZY_DJ_PIN2=1;
}
else if(light>set_gzH) //大于上限
{
ZY_DJ_PIN1=1;
ZY_DJ_PIN2=0;
}
else //正常范围
{
ZY_DJ_PIN1=0;
ZY_DJ_PIN2=0;
}
if(sd<set_sdL) //湿度低于
{
SD_DJ_PIN1=1;
SD_DJ_PIN2=0;//
}else{
SD_DJ_PIN1=0;
SD_DJ_PIN2=0;//关闭
}
if(wd>set_wdH)
{
WD_DJ_PIN1=1;
WD_DJ_PIN2=0;
}
else{
WD_DJ_PIN1=0;
WD_DJ_PIN2=0;
}
break; case 1://设置温度
case 2:
WriteLcd1602_String(0,0," Setup Temp Mode ");
L1602_printf(0,1," L:%2d H:%2d ",set_wdL,set_wdH);
break;
case 3://设置湿度
case 4:
WriteLcd1602_String(0,0," Setup Humi Mode ");
L1602_printf(0,1," L:%2d H:%2d ",set_sdL,set_sdH);
break;
case 5://设置光照
case 6:
WriteLcd1602_String(0,0," Setup LightMode");
L1602_printf(0,1," L:%3d H:%3d ",set_gzL,set_gzH);
break;
}
software_delay_ms(500);
//delay_us(1000);
//TESTIO=!TESTIO;
}
}