智能家居的基础传感器应用详细介绍

电子说

1.3w人已加入

描述

  引言

  近年来无线传感器和传感网络发展迅速,广泛应用于环境监控、制造业现场检测和控制、智能家居、智能交通、建筑健康检测以及健康护理等领域。随着电子、嵌入式单片机、智能无线传感器、网络以及通信技术的迅速发展,无线传感器节点才有实现低成本和低功耗的可能。

  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 结论

  智能家居中传感器还有很多,展示就做以上几个例子。大体上无外乎就是开关量和模拟量两类。欢迎大家讨论,关注。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分