項目采用數(shù)字微波傳感器和Arduino控制板,實現(xiàn)了一個人體探測系統(tǒng),可探測到墻壁后方的活動物體。相較紅外傳感器、超聲波傳感器、PIR接近傳感器和TOF飛行時間傳感器方案,本項目對各種物體都敏感,而且傳感器的數(shù)據(jù)不受室內(nèi)溫度的影響。
了解微波傳感器
微波傳感器是利用微波特性來檢測一些物理量的器件,可感應(yīng)物體的存在、運動速度、距離、角度等信息。
工作時,由發(fā)射天線發(fā)出的微波,遇到被測物體時將被吸收或反射,使功率發(fā)生變化。若利用接收天線接收通過被測物體或由被測物反射回來的微波,并將它轉(zhuǎn)換成電信號,再由測量電路處理,就實現(xiàn)了微波檢測。
結(jié)構(gòu)上,微波傳感器主要由微波振蕩器和微波天線組成。微波振蕩器是產(chǎn)生微波的裝置,如速調(diào)管、磁控管或某些固體元件等。微波振蕩器產(chǎn)生的振蕩信號需用波導(dǎo)管傳輸,再通過天線發(fā)射出去。為了使發(fā)射的微波具有一致的方向性,天線應(yīng)具有特殊的構(gòu)造和形狀。
相較PIR等,微波傳感器性能不受光纖、溫度、濕度、噪聲、灰塵等影響,廣泛應(yīng)用于液位檢測、自動洗衣機、車速測量、自動門運動檢測、車輛傾覆、生產(chǎn)線材料檢測、自動燈控、高階安防警報系統(tǒng)等。
數(shù)字微波傳感器V2.0
使用來自DFrobot的重力數(shù)字微波傳感器V2.0,可非接觸檢測任何物體,其讀數(shù)不受溫度、濕度、噪聲、空氣、灰塵和光線的影響,具有較強的抗RF干擾能力,非常適合苛刻環(huán)境應(yīng)用。由于輸出功率小,對人體沒有傷害,加上檢測范圍寬,還可用來檢測非生命類物體。
主要特點包括:
工作電壓:5V
工作電流:最大60mA,典型值為37mA。
探測距離:2-16米,可通過電位器調(diào)節(jié)。
探測角度:與天線并行方向72°,垂直方向為36°。
調(diào)頻精度: 3MHz
輸出功率(Minimum): 13dBm EIRP
諧波輻射: <-10dBm
平均電流: 2mA typ.
脈沖寬度(Min.): 5uSec
負荷周期(Min.): 1%
接收:敏感度(10dB信噪比) 3Hz to 80Hz帶寬: -86dBm
3Hz to 80Hz 帶寬簇: 10uV
天線增益: 8dBi
垂直3dB寬帶: 36 degrees
紅色LED為電源指示燈,黃色為信號指示LED。沒有活動物體時間。由于沒有信號,LED保持熄滅狀態(tài),只有傳感器檢測到活動物體時點亮。
黃色PCB為天線接口板,紅色引線為5V,黑色線為GND,綠色線為輸出。
微波傳感器測試
微波傳感器光線的“ON”持續(xù)時間可按照需求進行改變,采用更高階微波傳感器可獲得更高級的性能體驗。
項目要求每隔3秒,就通過OLED顯示模塊顯示一下發(fā)生中斷的數(shù)目。這些中斷只在出現(xiàn)移動物體,或者人體時才發(fā)生,數(shù)字越大意味著運動越多。
微波傳感器的探測距離為2-16米,模塊上的藍色電位器就是用來調(diào)節(jié)測量距離的。
為了測試傳感器的性能,我將其固定在房門上,安裝時要將微波傳感器的正面朝向被檢測區(qū)域,看看能否檢測到弟弟的活動。
果然,傳感器成功檢測到了房間里的弟弟。
構(gòu)建人體探測系統(tǒng)
該系統(tǒng)可探測躲藏于墻壁后方的運動物體及人類,參見該探測系統(tǒng)電路圖。
系統(tǒng)中,微波傳感器的輸出引腳連接于D2開發(fā)板的D2引腳,5v及GND兩個引腳分別連接于Arduino的5v和GND引腳。
電路圖左上側(cè)是基于LM7805穩(wěn)壓器的5V穩(wěn)定電壓,J1是DC電源的母頭。這里,我們連接了一個12v適配器、鋰離子電池,或者太陽能電池板。
電路圖右側(cè)為一個i2c接口的SSD1306 OLED模塊,其SCL引腳和SDA引腳分別鏈接于Arduino板子的A5、A4引腳。
以下是本活體探測系統(tǒng)代碼:
#include
#include //Timer interrupt function library
#include
#include
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3D
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int pbIn = 0; // Define interrupt 0 that is digital pin 2
int ledOut = 13; // Define the indicator LED pin digital pin 13
int number=0; //Interrupt times
volatile int state = LOW; // Defines the indicator LED state, the default is not bright
void setup()
{
Serial.begin(9600);
pinMode(ledOut, OUTPUT);//
attachInterrupt(pbIn, stateChange, FALLING); // Set the interrupt function, interrupt pin is digital pin D2,
//interrupt service function is stateChange (),
//when the D2 power change from high to low , the trigger interrupt.
MsTimer2::set(3000, Handle); // Set the timer interrupt function, running once Handle() function per 1000ms
MsTimer2::start();//Start timer interrupt function
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.display();
}
void loop()
{
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,5);
display.println("status: ");
display.setTextSize(3);
display.setTextColor(WHITE);
display.setCursor(0,30);
display.println(number);
display.display();
display.clearDisplay();
delay(10);
}
void stateChange() //Interrupt service function
{
number++; //Interrupted once, the number + 1
}
void Handle() //Timer service function
{
number = 0;
}
這樣,將電路安裝于墻壁上,微波傳感器系統(tǒng)就能探測到墻壁的另一方是否有人在活動,并將結(jié)果顯示在OLED顯示屏上。
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2541文章
49945瀏覽量
747443 -
探測系統(tǒng)
+關(guān)注
關(guān)注
0文章
56瀏覽量
11239 -
Arduino
+關(guān)注
關(guān)注
187文章
6453瀏覽量
185916
發(fā)布評論請先 登錄
相關(guān)推薦
評論