一、原理图
系统采用STM32F103C8T6单片机,搭配MQ系列传感器、DHT11温湿度传感器、光照强度传感器来采集室内的环境信息,利用STM32对信息进行加工处理,结合步进电机、LED、蜂鸣器、继电器对室内的电器进行模拟。使用ESP8266作为物联网媒介,手机端采用机智云平台。
1.原理图文章来源:https://www.toymoban.com/news/detail-597585.html
二、主程序文章来源地址https://www.toymoban.com/news/detail-597585.html
#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的WIFI智能家居系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!