基于CW32的智能家居系统

发布者:AdventureSeeker最新更新时间:2024-02-20 来源: elecfans关键字:智能家居系统  参数 手机看文章 扫描二维码
随时随地手机看文章

一、实验简介

本智能家居系统是一款功能丰富、易于使用的智能家居解决方案,可以通过检测温湿度、光照强度和空气质量等参数,为我们提供更加舒适、健康、安全的居住环境,让用户享受更加智能的生活体验。

该系统采用CW32F030单片机作为核心控制器,通过各种传感器实时监测室内环境参数,并根据预设的阈值进行相应控制。例如,当室内光照不足时,系统会自动打开灯光,确保室内光线充足。室内温湿度数据和空气质量通过屏幕显示,并实时上传到云平台,以实现远程监控。


二、实验器材

本实验使用到了CW32-48F大学计划开发板、ESP8266WIFI模块、DHT11温湿度模块、MQ-135空气检测传感器、光敏电阻模块、热释电传感器模块、LED交通灯模块及Keil5开发环境。
图片

CW32-48F大学计划板
图片

ESP8266WIFI模块
图片

DHT11温湿度模块

三、核心代码


main.c:

/*传感器数据*/

uint16_t ppm=0;            //空气中甲苯浓度

uint8_t humidity=0;        //湿度

uint8_t temperture=0;      //温度

uint8_t Light_intensity=0; //光照强度(0~100)

uint16_t adc_result[2]={0}; //保存ADC序列转换结果


/*标识控制位*/

_Bool Flag_5s=0;       //5s计时

uint16_t time5scnt=0;  //5s计数

uint16_t time2scnt=0;  //2s计数

_Bool averyflag=0;    //ADC序列采集完成标志位

_Bool send_flag=0;    //数据上云控制位


/*自定义函数*/

void PIR_Proc(void);    //检测人是否存在

void DHT11_Proc(void);  //采集温湿度

void MQ135_Proc(void);  //检测空气质量

void Photo_Proce(void); //检测亮度

void System_Init(void); //系统初始化

void Send2OneNet(void); //数据上云

void Interface(void);   //数据显示界面

void LED_Proc(uint8_t led,uint8_t state); //LED灯


/*主程序*/

int main(void)

{

System_Init();  //系统初始化

Interface();    //界面显示

while(1)

{

PIR_Proc();     //人

DHT11_Proc();  //温湿度

MQ135_Proc();  //空气质量

Photo_Proce(); //光强

Send2OneNet(); //数据上云

ADC_SoftwareStartConvCmd(ENABLE); //启动ADC转换

Delay_ms(500);

}

}


/*子程序*/

void System_Init(void)  //系统初始化函数

{

Lcd_Init();

TFT_Welcome(); //开机界面


LED_Init();

PIR_Init();     //热释电传感器初始化

DHT11_Init();  //温湿度传感器初始化

Buzzer_Init(); //蜂鸣器初始化

while(DHT11_Check()); //检测DHT11是否已连接


BTIM_Init();

//  Usart1_Init(115200);  //调试串口

Usart2_Init(115200);  //ESP8266串口

ESP8266_Init();       //ESP8266初始化

ADC_Configuration();  //ADC序列多次转换模式配置

}


void Interface(void)    //界面显示函数

{

Lcd_Clear(BLUE);

Gui_DrawFont_GBK16(0,8,WHITE,BLUE,"  智能家居系统 ");

Gui_DrawLine(0,32,128,32,GRAY1);                       //分割线

Gui_DrawFont_GBK16(0,48,WHITE,BLUE," 当前温度:");

Gui_DrawFont_GBK16(0,80,WHITE,BLUE," 当前湿度:");

Gui_DrawFont_GBK16(0,112,WHITE,BLUE," 空气质量:");

}


void PIR_Proc(void)   //人体检测函数

