<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于CW32的智能家居系統

CW32生態社區 ? 來源:CW32生態社區 ? 作者:CW32生態社區 ? 2023-12-28 12:14 ? 次閱讀

例程資料鏈接如下(群文件也可下載):

BD網盤鏈接:

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

提取碼:pqyq

一、實驗簡介

智能家居系統是一款功能豐富、易于使用的智能家居解決方案,可以通過檢測溫濕度、光照強度和空氣質量等參數,為我們提供更加舒適、健康、安全的居住環境,讓用戶享受更加智能的生活體驗。

該系統采用CW32F030單片機作為核心控制器,通過各種傳感器實時監測室內環境參數,并根據預設的閾值進行相應控制。例如,當室內光照不足時,系統會自動打開燈光,確保室內光線充足。室內溫濕度數據和空氣質量通過屏幕顯示,并實時上傳到云平臺,以實現遠程監控。

二、實驗器材

本實驗使用到了CW32-48F大學計劃開發板、ESP8266WIFI模塊、DHT11溫濕度模塊、MQ-135空氣檢測傳感器、光敏電阻模塊、熱釋電傳感器模塊、LED交通燈模塊及Keil5開發環境。
圖片

CW32-48F大學計劃板
圖片

ESP8266WIFI模塊
圖片

DHT11溫濕度模塊
圖片

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

三、核心代碼

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); //清除標志位
}
}

四、效果演示

圖片

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6008

    文章

    44047

    瀏覽量

    622471
  • 智能家居
    +關注

    關注

    1915

    文章

    9198

    瀏覽量

    180001
  • 開發板
    +關注

    關注

    25

    文章

    4534

    瀏覽量

    94658
  • ESP8266
    +關注

    關注

    50

    文章

    950

    瀏覽量

    44112
  • CW32
    +關注

    關注

    1

    文章

    127

    瀏覽量

    314
收藏 人收藏

    評論

    相關推薦

    基于CW32的門禁綜合系統

    基于CW32單片機的門禁綜合系統是一款功能強大的智能門禁解決方案,它提供了三種開鎖方式:密碼開鎖、指紋開鎖和刷卡開鎖,為用戶提供方便、安全的門禁控制。該系統的核心控制器采用了
    的頭像 發表于 12-28 11:43 ?1311次閱讀
    基于<b class='flag-5'>CW32</b>的門禁綜合<b class='flag-5'>系統</b>

    CW32移植Free-RTOS】CW32開發者扶持計劃

    CW32配置Free-RTOS全過程,CW32開發者扶持計劃
    的頭像 發表于 04-18 09:38 ?5616次閱讀
    【<b class='flag-5'>CW32</b>移植Free-RTOS】<b class='flag-5'>CW32</b>開發者扶持計劃

    基于CW32單片機的智能家居系統設計

    智能家居系統是一款功能豐富、易于使用的智能家居解決方案,可以通過檢測溫濕度、光照強度和空氣質量等參數,為我們提供更加舒適、健康、安全的居住環境,讓用戶享受更加智能的生活體驗。
    的頭像 發表于 12-20 10:00 ?446次閱讀
    基于<b class='flag-5'>CW32</b>單片機的<b class='flag-5'>智能家居</b><b class='flag-5'>系統</b>設計

    CW32開發者扶持計劃#CW32 #芯片

    CW32
    CW32生態社區
    發布于 :2023年05月24日 16:56:14

    基于ARM的智能家居遠程監控系統設計

    基于ARM的智能家居遠程監控系統設計,想做智能家居的可以看看啊,這個是個很好的參考資料啊,關于智能家居的主要框架都有!{:soso_e100:}
    發表于 10-07 18:03

    智能家居系統、智能家居解決方案及智能家居定制開發

    右側客服。智能家居系統一般具有:環境安防、智能門鎖、立體音樂、環境監測(紅外亮度、然氣感應)、視頻監視、可視對講、廚房室內可視分機、燈光、空調、電動窗簾(百葉窗、氣窗)、集中控制和遠程APP控制等
    發表于 06-12 10:27

    智能家居系統有哪些特點與優勢?

    智能家居系統是由哪些部分組成的?智能家居系統有哪些特點與優勢?
    發表于 05-19 06:44

    基于ZigBee的智能家居系統設計

    【說明】智能家居系統以消費者的使用習慣為依據,利用信息系統和自動化控制系統實現人與家用設備之間的信息交換,也就是說,智能家居是對家庭環境中的
    發表于 11-08 07:44

    CW32單片機在智能馬桶的應用介紹

    智能科技的迅速發展使得我們的日常生活變得更加便捷和舒適。智能馬桶作為其中一種智能家居產品,通過單片機接受和處理來自傳感器的數據,然后通過控制模塊對智能馬桶的各項功能進行控制,實現對
    發表于 12-20 10:06

    cw32和stm32的區別

    cw32和stm32的區別 CW32和STM32是兩種常見的單片機,被廣泛應用于各種電子設備中。在本文中,我們將深入探討CW32和STM32之間的區別和優劣勢。 1. 硬件性能 硬件性能是衡量單片機
    的頭像 發表于 08-16 11:15 ?2540次閱讀

    基于CW32的無刷水泵方案

    基于CW32的無刷水泵方案
    的頭像 發表于 11-03 17:28 ?485次閱讀
    基于<b class='flag-5'>CW32</b>的無刷水泵方案

    2023電賽A題國獎CW32 開源分享

    電賽A題開源分享,主控為CW32
    的頭像 發表于 11-02 10:16 ?974次閱讀
    2023電賽A題國獎<b class='flag-5'>CW32</b> 開源分享

    基于CW32的物聯網應用

    CW32】基于CW32的物聯網應用
    的頭像 發表于 11-02 15:55 ?376次閱讀
    基于<b class='flag-5'>CW32</b>的物聯網應用

    CW32單片機在智能馬桶的應用介紹

    智能科技的迅速發展使得我們的日常生活變得更加便捷和舒適。智能馬桶作為其中一種智能家居產品,通過單片機接受和處理來自傳感器的數據,然后通過控制模塊對智能馬桶的各項功能進行控制,實現對
    的頭像 發表于 12-20 10:02 ?400次閱讀
    <b class='flag-5'>CW32</b>單片機在<b class='flag-5'>智能</b>馬桶的應用介紹

    CW32單片機在智能馬桶的應用介紹

    智能科技的迅速發展使得我們的日常生活變得更加便捷和舒適。智能馬桶作為其中一種智能家居產品,通過單片機接受和處理來自傳感器的數據,然后通過控制模塊對智能馬桶的各項功能進行控制,實現對
    的頭像 發表于 12-20 10:09 ?309次閱讀
    <b class='flag-5'>CW32</b>單片機在<b class='flag-5'>智能</b>馬桶的應用介紹
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>