智能家居之基礎傳感器應用介紹

1.測量煤氣濃度

MQ-2 Gas Sensor 氣體傳感器 - 液化氣、丙烷和氫氣等

在家裡可以安裝一個檢測煤氣的傳感器,這樣就可以監測煤氣是否洩漏。

1)產品描述:

主要適用於液化氣、丙烷和氫氣等

模擬輸出電壓隨檢測環境中氣體濃度的升高而增大

快速的響應恢復特性

自帶升壓電路

靈敏度可調

信號輸出指示

2)產品參數:

工作電壓:2.5V ~ 5.0V

產品尺寸:40.0mm * 21.0mm

固定孔尺寸:2.0mm

3)主要用途:

家庭或工廠的氣體洩漏檢測裝置

4)接口說明:(以接入MCU為例)

VCC:接2.5V ~ 5.0V

GND:接GND

AOUT:接MCU.IO (模塊模擬量輸出)

DOUT:接MCU.IO (模塊數字量輸出)

5)產品選型:

智能家居之基礎傳感器應用介紹

智能家居之基礎傳感器應用介紹

源碼:

void setup(){ //初始化

Serial.begin(9600); //設置串口波特率

}

void loop() //主程序

{

float vol; //定義浮點型 變量vol 存儲煤氣濃度值

int sensorValue = analogRead(A0); //定義整型變量sensorValue來讀取A0模擬電壓

vol=(float)sensorValue/1024*5.0; //計算煤氣濃度值

Serial.print("Concentration of gas= ");//串口打印Concentration of gas=

Serial.println(sensorValue);//模擬電壓

delay(2000);//延時2秒打印一次

}

2.用傳感器測量酒精濃度:

MQ-3 Gas Sensor 氣體傳感器 - 酒精蒸汽

1)產品描述:

主要適用於酒精蒸汽

模擬輸出電壓隨檢測環境中氣體濃度的升高而增大

快速的響應恢復特性

靈敏度可調

信號輸出指示

2)產品參數:

工作電壓:2.5V ~ 5.0V

產品尺寸:40.0mm * 21.0mm

固定孔尺寸:2.0mm

3)主要用途:

車用酒精氣體報警器和便攜式酒精氣體檢測器等

4)接口說明:(以接入MCU為例)

VCC:接2.5V ~ 5.0V

GND:接GND

AOUT:接MCU.IO (模擬量輸出)

DOUT:接MCU.IO (數字量輸出)

5)產品選型:

智能家居之基礎傳感器應用介紹

智能家居之基礎傳感器應用介紹

源碼:

int readings=0; //定義整型變量readings存儲酒精濃度

void setup(){//初始化

Serial.begin(9600);//設置串口波特率

}

void loop(){//主程序

readings=analogRead(A1);//從模擬A0口讀取酒精濃度

Serial.print("Level of alcohol= ");//串口打印Level of alcohol=

Serial.println(readings);//酒精濃度值

delay(1000);//延時1秒打印一次

}

3.用於傳感監測火焰

火焰傳感器

如果家裡有可能失火,那麼監測火焰就變得十分重要。

1)產品描述:

對火焰光譜敏感

使用寬電壓LM393電壓比較器

靈敏度可調

信號輸出指示

2)產品參數:

檢測波長:760nm ~ 1100nm

探測角度:0度到60度

工作電壓:3.3V ~ 5.3V

工作溫度:-25℃ ~ 85℃

產品尺寸:27.3mm * 15.4mm

固定孔尺寸:2.0mm

3)主要用途:

火源探測、滅火機器人、火焰警報器、智能小車和電子積木等

4)接口說明:(以接入MCU為例)

VCC:接3.3V ~ 5.3V

GND:接GND

AOUT:接MCU.IO (模擬量輸出)

DOUT:接MCU.IO (數字量輸出)

5)產品圖片

智能家居之基礎傳感器應用介紹

源碼:

int ledPin = 13; // led指示燈

int inputPin = 2; // 感應器數字信號

int val = 0; // 感應器模擬信號

int pinSpeaker = 10; // 一個蜂鳴器

int pirState = HIGH; //狀態

void setup() {//初始化

pinMode(ledPin, OUTPUT); //ledpin 為輸出

pinMode(inputPin, INPUT); // inputPin為輸入

pinMode(pinSpeaker, OUTPUT); //pinSpeaker為輸出

Serial.begin(9600);//設置串口波特率

}

