實物演示效果:
https://www.bilibili.com/video/BV1bh4y1A7ZW/?vd_source=6ff7cd03af95cd504b60511ef9373a1d
????????51單片機是否適合做多功能智能家居控制系統(tǒng)?51單片機的芯片是否具有與WiFi通信的能力?如果有的話,具體有哪些芯片???做起來復不復雜?新手可以做嗎?51比32好不好做???想做的話,哪里可以看51做多功能智能家居的教程???
接下來博主帶大家做一個基于51單片機的智能家居終端
?以下我大概說明我制作的過程以及用到的資料方便同行能夠獲取使用。
? ?????1,通過ESP8266-01S來進行一個信號的傳輸,就是手機與單片機來連接的一個橋梁。通過這個可以實現手機APP上實時顯示單片機獲取的數據,包括LED燈的狀態(tài),DHT11獲取的溫濕度當然我們也可以控制單片機做出相應的動作,通過手機APP的按鍵來操作。
? ?? ?? 2,但是隨著技術的日益進步,通常使用的洞洞板完全可以實現我所說的功能,但是不斷地通過原理圖焊接連線不僅復雜而且需要的時間非常多。那么繪制PCB是非常好的一個思路。它的好處(1)可以批量生產(2)大大減少工作量(3)我們只需做一遍就可以了。按照這個思路首先是我們需要繪制PCB的資料第一步:制作或是收集每個原件的原理圖(其實大多數網上都是有的,但是多且雜亂無章。最后我會提供給大家非常齊全且整理好的的原理圖庫和封裝還有3D庫)。第二步:就是給每一個原理圖添加封裝(這里的封裝是PCB封裝和3D庫,按照我的理解就是能看到原件本來的模樣這個對你后期購買元器件是非常重要的)。
一、設計完成主要功能? ? ? ??
????????本設計可分為溫濕度檢測與煙霧檢測和人體檢測部分。溫濕度檢測部分,是通過利用單總線型數字式溫濕度傳感器DHT11,實現系統(tǒng)具有測溫濕度誤差小、分辨率高、抗干擾能力強等特點。煙霧檢測電路,利用氣體傳感器MQ-2與ADC0832模數轉換器實現基本功能。通過這些傳感器和芯片,當環(huán)境中可燃氣體濃度或有毒氣體等發(fā)生變化時系統(tǒng)會發(fā)出相應的燈光報警信號和聲音報警信號,以此來實現火災報警,智能化提示。人體檢測部分,是通過HC-SR501模塊實現,模塊主要功能就是熱釋電紅外傳感器感應到入侵者的紅外熱輻射,將其轉換成超低頻信號,經電路放大、輸出。檢測器是利用紅外人體檢測探頭檢測預先設定好的范圍內的情況,一旦有危險便向單片機發(fā)出信號,再經單片機處理,然后控制蜂鳴器和LED點亮發(fā)出警告,本設計還可以應用于家居防盜、倉庫防盜等多種防盜場合,具有很強的實用價值和良好的市場前景。溫濕度、煙霧和人體防盜檢測是三種最基本的環(huán)境參數,其測量方法和裝置對現在的生活、生產具有重要的意義。本課題基本完成預期設想,設計并實現了系統(tǒng)的硬件電路,完成了系統(tǒng)軟件的編寫和調試。測試結果證明,達到了設計要求
二、課題背景
????????當今世界,隨著科技的不斷發(fā)展,智能環(huán)境監(jiān)測成了人類關注的話題。智能家居通過物聯網技術將家中的各種設備(如照明系統(tǒng)、火災檢測系統(tǒng)、空調控制、安防系統(tǒng),報警控制等)連接到一起,提供家電控制、照明控制、智能溫濕度調節(jié)、室內外遙控、防盜報警以及環(huán)境監(jiān)測等多種功能和手段。與普通家居相比,智能家居不僅具有傳統(tǒng)的居住功能,兼?zhèn)浣ㄖ?、信息家電、設備自動化,集系統(tǒng)、結構、服務、管理為一體的高效、舒適、安全、便利、環(huán)保的居住環(huán)境,而且提供全方位的信息交互功能,幫助家庭與外部保持信息交流暢通,優(yōu)化人們的生活方式,幫助人們有效安排時間,增強家居生活的安全性,甚至為各種能源費用節(jié)約資金。
本文首先介紹了智能家居的發(fā)展前景,接著介紹了該課題設計構想,各模塊電路的選擇及其電路工作原理,最后對該課題的設計過程進行了總結與展望并附帶各個模塊的電路原理圖,和本設計仿真圖,以及C語言思想。智能家居實驗是為智能家居系統(tǒng)實驗做準備的,是實驗的基礎,智能家居是為了提高學生的動手能力,配合各類電子設計大賽,科技活動等而開發(fā)的設計模型。在此模型上我們可以進行多種實驗,如測量,感應,報警等等。為了能更好的控制模擬家居,實現手動與自動控制相結合,進行各種功能實現,并且這個實驗對現實生活也有一定的意義,所以我們就需要對這個實驗進行一定的研究
?1.21概述及功能介紹
????????本次設計主要分五個個功能,分別為測溫濕度,煙霧及紅外感應和報警,顯示信息和報警信息。將這幾個個功能巧妙的與家居結合,我們已經知道五個單獨功能如何實現,現在要將五個功能通過單片機系統(tǒng)化反饋,以達到能實現綜合五種功能的智能家居。
設計涉及主硬件為:STC89C52RC單片機,DHT11溫濕度傳感器,人體紅外感應器,MQ-2煙霧傳感器,按鍵設置與LCD1602液晶顯示模塊,蜂鳴器報警電路,以及超標指示顯示模塊組成。
?1.2.2 功能介紹
????????(1)通過DHT11溫濕度采集數據將信息顯示于LCD1602上面,如果溫濕度超出設定的預警值,指示燈有提示并蜂鳴器報警;待到壞境溫濕度降到低于預警值的時候,報警自動關閉。
????????(2)采用煙霧探頭傳感器來檢測我們周圍環(huán)境的煙霧,可對煤氣甲烷,以及我們周圍著火的煙霧,或是抽煙的濃度等實時監(jiān)測,如有超標,蜂鳴器報警,并有指示燈動作來提醒你解決當前的問題,解決之后,這些顯示和指示指標自動關閉,所以能給您帶來一定的安全感。
????????(3)人體紅外檢測電路能夠根據外界移動人體進行判斷,如果在布防狀態(tài)并且有人時,指示燈有提示并蜂鳴器報警,來警告入侵者,直至手動撤防才可以解除報警。而且具有掉電保存的功能,即使人為關閉電源再開機也能繼續(xù)報警,這樣更加智能。
三、論文目錄
四、項目子仿真圖
????????1).開機顯示界面
? ? ? ? 2).燈具關閉失敗顯示界面
文章來源:http://www.zghlxwxcb.cn/news/detail-803402.html
? ? ? ? 3).溫度檢測顯示界面
文章來源地址http://www.zghlxwxcb.cn/news/detail-803402.html
五、部分源碼程序
#include<reg52.h>
#include <I2C.H>
#define ADDR 0x90 //PCF8591 地址
// 此表為 LED 的字模 // 0 1 2 3 4 5 6 7 8 9 A b c d E - L P U Hidden _ (20)
unsigned char code Disp_Tab[] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x88,0x83,0xC6,0xA1,0x86,0xbf,0xc7,0x8c,0xc1, 0xff, 0xf7 };
unsigned char TABLEW[8] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char AD_CHANNEL;
unsigned char LedOut[8];
unsigned int D[32];
sbit KEY1 = P3^2;
sbit KEY2 = P3^3;
/********************************************************************
* 名稱 : Delay_1ms()
* 功能 : 延時子程序,延時時間為 1ms * x
* 輸入 : x (延時一毫秒的個數)
* 輸出 : 無
***********************************************************************/
void Delay_1ms(unsigned char i)//1ms延時
{
unsigned char x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}
/*******************************************************************
DAC 變換, 轉化函數
*******************************************************************/
bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val)
{
Start_I2c(); //啟動總線
SendByte(sla); //發(fā)送器件地址
if(ack==0)return(0);
SendByte(c); //發(fā)送控制字節(jié)
if(ack==0)return(0);
SendByte(Val); //發(fā)送DAC的數值
if(ack==0)return(0);
Stop_I2c(); //結束總線
return(1);
}
/*******************************************************************
ADC發(fā)送字節(jié)[命令]數據函數
*******************************************************************/
bit ISendByte(unsigned char sla,unsigned char c)
{
Start_I2c(); //啟動總線
SendByte(sla); //發(fā)送器件地址
if(ack==0)return(0);
SendByte(c); //發(fā)送數據
if(ack==0)return(0);
Stop_I2c(); //結束總線
return(1);
}
/*******************************************************************
ADC讀字節(jié)數據函數
*******************************************************************/
unsigned char IRcvByte(unsigned char sla)
{ unsigned char c;
Start_I2c(); //啟動總線
SendByte(sla+1); //發(fā)送器件地址
if(ack==0)return(0);
c=RcvByte(); //讀取數據0
Ack_I2c(1); //發(fā)送非就答位
Stop_I2c(); //結束總線
return(c);
}
//******************************************************************/
main()
{
unsigned char i,temp=1;
while(1)
{/********以下AD-DA處理*************/
switch(AD_CHANNEL)
{
case 0: ISendByte(ADDR,0x41);
D[0]=IRcvByte(ADDR)*2; //ADC0 模數轉換1
break;
case 1: ISendByte(ADDR,0x42);
D[1]=IRcvByte(ADDR)*2; //ADC1 模數轉換2
break;
case 2: ISendByte(ADDR,0x43);
D[2]=IRcvByte(ADDR)*2; //ADC2 模數轉換3
break;
case 3: ISendByte(ADDR,0x40);
D[3]=IRcvByte(ADDR)*2; //ADC3 模數轉換4
break;
case 4: DACconversion(ADDR,0x40, D[4]/4); //DAC 數模轉換
break;
}
if(++AD_CHANNEL>4) AD_CHANNEL=0;
if(KEY1==0 || KEY2==0 )
{
Delay_1ms(20); //20毫秒軟件防抖
if(KEY1 == 0)
{
temp =1;
}
else if(KEY2 == 0)
{
temp=2;
}
}
if(temp ==1)
{
LedOut[0]=Disp_Tab[D[0]%10000/1000];
LedOut[1]=Disp_Tab[D[0]%1000/100];
LedOut[2]=Disp_Tab[D[0]%100/10]&0x7f;
LedOut[3]=Disp_Tab[D[0]%10];
LedOut[4]=Disp_Tab[D[1]%10000/1000];
LedOut[5]=Disp_Tab[D[1]%1000/100]&0x7f;
LedOut[6]=Disp_Tab[D[1]%100/10];
LedOut[7]=Disp_Tab[D[1]%10];
}
if(temp ==2)
{
LedOut[0]=Disp_Tab[D[2]%10000/1000];
LedOut[1]=Disp_Tab[D[2]%1000/100];
LedOut[2]=Disp_Tab[D[2]%100/10]&0x7f;
LedOut[3]=Disp_Tab[D[2]%10];
LedOut[4]=Disp_Tab[D[3]%10000/1000];
LedOut[5]=Disp_Tab[D[3]%1000/100]&0x7f;
LedOut[6]=Disp_Tab[D[3]%100/10];
LedOut[7]=Disp_Tab[D[3]%10];
}
for(i=0;i<8;i++)
{
P0 = LedOut[7-i];
P2 = 7-i;
Delay_1ms(2);
}
}
}
到了這里,關于51單片機_智能家居終端的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!