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
Megjegyzés: Megjegyzéseket csak a blog tagjai írhatnak a blogba.