基于STM32的物联网WiFi智能家居控制系统

想要更多项目私wo!!!

一、电路设计

1.可以检测环境中温湿度,气压,一氧化碳,空气质量,烟雾浓度和光照强度。

2.将测量的值显示在屏幕上,数据上报机智云平台可以通过手机APP实时查看当前的状态。

3,通过光敏传感器检测光照强度,当光照强度小于阈值,表明此时天黑了,自动点亮LED灯照明并且自动关闭窗帘!反之!就会关闭灯!打开窗帘,可以实现手动打开关闭。

4.可以通过过按键调节系统阈值,可以实现系统阈值掉电保存。

功能描述:该设计可以检测环境中温湿度,气压,一氧化碳,空气质量,烟雾浓度和关光照强度,并把测量的值显示在屏幕上,数据上报云平台可以通过手机APP时时查看。通过光照强度传感器检测光照强度,当光照强度小于阈值,表明此时天黑了,自动点亮LED灯照明并且驱动步进电机顺时针旋转180度表示拉上窗帘。如果光照强度高,表示是白天,熄灭LED灯,并驱动步进电机逆时针旋转180度,表示拉开窗帘。可以通过过按键调节系统阈值,系统阈值掉电保存,无需重新修改。

二、效果图

基于STM32的物联网WiFi智能家居控制系统_第1张图片

三、部分代码 

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "timer.h"
#include "ADC.h"
#include "usart3.h"
#include "key.h"
#include "rtc.h"
#include "oled.h"
#include "stmflash.h"
#include "math.h"
#include "dht11.h"
#include "bmp280.h"
#include "exti.h"
#include "gizwits_product.h" 
#include "common.h"

u8 buff[30];//参数显示缓存数组
u8 count;
dataPoint_t currentDataPoint;//云端数据点
u8 wifi_sta;//wifi连接状态标志
u8 mode=0;//模式控制自动和手动
u8 NTP_sta=0;//网诺时间获取状态
u8 display_contrl=0;
u8 window_flag=0;
u8 last_window_flag=0;

extern u8 DHT11_Temp,DHT11_Hum;		//温湿度
u16 Pre;							//气压检测值
u16 gz_value;						//光照检测值			
u16 m2_value;						//烟雾检测值
u16 m7_value;						//一氧化碳检测值
u16 m135_value;						//空气质量检测值

u16 A_DHT11_Temp=25;				//温度阈值
u16 A_DHT11_Hum=50;					//湿度阈值
u16 A_pre=1500;						//气压阈值
u16 A_gz_value=2000;				//光照强度阈值
u16 A_m2_value=2000;				//烟雾阈值
u16 A_m7_value=2000;				//一氧化碳阈值
u16 A_m135_value=2000;				//空气质量阈值


//数据采集
void userHandle(void)
{
	currentDataPoint.valueLED=!LED0;
	currentDataPoint.valueWindow=window_flag;
	currentDataPoint.valueHeating = Heating;
    currentDataPoint.valueRefrigeration = Refrigeration;
    currentDataPoint.valueHumidification = Humidification;
    currentDataPoint.valueDehumidification = Dehumidification;
	currentDataPoint.valueTemp=DHT11_Temp;
	currentDataPoint.valueHum=DHT11_Hum;
	currentDataPoint.valuePre=Pre;
	currentDataPoint.valueGZ_Val=gz_value;
	currentDataPoint.valueMQ2_Val=m2_value;
	currentDataPoint.valueMQ7_Val=m7_value;
	currentDataPoint.valueMQ135_Val=m135_value;		
}

void Get_Data(u16 count);//获取传感器数据
void WIFI_Contection(u8 key);//WiFi连接控制
void BUJING_Cotrol(u8 mode,u16 time,u16 count);
void Gizwits_Init(void);
void System_Init(void);
void Threshold_Value_Read(void);
void Key(u8 key);
void Show_First(void);
void Show_Second(void);
void Show_Set0();
void Show_Set1();
void Show_Set2();
void Show_Set3();
void Show_Set4();
void Show_Set5();
void Show_Set6();
void Show_Set7();
void Device_Control(void);

int main(void)
{	
	u8 t=0;
	int key_value;		//按键值
	System_Init();
	Threshold_Value_Read();
	while(1)
	{
		Get_Data(0);
		Device_Control();

		key_value = KEY_Scan(0);
		Key(key_value);
		
		if(display_contrl%2==0&&t>=10)
			Show_First();
		else if(display_contrl%2==1&&t>=10)
			Show_Second();

		userHandle();					//用户数据采集
		gizwitsHandle((dataPoint_t *)¤tDataPoint);//机智云协议处理

		WIFI_Contection(key_value);//WiFi连接控制
		
		t++;
		delay_ms(100);
		
	//mode=currentDataPoint.valuemode;
	}
}

你可能感兴趣的:(STM32,stm32,物联网,智能家居)