电子说
引言
近年来无线传感器和传感网络发展迅速,广泛应用于环境监控、制造业现场检测和控制、智能家居、智能交通、建筑健康检测以及健康护理等领域。随着电子、嵌入式单片机、智能无线传感器、网络以及通信技术的迅速发展,无线传感器节点才有实现低成本和低功耗的可能。
1 传感器简介
传感器就是用来测量物理、化学、生物或者其他参数的元器件、或者是测量系统的一部分。通常传感器能够提供一个等价的电压或者电流形式的信号,这个信号可以用以检测、处理、存储和转发。传感器技术对于现代产业产生了巨大的影响,在市场上有很多传感器。传感器的测量对象和物理转换原理。
2 智能家居概述
智能家居(Smart home)是以住宅为平台,利用综合布线技术、网络通信技术、 安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。
智能家居
所谓的智能家居,就是一种智能化的家居环境,即以住宅为平台,综合利用计算机技术、传感器技术、嵌入式技术及其物联网技术将家庭生活中相关的设施进行智能化,实现对家居环境的监测,管理、远近程控制,让家居生活更加舒适,同时提高家居环境的了安全性,也兼顾了节能环保的低碳理念。
3 智能家居基础传感器
1)烟雾传感器
MQ-2烟雾传感器,MQ-2应用: 可用于家庭和工厂的气体泄漏监测装置, 适宜于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等的探测。
MQ-2烟雾传感器
Arduino程序:
int LED=2;
void setup() {
Serial.begin(9600);
pinMode(LED,OUTPUT);
digitalWrite(LED, HIGH);
}
void loop() {
float vol;
float value;
int sensorValue = analogRead(A0);
vol = (float)sensorValue/1024*5.0;
value = 10000-((5-vol)*9700/5);
Serial.print(“gas = ”);
Serial.println(value);
Serial.println(“ ppm”);
if( value 》 2000){
digitalWrite(LED, LOW);
} else {
digitalWrite(LED, HIGH);
}
delay(5000);
}
2)粉尘传感器
夏普光学灰尘传感器(GP2Y1010AU0F)在检测非常细的颗粒,如香烟烟雾,是特别有效的,并且是常用的空气净化器系统。该装置中,一个红外发光二极管和光电晶体管,对角布置成允许其检测到在空气中的灰尘反射光。该传感器具有极低的电流消耗(最大20mA,11毫安典型的),可以搭载高达7VDC的传感器。输出的是一个模拟电压正比于所测得的粉尘浓度,敏感性为0.5V/0.1mg/m3。可以检测AQI的值。
Arduino程序:
int dustPin=0;
float dustVal=0;
int ledPower=2;
int delayTime=280;
int delayTime2=40;
float offTime=9680;
void setup(){
Serial.begin(9600);
pinMode(ledPower,OUTPUT);
pinMode(dustPin, INPUT);
}
void loop(){
// ledPower is any digital pin on the arduino connected to Pin 3 on the sensor
digitalWrite(ledPower,LOW);
delayMicroseconds(delayTime);
dustVal=analogRead(dustPin);
delayMicroseconds(delayTime2);
digitalWrite(ledPower,HIGH);
delayMicroseconds(offTime);
delay(1000);
if (dustVal 》 36.455){
Serial.println((float(dustVal/1024)-0.0356)*120000*0.035);
}
}
测试得到的数据和空气质量对照:
3000 + = 很差
1050-3000 = 差
300-1050 = 一般
150-300 = 好
75-150 = 很好
0-75 = 非常好
3)红外发射和接收模块
这次要介绍的是红外发射和接收模块,其实他们现在在我们的日常生活中扮演者重要的角色,现在很多的家用电器上都用到了这种装置,比如空调、电视、DVD 等等,就是基于它是无线遥感,而且还可以较远距离控制,使用起来非常的方便。
红外发射和接收模块
Arduino程序:
主发射部分代码:
默认在3引脚
#include 《IRremote.h》
IRsend irsend;
void setup()
{
Serial.begin(9600);
}
void loop() {
for (int i = 0; i 《 50; i++) {
irsend.sendSony(0xa90, 12); // Sony TV power code
delay(40);
} }
从接收部分代码
#include 《IRremote.h》
int RECV_PIN = 11; //define input pin on Arduino
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}}
4)温湿度传感器
DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度+-5%RH,温度+-2℃,量程湿度20-90%RH, 温度0~50℃。
DHT11
Arduino程序:
#include 《dht.h》
dht DHT;
#define DHT11_PIN 7//put the sensor in the digital pin 7
void setup(){
Serial.begin(9600);
}
void dht11()
{
int chk = DHT.read11(DHT11_PIN);
switch (chk)
{
case 0:
Serial.println(“Ok”);
delay(1000);
break;
case -1:
Serial.println(“Checksum error”);
delay(1000);
break;
case -2:
Serial.println(“Time out error”);
delay(1000);
break;
default:
Serial.println(“Unknown error”);
delay(1000);
break;
}
Serial.print(“Humidity:”);
Serial.print((float)DHT.humidity,1);
Serial.print(“%”);
delay(1000);
Serial.print(“Temp:”);
Serial.print((float)DHT.temperature,1);
Serial.print(“C”);
delay(1000);
}
void loop(){
dht11();
}
5)霍尔磁力传感器模块(可以做门窗户防盗)
霍尔磁力传感器
Arduino程序:
int Led=13;//定义LED 接口
int SENSOR=3;//定义霍尔磁力传感器接口
int val;//定义数字变量val
void setup()
{
Serial.begin(9600);
pinMode(Led,OUTPUT);//定义LED 为输出接口
pinMode(SENSOR,INPUT);//定义霍尔磁力传感器为输出接口
}
void loop()
{
val=digitalRead(SENSOR);//将数字接口3 的值读取赋给val
if(val==HIGH) //当震动传感器检测有信号时,LED 亮
{
digitalWrite(Led, HIGH);
Serial.println(“open the door”);
delay(5000);
}
else
{
digitalWrite(Led, LOW);
Serial.println(“close the door”);
delay(5000);
}
}
4 结论
智能家居中传感器还有很多,展示就做以上几个例子。大体上无外乎就是开关量和模拟量两类。欢迎大家讨论,关注。
全部0条评论
快来发表一下你的评论吧 !