基于STM32物联网WiFi智能家居控制系统设计(原理图+源代码+系统资料)
原理图:Altium Designer
程序编译器:keil 5
编程语言:C语言
设计编号:C0053
主要功能:
1.可以检测环境中温湿度,气压,一氧化碳,空气质量,烟雾浓度和光照强度;
2.将测量的值显示在屏幕上,数据上报机智云平台可以通过手机APP实时查看当前的状态;
3.通过光敏传感器检测光照强度,当光照强度小于阈值,表明此时天黑了,自动点亮LED灯照明并且自动关闭窗帘!反之!就会关闭灯!打开窗帘,可以实现手动打开关闭;
4.可以通过过按键调节系统阈值,可以实现系统阈值掉电保存。
资料下载
实物图
电路图
程序
while(1)
{
Get_Data(0);
if(gz_value<=A_gz_value&&mode==0)
{
LED0=0;
curtain_flag=0;
}else if(gz_value>A_gz_value&&mode==0){
LED0=1;
curtain_flag=1;
}
if(last_curtain_flag!=curtain_flag&&mode==0)
{
BUJING_Cotrol(curtain_flag,3,270);
last_curtain_flag = curtain_flag;
}
if(last_curtain_flag!=currentDataPoint.valueCurtain&&mode==1)
{
BUJING_Cotrol(currentDataPoint.valueCurtain,3,270);
curtain_flag = currentDataPoint.valueCurtain;
last_curtain_flag = currentDataPoint.valueCurtain;
}
if(mode==1)
{
LED0=!currentDataPoint.valueLED;
}
if(DHT11_Temp>=A_DHT11_Temp||DHT11_Hum<=A_DHT11_Hum||Pre>=A_pre||m135_value<=A_m135_value||m2_value>=A_m2_value||m7_value>=A_m7_value)
{
BEEP=!BEEP;
}else BEEP = 0;
key_value = KEY_Scan(0);
if(key_value==2)
{
display_contrl++;
}
if(display_contrl%2==0&&t>=10)
{
OLED_ShowCHinese(0,0,0);
OLED_ShowCHinese(16,0,2);
sprintf((char*)buff,":%2dC",DHT11_Temp);
OLED_ShowString(32,0,buff,16); //显示温度
OLED_ShowCHinese(64,0,1);
OLED_ShowCHinese(82,0,2);
sprintf((char*)buff,":%2d%%",DHT11_Hum);
OLED_ShowString(96,0,buff,16);//显示湿度
OLED_ShowCHinese(0,2,3);
OLED_ShowCHinese(16,2,4);
sprintf((char*)buff,":%2dhpa ",Pre);
OLED_ShowString(32,2,buff,16);//显示气压
OLED_ShowCHinese(0,4,5);
OLED_ShowCHinese(16,4,6);
OLED_ShowCHinese(32,4,7);
OLED_ShowCHinese(48,4,8);
sprintf((char*)buff,":%4dppm",gz_value);
OLED_ShowString(64,4,buff,16);//显示光照强度
OLED_ShowCHinese(0,6,9);
OLED_ShowCHinese(16,6,10);
OLED_ShowCHinese(32,6,11);
OLED_ShowCHinese(48,6,12);
sprintf((char*)buff,":%4dppm",m135_value);
OLED_ShowString(64,6,buff,16);//显示空气质量
}else if(display_contrl%2==1&&t>=10)
{
OLED_ShowCHinese(0,0,13);
OLED_ShowCHinese(16,0,14);
OLED_ShowCHinese(32,0,15);
OLED_ShowCHinese(48,0,16);
sprintf((char*)buff,":%4dppm",m2_value);
OLED_ShowString(64,0,buff,16);//显示M2数据
OLED_ShowCHinese(0,2,17);
OLED_ShowCHinese(16,2,18);
OLED_ShowCHinese(32,2,19);
OLED_ShowCHinese(48,2,20);
sprintf((char*)buff,":%4dppm",m7_value);
OLED_ShowString(64,2,buff,16);//显示M7数据
OLED_ShowCHinese(0,4,5);
OLED_ShowCHinese(16,4,6);
OLED_ShowCHinese(32,4,7);
OLED_ShowCHinese(48,4,8);
sprintf((char*)buff,":%4dppm",gz_value);
OLED_ShowString(64,4,buff,16);//显示光照强度
OLED_ShowCHinese(0,6,9);
OLED_ShowCHinese(16,6,10);
OLED_ShowCHinese(32,6,11);
OLED_ShowCHinese(48,6,12);
sprintf((char*)buff,":%4dppm",m135_value);
OLED_ShowString(64,6,buff,16);//显示M135数据
}
userHandle(); //用户数据采集
WIFI_Contection(key_value);//WiFi连接控制
gizwitsHandle((dataPoint_t *)¤tDataPoint);//机智云协议处理
Canshu_Change(key_value);
t++;
delay_ms(100);
}
}
void WIFI_Contection(u8 key)//WiFi连接控制
{
if(key==4)
{
printf("WIFI进入AirLink连接模式\r\n");
gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入
}
if(key==3)
{
printf("WIFI复位,请重新配置连接\r\n");
gizwitsSetMode(WIFI_RESET_MODE);//WIFI复位
}
}
器件清单
开发资料
printf("WIFI复位,请重新配置连接\r\n");
gizwitsSetMode(WIFI_RESET_MODE);//WIFI复位
}
}
## 器件清单
[外链图片转存中...(img-gf591BBp-1661272636568)]
## 开发资料
![img](https://img-blog.csdnimg.cn/img_convert/a153ce382b59623599fa46a10985862a.png)