相关商品
【创客学堂】基于Arduino与各种传感器的家庭环境信息采集器
编辑:Peter2013-09-05 130708050@qq.com 浏览次数:936
Arduino已经流行了很长时间了,学习Arduino的各种套件也已经推出了很长时间了,里面包括了大部分的传感器。当我们按照学习、实验目录表做完所有的Arduino利用各种传感器采集信息的实验之后,还应该如何利用这些套件里的各种传感器与Arduino控制器呢?在这里小编就帮大家整合一下Arduino和它的这些小伙伴们,复习一下之前学习的知识,利用Arduino和这些常用的传感器一起制作一款简单实用的家庭用具——家庭环境信息探测仪。
我们在套件当中会发现很多实用的传感器模块,像温度传感器、湿度传感器、气体传感器、光线传感器与继电器模块等,更重要的是我们还有操作它们的代码,这使得整合变得更简单了。
Now let us do it!
小编在这里就不啰嗦Arduino控制器与它的那些小伙伴了,直接上图告诉大家需要什么,正所谓有图有真相。
我们的预期功能是利用Arduino控制器与各种常见的传感器检测室内环境的部分信息,如温度、湿度、有害气体浓度、光照强度及明火等功能,检测到以上包含危险项的信息后,Arduino控制器将控制蜂鸣器长鸣,LED(红色和黄色)交替快闪,从而产生声光报警信号,同时会控制相应的继电器做出反应,采取必要的补救措施;若情况安全,则蜂鸣器、LED及继电器无动作,并且设计有显示模块,能够将实时数据显示出来,做到一目了然。
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初学者而言,小编觉得这篇文章还是有些必要的,因为通过这个简单而实用的制作,不仅可以锻炼我们的动手能力,更重要的是我们又复习了一下之前分节学习Arduino的内容,并作出了整合,使这些知识不再零散、琐碎,做到了有机的结合在了一起。
Arduino看上去就是一个简单的最小系统,其实不然,为了让它易学易用,很多人付出了艰巨的努力。当我们越来越深入的学习它的时候,就会发现在它简单的背后其实隐藏着很多内在的潜能!
让我们来彻底了解Arduino吧!当然了,不要忘了它的那些小伙伴们——传感器!
Arduino UNO
http://www.alsrobot.cn/goods-141.html
Arduino传感器扩展板v5.0
http://www.alsrobot.cn/goods-147.html
LM35温度传感器器
http://www.alsrobot.cn/goods-71.html
蜂鸣器模块
http://www.alsrobot.cn/goods-169.html
LED发光模块
http://www.alsrobot.cn/goods-133.html
继电器模块
http://www.alsrobot.cn/goods-137.html
Arduino电子积木学习套件
用户评价
暂时还没有任何用户评论