void loop(){ //主程序

val = digitalRead(inputPin); // val=1/HIGH; val = 0/LOW

Serial.print("val : "); //串口打印val :

Serial.println(val);//val值

digitalWrite(ledPin, HIGH); // 開燈

if (val == HIGH) { // 如果val == HIGH 沒有火焰

Serial.print("NO Fire detected ");//則串口打印NO Fire detected

digitalWrite(ledPin, LOW); // 關燈

playTone(0, 0);//調用蜂鳴器playTone函數

delay(300); //延時0.3秒

}else{ //否則 發現火焰

Serial.print("Fire DETECTED ");//串口打印Fire DETECTED

digitalWrite(ledPin, HIGH); //開燈警示

playTone(300, 160);

delay(150);//延時0.15秒

}

}

void playTone(long duration, int freq) { //定義一個函數蜂鳴器 playTone 形參長整型 持續時間 整型 頻率

duration *= 1000;//持續時間*1000

int period = (1.0 / freq) * 1000000; //整型 週期時間

long elapsed_time = 0; //長整型 所需時間

while (elapsed_time < duration) { //如果所需時間

digitalWrite(pinSpeaker,HIGH); //pinSpeaker高電平

delayMicroseconds(period / 2);//延時時間(微妙級)

digitalWrite(pinSpeaker, LOW);//pinSpeaker低電平

delayMicroseconds(period / 2);//延時時間(微妙級)

elapsed_time += (period);//所需時間 +週期時間

}

}

4.測量植物溼度

土壤溼度傳感器

1)產品描述:

叉形設計,方便插入土壤

模塊插入土壤後,輸出電壓隨著土壤溼度升高而增大

2)產品參數:

檢測深度:38mm

工作電壓:2.0V ~ 5.0V

產品尺寸:20.0mm * 51.0mm

固定孔尺寸:2.0mm

3)主要用途:

自動澆水系統、花盆土壤溼度檢測和自動灌溉系統等

4)接口說明:(以接入MCU為例)

VCC:接2.0V ~ 5.0V

GND:接GND

AOUT:接MCU.IO (模擬量輸出)

5)產品圖片

智能家居之基礎傳感器應用介紹

源碼:

int Valor; //定義整型Valor 溼度值

void setup() {//初始化

Serial.begin(9600);//設置串口波特率

}

void loop(){ //主函數

Serial.print("Huminity sensor value:");//串口打印Huminity sensor value:

Valor = analogRead(A0); //從A0口讀取溼度值

Serial.print(Valor); //打印溼度值

if (Valor <= 300) //溼度值<= 300

Serial.println(" Very wet"); //串口打印Very wet 很溼

if ((Valor > 300) and (Valor <= 700)) //溼度值> 300 且 溼度值<= 700

Serial.println(" Wet, do not water"); //串口打印Wet, do not water 溼 ,但不需要水

if (Valor > 700) //溼度值>700

Serial.println(" Dry, you need to water"); //串口打印Dry, you need to water 幹,需要水

delay(1000); //延時1秒打印一次

}

5.人體紅外傳感器HC-SR501

1)工作原理

人體都有恆定的體溫,一般在37度,所以會發出特定波長10UM左右的紅外線,被動式紅外探頭就是靠探測人體發射的10UM左右的紅外線而進行工作的。人體發射的10UM左右的紅外線通過菲泥爾濾光片增強後聚集到紅外感應源上。

紅外感應源通常採用熱釋電元件,這種元件在接收到人體紅外輻射溫度發生變化時就會失去電荷平衡,向外釋放電荷,後續電路經檢測處理後就能產生報警信號。

2)熱釋電效應:

當一些晶體受熱時,在晶體兩端將會產生數量相等而符號相反的電荷。這種由於熱變化而產生的電極化現象稱為熱釋電效應。

3)菲涅耳透鏡:

根據菲涅耳原理製成,菲涅耳透鏡分為折射式和反射式兩種形式,其作用一是聚焦作用,將熱釋的紅外信號折射(反射)在PIR上;二是將檢測區內分為若干個明區和暗區,使進入檢測區的移動物體能以溫度變化的形式在PIR上產生變化熱釋紅外信號,這樣PIR就能產生變化電信號。使熱釋電人體紅外傳感器(PIR)靈敏度大大增加。

4)模塊參數:

工作電壓:DC5V至20V

靜態功耗:65微安

電平輸出:高3.3V,低0V

延時時間:可調(0.3秒~18秒)

封鎖時間:0.2秒

觸發方式:L不可重複,H可重複,默認值為H(跳帽選擇)

感應範圍:小於120度錐角,7米以內

工作溫度:-15~+70度

5)模塊特性:

a這種探頭是以探測人體輻射為目標的。所以熱釋電元件對波長為10UM左右的紅外輻射必須非常敏感。

b為了僅僅對人體的紅外輻射敏感,在它的輻射照面通常覆蓋有特殊的菲泥爾濾光片,使環境的干擾受到明顯的控制作用。

c被動紅外探頭,其傳感器包含兩個互相串聯或並聯的熱釋電元。而且製成的兩個電極化方向正好相反,環境背景輻射對兩個熱釋元件幾乎具有相同的作用,使其產生釋電效應相互抵消,於是探測器無信號輸出。

d一旦人侵入探測區域內,人體紅外輻射通過部分鏡面聚焦,並被熱釋電元接收,但是兩片熱釋電元接收到的熱量不同,熱釋電也不同,不能抵消,經信號處理而報警。

e菲泥爾濾光片根據性能要求不同,具有不同的焦距(感應距離),從而產生不同的監控視場,視場越多,控制越嚴密。

6)觸發方式:

L不可重複,H可重複。可跳線選擇,默認為H。

a 不可重複觸發方式:即感應輸出高電平後,延時時間一結束,輸出將自動從高電平變為低電平。

b重複觸發方式: 即感應輸出高電平後,在延時時間段內,如果有人體在其感應範圍內活動,其輸出將一直保持高電平,直到人離開後才延時將高電平變為低電平(感應模塊檢測到人體的每一次活動後會自動順延一個延時時間段,並且以最後一次活動的時間為延時時間的起始點)。

7)可調封鎖時間及檢測距離調節:

a 調節檢測距離

b 封鎖時間:感應模塊在每一次感應輸出後(高電平變為低電平),可以緊跟著設置一個封鎖時間,在此時間段內感應器不接收任何感應信號。此功能可以實現(感應輸出時間和封鎖時間)兩者的間隔工作,可應用於間隔探測產品;同時此功能可有效抑制負載切換過程中產生的各種干擾。(默認封鎖時間2.5S)

注:

1、調節距離電位器順時針旋轉,感應距離增大(約 7 米),反之,感應距離減小(約 3 米)。

2、調節延時電位器順時針旋轉,感應延時加長(約300S),反之,感應延時減短(約 0.5S)

8)安裝:

紅外線熱釋電人體傳感器只能安裝在室內,其誤報率與安裝的位置和方式有極大的關係,正確的安裝應滿足下列條件:

a 紅外線熱釋電傳感器應離地面2.0-2.2米。

b 紅外線熱釋電傳感器遠離空調, 冰箱,火爐等空氣溫度變化敏感的地方。

b 紅外線熱釋電傳感器探測範圍內不得隔屏、傢俱、大型盆景或其他隔離物。

d 紅外線熱釋電傳感器不要直對窗口,否則窗外的熱氣流擾動和人員走動會引起誤報,有條件的最好把窗簾拉上。紅外線熱釋電傳感器也不要安裝在有強氣流活動的地方。

紅外線熱釋電傳感器對人體的敏感程度還和人的運動方向關係很大。熱釋電紅外傳感器對於徑向移動反應最不敏感, 而對於橫切方向 (即與半徑垂直的方向)移動則最為敏感. 在現場選擇合適的安裝位置是避免紅外探頭誤報、求得最佳檢測靈敏度極為重要的一環。

8)產品圖片

智能家居之基礎傳感器應用介紹

源碼:

int sensor = 8; //定義感應器引腳

void setup() {//初始化

Serial.begin(9600);//設置串口波特率

pinMode(sensor,INPUT);//定義感應器引腳為輸入狀態

}

void loop() { //主函數

int state = digitalRead(sensor); //讀取狀態

Serial.print("Detecting sensor: ");//串口打印Detecting sensor:

Serial.println(state);//狀態值

delay(100);//延時0.1秒打印一次

}

6.用簧片開關監測門窗是否被打開

用磁性開關來監測,如果監測到磁場,傳感器就會輸出0,如果磁場很遠,傳感器就會輸出1.就這樣就可以判斷門窗是開還是關。

源碼:

int sensor = 8;//定義感應器引腳

void setup() {//初始化

Serial.begin(9600);//設置串口波特率

pinMode(sensor,INPUT);//定義感應器引腳為輸入狀態

}

void loop() {//主函數

int state = digitalRead(sensor); //讀取狀態

if (state == LOW) {//如果狀態為低電平

Serial.println("Door Close");//串口打印Door Close

}

if (state == HIGH) {//如果狀態為高電平

Serial.println("Door Open");//串口打印Door Open

}

delay(2000);//延時2秒打印一次

}


分享到:


相關文章: