相關(guān)商品
【創(chuàng)客學(xué)堂】基于Arduino與各種傳感器的家庭環(huán)境信息采集器
編輯:Peter2013-09-05 130708050@qq.com 瀏覽次數(shù):941
Arduino已經(jīng)流行了很長時間了,學(xué)習(xí)Arduino的各種套件也已經(jīng)推出了很長時間了,里面包括了大部分的傳感器。當我們按照學(xué)習(xí)、實驗?zāi)夸洷碜鐾晁械?span style="color: #ff0000">Arduino利用各種傳感器采集信息的實驗之后,還應(yīng)該如何利用這些套件里的各種傳感器與Arduino控制器呢?在這里小編就幫大家整合一下Arduino和它的這些小伙伴們,復(fù)習(xí)一下之前學(xué)習(xí)的知識,利用Arduino和這些常用的傳感器一起制作一款簡單實用的家庭用具——家庭環(huán)境信息探測儀。
我們在套件當中會發(fā)現(xiàn)很多實用的傳感器模塊,像溫度傳感器、濕度傳感器、氣體傳感器、光線傳感器與繼電器模塊等,更重要的是我們還有操作它們的代碼,這使得整合變得更簡單了。
Now let us do it!
小編在這里就不啰嗦Arduino控制器與它的那些小伙伴了,直接上圖告訴大家需要什么,正所謂有圖有真相。
我們的預(yù)期功能是利用Arduino控制器與各種常見的傳感器檢測室內(nèi)環(huán)境的部分信息,如溫度、濕度、有害氣體濃度、光照強度及明火等功能,檢測到以上包含危險項的信息后,Arduino控制器將控制蜂鳴器長鳴,LED(紅色和黃色)交替快閃,從而產(chǎn)生聲光報警信號,同時會控制相應(yīng)的繼電器做出反應(yīng),采取必要的補救措施;若情況安全,則蜂鳴器、LED及繼電器無動作,并且設(shè)計有顯示模塊,能夠?qū)崟r數(shù)據(jù)顯示出來,做到一目了然。
Arduino電子積木套件
部分代碼如下:
const int gas = 0;
const int air = 1;
const int ctr_0 = 2;
const int ctr_1 = 3;
const int ctr_2 = 4;
const int ctr_3 = 5;
const int ctr_4 = 6;
const int ctr_5 = 7;
const int fire = 9;
const int tem = 10;
const int beep = 11;
const int led_r = 12;
const int led_y = 13;
int TemVal[8];
int loop_1;
int temval;
//NoWarn
void NoWarn()
{
digitalWrite(beep,LOW);
digitalWrite(led_r,LOW);
digitalWrite(led_y,LOW);
}
//Warn
void Warn()
{
digitalWrite(beep,HIGH);
digitalWrite(led_r,HIGH);
digitalWrite(led_y,LOW);
delay(100);
digitalWrite(led_r,LOW);
digitalWrite(led_y,HIGH);
delay(100);
}
//fire
int FireRead()
{
return analogRead(fire);
}
//MQ-2
int GasRead()
{
return analogRead(gas);
}
//MQ-3
int AirRead()
{
return analogRead(air);
}
//LM35
int TemRead()
{
for(loop_1 = 0;loop_1 < 8;loop_1++)
{
TemVal[loop_1] = (5.0 * analogRead(tem) *100.0) / 1024;
temval = temval + TemVal[loop_1];
delay(100);
}
temval = temval / 8.0;
return temval;
}
void setup()
{
Serial.begin(9600);
pinMode(gas,INPUT);
pinMode(air,INPUT);
pinMode(fire,INPUT);
pinMode(tem,INPUT);
pinMode(beep,OUTPUT);
pinMode(led_r,OUTPUT);
pinMode(led_y,OUTPUT);
pinMode(ctr_0,OUTPUT);
pinMode(ctr_1,OUTPUT);
pinMode(ctr_2,OUTPUT);
pinMode(ctr_3,OUTPUT);
pinMode(ctr_4,OUTPUT);
pinMode(ctr_5,OUTPUT);
}
void loop()
{
int FireVal = FireRead();
Serial.println(FireVal);
if(FireVal >= 600)
Warn();
int GasVal = GasRead();
Serial.println(GasVal);
if(GasVal >= 600)
Warn();
int AirVal = AirRead();
Serial.println(AirVal);
if(AirVal >= 600)
Warn();
int Temperature = TemRead();
Serial.println(Temperature);
}
對于高手這篇文章真的是太簡單了,可是對于Arduino初學(xué)者而言,小編覺得這篇文章還是有些必要的,因為通過這個簡單而實用的制作,不僅可以鍛煉我們的動手能力,更重要的是我們又復(fù)習(xí)了一下之前分節(jié)學(xué)習(xí)Arduino的內(nèi)容,并作出了整合,使這些知識不再零散、瑣碎,做到了有機的結(jié)合在了一起。
Arduino看上去就是一個簡單的最小系統(tǒng),其實不然,為了讓它易學(xué)易用,很多人付出了艱巨的努力。當我們越來越深入的學(xué)習(xí)它的時候,就會發(fā)現(xiàn)在它簡單的背后其實隱藏著很多內(nèi)在的潛能!
讓我們來徹底了解Arduino吧!當然了,不要忘了它的那些小伙伴們——傳感器!
Arduino UNO
http://m.lifestyle201.com/goods-141.html
Arduino傳感器擴展板v5.0
http://m.lifestyle201.com/goods-147.html
LM35溫度傳感器器
http://m.lifestyle201.com/goods-71.html
蜂鳴器模塊
http://m.lifestyle201.com/goods-169.html
LED發(fā)光模塊
http://m.lifestyle201.com/goods-133.html
繼電器模塊
http://m.lifestyle201.com/goods-137.html
Arduino電子積木學(xué)習(xí)套件
用戶評價
暫時還沒有任何用戶評論