2016. július 15., péntek

Arduino Uno - Szenzor projekt

A Raspberry Pi mini számítógépem mellé vettem pár hónapja egy Arduino-t és néhány szenzort is az elektronikai kísérletezéshez. Az Aliexpressz-ről rendeltem meg a cuccokat, így kb. 4000Ft-ért kaptam egy Arduino UNO klónt USB kábellel, egy PIR mozgásérzékelőt, egy DHT-22 nagy pontosságú hőmérséklet és páraszenzort valamint egy HCR-SR04 ultrahangos távolságmérőt. A célom az volt, hogy a szenzorok által begyűjtött mérési eredmények a fejlesztő eszköz konzolján megjelenjenek.


Az alábbi programot készítettem el, majd feltöltöttem az Arduino-ra. A kódban definiáltam a szenzorok lábait, amelyekről a mérési eredmények beolvashatók, majd a Serial.print() hívással egyszerűen kiírattam ezeket a konzolra.
#include "DHT.h"

#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
 
int triggerPin = 11;    
int echoPin = 12;   
long durationMicroSec,cm;

int pir=4;

void setup() {
  Serial.begin (9600);
  
  //HCSR04
  pinMode(triggerPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  //DHT22
  dht.begin(); 
    
  //PIR
  pinMode(pir, INPUT); 
}
 
void loop()
{  
  //HCSR04
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(5);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);

  durationMicroSec = pulseIn(echoPin, HIGH);
  cm = (durationMicroSec*0.000001*34300)/2.0; //s=v*t

  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
    
  //DHT22
  delay(2000);
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  Serial.print("Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: "); 
  Serial.print(t);
  Serial.print(" *C ");
  Serial.println();
  
  //PIR
  if(digitalRead(pir)){      
      Serial.print("There is motion");
  }
  else{
      Serial.print("There is no motion");
  }
  Serial.println();  
}
Az Ardunio használatával, pár ezer forintból akár egy komplex otthoni biztonsági rendszert is kialakíthatunk. Ha lecsupaszítjuk az Ardunino-t a felesleges elektronikai részektől, akkor egy akkumulátorról akár több hónapig is képes a működésre. A mért jellemzőket pl. rádió frekvenciás csatornán (szintén pár 100Ft-os áramkör) egy Raspberry Pi-nek is továbbíthatjuk, amivel feldolgozhatjuk és eltárolhatjuk a mért adatokat. A lehetőségeknek nem a pénztárcánk, hanem csak a képzeletünk szabhat határt! :)

Nincsenek megjegyzések:

Megjegyzés küldése