{

if(ReadPIR())    //有人在

{

Flag_5s=1;   //在中断中开始5s计时

LED_Proc(LED_Yellow,1); //打开黄灯

}

else             //没有人

{

Flag_5s=0;   //清除计时标识

time5scnt=0; //清零计数值

Buzzer(0);   //关闭蜂鸣器

LED_Proc(LED_Red,0); //关闭红灯

LED_Proc(LED_Yellow,0); //关闭红灯

}


if(time5scnt >=500) //计数值超过500,5秒计时到

{

time5scnt=0;  //清零计数值

Buzzer(1);    //打开蜂鸣器

LED_Proc(LED_Red,1); //打开红灯

}

}


void DHT11_Proc(void)  //温湿度采集函数

{

char display[8]=" ";


DHT11_Read_Data(&temperture,&humidity);  //采集温湿度

sprintf(display,"%d ℃",temperture);

TFTShowString(3,11,display);

sprintf(display,"%d %%",humidity);

TFTShowString(5,11,display);

}


void MQ135_Proc(void)   //空气质量检测函数

{

double v_dat=0;


if(averyflag)    //ADC转换完成

{

adc_result[0]/=10;  //采集10次求平均值

v_dat=(double)adc_result[0]*3.3/4960.0;  //AD值传换成电压

ppm = pow((3.4880*10*v_dat)/(5-v_dat),(1.0/0.3203)); //计算甲苯浓度(参数因环境而异)

if(v_dat< 0.3)      Gui_DrawFont_GBK16(90,112,WHITE,BLUE,"优");  //依据电压值人为划分空气质量等级

else if(v_dat< 0.5) Gui_DrawFont_GBK16(90,112,WHITE,BLUE,"良");

else         Gui_DrawFont_GBK16(90,112,WHITE,BLUE,"差");

}

}


void Photo_Proce(void)   //光照强度采集函数

{

double v_dat=0;


if(averyflag)  //ADC转换完毕

{

adc_result[1]/=10;  //求平均值

Light_intensity=(1.0-(float)adc_result[1]/4096.0)*100.0;  //转换成光照强度(仅供参考)

v_dat=(double)adc_result[1]*3.3/4960.0; //转换成电压值

if(v_dat>1.5) LED_Proc(LED_Green,1); //自定义阈值,光照强度过低打开绿灯

else LED_Proc(LED_Green,0);


复制

}

}


void LED_Proc(uint8_t led,uint8_t state)  //LED控制函数

{

if(led==LED_Red)

GPIO_WritePin(CW_GPIOA,GPIO_PIN_6,(GPIO_PinState)(state));

else if(led==LED_Yellow)

GPIO_WritePin(CW_GPIOA,GPIO_PIN_5,(GPIO_PinState)(state));

else if(led==LED_Green)

GPIO_WritePin(CW_GPIOB,GPIO_PIN_11,(GPIO_PinState)(state));

}


void Send2OneNet(void)  //数据上传函数

{

if(send_flag)

{

OneNet_SendData();  //数据上传到OneNET

ESP8266_Clear();    //清除缓存

send_flag=0;

}

}


void BTIM1_IRQHandler(void)   //基本定时器1中断

{

if(BTIM_GetITStatus(CW_BTIM1,BTIM_IT_OV))

{

if(++time2scnt >200) {send_flag=1;time2scnt=0;} //2s计时

if(Flag_5s) time5scnt++;                       //5s计时

BTIM_ClearITPendingBit(CW_BTIM1,BTIM_IT_OV); //清除标志位

}

}

MQ-135空气传感器模块
图片

光敏电阻模块
图片

热释电人体感应模块
图片

实物图

开发板上预留了ESP8266WIFI模块接口,通过串口与ESP8266通信。

图片

开发板上预留了DHT11模块接口

图片

【MQ-135空气传感器模块与单片机接线】:

VCC -- 5V

GND -- GND

DO -- ×

AO -- PA0

【光敏电阻模块与单片机接线】:

VCC -- 3.3V

GND -- GND

DO -- ×

AO -- PA4

【热释电人体感应模块与单片机接线】:

VCC -- 3.3V

GND -- GND

OUT -- PB10

【LED交通灯模块与单片机接线】:

R -- PA6

Y -- PA5

G -- PB11

GND -- GND


四、效果演示

图片

https://pan.baidu.com/s/1N7MQY7ETFAbKXCm9ZKGYHA?pwd=pqyq

提取码:pqyq


关键字:智能家居系统  参数 引用地址:基于CW32的智能家居系统

上一篇:语音识别技术的工作原理 语音识别技术的工作流程
下一篇:嵌入式音频处理流程开发详细介绍

推荐阅读最新更新时间:2024-11-17 07:47

M1 IC卡读写UART接口模块YHY502CTG技术参数
   品牌 EHUOYAN 型号 YHY502CTG   类型 多款供选 接口 UART   电源 3.3-5(V)   YHY502 RFID微型一体化多接口读头采用基于ISO14443标准的非接触卡读卡机专用芯片,采用0.6微米CMOS EEPROM工艺,支持ISO14443 typeA协议,支持MIFARE标准的加密算法。芯片内部高度集成了模拟调制解调电路,只需最少量的外围电路就可以工作,同时支持I2C接口,UART接口,SPI接口,数字电路具有TTL、CMOS两种电压工作模式。具有宽电压工作范围。特别适用于ISO14443标准下水、电、煤气表、自动售货机、门禁、电梯、饮水机、电话机等计费系统或身份识别系统的读卡器
[嵌入式]
Silicon Labs携手Z-Wave联盟开放Z-Wave扩大智能家居生态系统
-Silicon Labs(亦称“芯科科技”)携手Z-Wave联盟(Z-Wave Alliance)共同宣布了新的计划:开放Z-Wave®规范使其成为一种已批准的、多源无线通信标准,并将提供给所有芯片和协议栈供应商用于开发。借助这一变革,半导体和软件提供商就能够加入Z-Wave生态系统,为这种领先智能家居标准的未来发展做出贡献,并开发和提供sub-GHz Z-Wave射频器件和软件协议栈。Z-Wave联盟将进一步扩展为一家Z-Wave规范的标准开发组织,并将继续管理包括软件和硬件在内的Z-Wave认证项目。 开放Z-Wave规范预计将于2020年下半年进入市场,它将包括ITU.G9959 PHY/MAC射频规范、应用层、网络层
[物联网]
Silicon Labs携手Z-Wave联盟开放Z-Wave扩大<font color='red'>智能家居</font>生态<font color='red'>系统</font>
基于ADSP-BF533处理器的去方块滤波器的实现及优化
引言 在已有的基于块的视频编解码系统中,当码率较低时都存在方块效应,新的视频编码标准H.264中亦是如此。产生这种方块效应的主要原因有两个:一是由于对变换后的残差系数进行的基于块的整数变换后,以大的量化步长对变换系数进行量化会使得解码后的重建图像的方块边缘出现不连续;二是在运动补偿中插值运算引起的误差使得编解码器反变换后的重建图像会出现方块效应。如果不进行处理,方块效应还会随着重构帧积累下去,从而严重地影响图像的质量和压缩效率。为了解决这一问题,H.264中的去方块滤波技术采用较为复杂的自适应滤波器来有效地去除这种方块效应。因此,如何在实时视频解码中优化去方块滤波算法,降低计算复杂度,提高重建图像质量,就成了H.264解码的一个
[应用]
骁龙670详细参数曝光:10纳米工艺 2+6核心设计
 除了有望在月底推出搭载骁龙845芯片的三星S9、小米MIX 2S等新机,高通中端6系产品线的骁龙670也有进一步的资料曝光。   德媒WinFuture主编、知名爆料人Roland Quandt最新撰文披露了这款SoC的一些规格资料。   骁龙670基于10nm工艺制造,CPU部分设计为2颗Kryo 300系列Gold大核以及6颗Kryo 300系列Silver小核(基于Cortex A55),最高主频2.6GHz,小核最高主频1.7GHz。   这推翻了此前4+4的Big.Little设计,比较意外。同时,每核心内件2KB L1缓存,每个丛集享有128KB L2缓存。   GPU是Adreno 615,可以实现430MHz
[手机便携]
吉时利2400参数设置须知
吉时利SourceMeter(数字源表)系列是专为那些要求紧密结合激励源和测量功能,要求精密电压源并同时进行电流与电压测量的测试应用而设计的。所有源表均由一个精密的、低噪声、高稳定的带回读功能的直流电源和一个低噪声、高重复性、高输入阻抗的5位多功能表组成,形成了紧凑的单通道直流参数测试仪。其功能相当于电压源、电流源、电压表、电流表和电阻表的综合体。通信、半导体、计算机、汽车与医疗行业的元件与模块制造商都将发现,源表仪器对于各种特征分析与生产过程测试都极具实用价值。 数字万用表Keithley2400-C型数字源表是一种功率为20W的仪器,能够提供并测量从±5μV(源)和±1V(测量)到±200V的直流电压,以及从±10pA到±
[测试测量]
解析单室智能家居控制系统方案
装修预算有限?这并不意味着你必须放弃拥有一套属于自己的智能家庭控制系统的梦想。您只需要在原有的计划中做一些修改,您不必花费所有的预算来为整个房子安装智能化系统,您可以将重点集中于一间房间。   这是一个潮流的趋势,来自美国新泽西,考德威尔,家庭自动化系统公司的老板基思·哈里森说道,"近年来,很少有业主要求我们为整栋房屋安装智能化系统,他说道,但是业主至少希望我们为他们的房屋安装一个壁挂式电视。"   制造商很快意识到消费者消费习惯的改变,并已开始研发适合安装于单间房屋的控制系统。"仅需花费一个体面假期的费用,您就可以拥有一间具备真正的智能家居系统功能的房间。 Control4公司的首席技术官埃里克·史密斯说道,Control
[工业控制]
解析单室<font color='red'>智能家居</font>控制<font color='red'>系统</font>方案
凌阳嵌入式物联网实战就业班《实训系统智能家居创新实践平台》
凌阳教育“物联网智能家居展示模型” 1、概述:   智能家居利用先进的电子技术、传感器技术、无线电技术、电力自动化技术、计算机技术、网络通讯技术、生物科学技术,将与居家生活有关的各种设备有机地结合起来,通过网络化方式综合管理家中设备。   智能家居正日渐兴起,伴随着巨大的产业需求,我国智能家居产业的人才需求量也将一路高涨。智能家居也是一个涵盖模拟电子、数字电子、电路设计、信号处理、传感器原理与检测、单片机技术、计算机原理、电机控制、网络通讯编程、网页制作、无线电通讯、图像处理、音频处理、指纹采集、嵌入式等众多学科的综合平台,又是将理论知识灵活应用到实际生活的经典之作。因此研究和学习智能家居的开发也就成为许多高校的
[网络通信]
凌阳嵌入式物联网实战就业班《实训<font color='red'>系统</font>:<font color='red'>智能家居</font>创新实践平台》
开关电源原理与设计(连载十五)正激式变压器开关电源电路参数的计算
1-6-3.正激式变压器开关电源电路参数的计算 正激式变压器开关电源电路参数计算主要对储能滤波电感、储能滤波电容,以及开关电源变压器的参数进行计算。 正激式变压器开关电源储能滤波电感和储能滤波电容参数的计算 图1-17中,储能滤波电感和储能滤波电容参数的计算,与图1-2的串联式开关电源中储能滤波电感和储能滤波电容参数的计算方法基本相同,因此,我们可以直接引用(1-14)式和(1-18)式,即:         式中Io为流过负载的电流(平均电流),当D = 0.5时,其大小正好等于流过储能电感L最大电流iLm的二分之一;T为开关电源的工作周期,T正好等于2倍控制开关的接通时间Ton ;ΔUP-P为输出电压的波纹电压,波纹电压Δ
[电源管理]
开关电源原理与设计(连载十五)正激式变压器开关电源电路<font color='red'>参数</font>的计算
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved