STM32项目分享:智能家居(机智云)系统

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板及元器件图

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1qb4y1N7mr/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32的智能家居(机智云)系统。

功能如下:

  1. 采集温湿度:系统通过DHT11模块采集温湿度
  2. 烟雾监测:通过MQ-2模块采集环境中烟雾浓度
  3. 煤气监测:通过MQ-7一氧化碳模块采集环境中一氧化碳浓度
  4. 空气质量监测:通过MQ-7空气质量传感器采集环境空气质量情况
  5. 大气压强采集:通过BMP280采集环境气压大小
  6. 窗帘控制:通过步进电机模拟窗帘开关
  7. LED灯控制:控制LED灯
  8. OLED显示:显示温湿度、烟雾浓度、一氧化碳浓度、空气质量、大气压强等信息
  9. 蜂鸣器报警:危险情况下本地蜂鸣器触发报警
  10. 自动模式:设置自动模式,系统根据光强大小控制窗帘和LED灯的开闭
  11. 手动模式:设置手动模式,APP手动控制窗帘和LED灯的开关
  12. WIFI通信:使用ESP8266等进行WiFi远程通信
  13. APP功能:使用机智云APP,包括功能有控制并显示LED灯和窗帘的状态、显示当前温湿度、烟雾浓度、一氧化碳浓度和空气质量等信息。

2.主要器件

  • STM32F103C8T6最小系统板
  • DHT11温湿度传感器
  • OLED显示屏(7针SPI协议)
  • WiFi模块(ESP8266-01s)
  • MQ-2烟雾传感器
  • MQ-7一氧化碳传感器
  • MQ-135空气质量传感器
  • BMP280气压传感器
  • 28BYJ51步进电机
  • 蜂鸣器
  • LED灯

三、原理图设计

四、PCB硬件设计

1.PCB图 

2.PCB板及元器件图

五、程序设计 

int main(void)
{	
	u8 t=0;
	int key_value;		//按键值
	uart_init(115200);	 		//串口初始化为115200
	delay_init();	    //延时函数初始化
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	Adc1_Channe_Init();			//ADC通道初始化
	KEY_Init();					//按键引脚初始化
	bmp280Init();
	//while(DHT11_Init());	
	LED_Init();		  			//初始化与LED连接的硬件接口
	MOTOR_Init();
	OLED_Init();				//OLED初始化
	OLED_Clear();				//OLED清屏
	Gizwits_Init();		
	gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入
	delay_ms(500);
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 *)&currentDataPoint);//机智云协议处理
		Canshu_Change(key_value);
		t++;
		delay_ms(100);
	}
}

六、实验效果 

七、资料内容

项目分享

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能家居安防系统是当前智能家居领域中的一个重要应用方向。随着人们对家庭安全意识的提高,对家居安防设备的需求也日益增加。基于STM32智能家居安防系统项目设计旨在提供一个全面的、智能化的家居安全解决方案。 该项目的设计背景是基于以下考虑: 1. 家庭安全需求:随着社会的发展,人们对家庭安全的关注度不断提高。传统的安防系统已不能满足人们对安全的要求,需要更加智能化的解决方案。 2. IoT技术的成熟应用:物联网技术的快速发展为智能家居安防系统提供了技术支持。通过将各种设备连接到互联网,实现设备间的智能互联,提升系统的功能和性能。 3. STM32的优势:作为一款强大的嵌入式微控制器,STM32具备低功耗、高性能、丰富的外设接口等特点,非常适合用于智能家居安防系统的设计。其可靠性和稳定性也能保证系统的长期运行。 基于以上背景,基于STM32智能家居安防系统项目设计旨在提供以下功能: 1. 安全监测:通过传感器检测家庭环境的状况,如烟雾、燃气泄露、水浸等,及时发出警报并采取相应的措施。 2. 远程监控:通过网络连接,用户可以远程监控家庭的实时情况,如监控摄像头的视频、门窗的状态等,提高家庭安全的感知能力。 3. 定时控制:用户可以通过手机等设备,设置家庭设备的定时开关,如照明、温控等,增加家庭的舒适度和节能效果。 4. 报警与通知:系统在检测到异常情况时,可以通过手机APP、短信等方式及时向用户发送报警信息,提醒用户采取相应措施。 通过这些功能的设计,基于STM32智能家居安防系统可以实现家庭安全的全方位保护,提高家庭安全的智能化水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值