Elektronik
OKUDUĞUNUZ KONU
Arduino ile Akıllı Sunucu Odası – 2
0

Arduino ile Akıllı Sunucu Odası – 2

Yazar : Sumeyra Erol25 Mayıs 2018

Yapılan bu uygulamada bir akıllı sunucu odası bulunmaktadır. Bu odaya dışarıdan yaklaşan birinin tehlike oluşturmaması için belirli bir mesafeden sonra alarm devreye girmektedir. Odanın ışığı mobil uygulamanın bluetooth yardımıyla Arduino’ya bağlanması sonucu kontrol edilebilir hale gelmektedir. Aynı zamanda odanın sıcaklık ve nem değerleri ölçülerek aşırı sıcak veya soğuk havaya karşı gerekli önlemler alınır.

Kullanılan malzemeler:

  • 1- Arduino Uno
  • 2- Jumper Kablo
  • 3- 1W Direnç
  • 4- Kırmızı Led
  • 5- Bread Board x 2
  • 6- USB Kablosu
  • 7- Hc-sr04 Arduino Ultrasonic Mesafe Sensörü
  • 8- AM2302 DHT22 Dijital Sıcaklık ve Nem Sensörü
  • 9- Buzzer
  • 10- Hc06 Bluetooth Modül

Kullanılan Sensörlerin Görevleri:

Buzzer,verilen voltaja göre farklı ses sinyalleri sağlayan bir cihazdır. Enerjiyi bir yolla alır ve buna cevaben ses yayar. Elektromekanik, elektronik ve mekanik araçlar da ses üretmek için kullanılabilir.

Mesafe sensörü, kullanılarak karşısındaki nesneye olan mesafeyi hesaplayan bir input kaynağıdır. Sonar denilen sistem ses dalgalarını kullanarak cismin uzaklığını, boyutunu elde etmeyi sağlar. 2cm ile 400cm arası mesafe en sağlıklı okuma yaptığı aralıktır. Üzerinde bir alıcı ve verici modül vardır.

Hc06 Bluetooth Modül, slave modda çalışır. Çalışma mantığı, seri haberleşme esasına dayanır. Tx ucu verici ucudur, Rx ise alıcı ucudur. 3.3V ve 5V arasındaki gerilimlerde çalışır.  Ancak veri alışverişini 3.3V ile yapmaktadır.

LED, bir diyottur. Bilindiği üzere diyot, akımın yalnızca bir yönden geçmesini sağlayan iki bacaklı yarı-iletken bir devre elemanıdır. LED yapısında, p tipi ve n tipi olmak üzere 2 ayrı çeşit yarı iletken madde bulunmaktadır. Anottan katota elektrik akımı geçişi mümkündür.

Dijital sıcaklık ve nem sensörü, sinyal çıkışı veren gelişmiş bir algılayıcı birimdir. -40 ile 80 derece arasındaki sıcaklık değerini ölçebilir. DHT serisinin yüksek performanslı modellerindendir. Dijital çıkış vermektedir. Ölçüm Aralığı: Nem: 0-100%RH, Sıcaklık: -40 – 80 °C

Arduino devre şeması aşağıdaki gibidir.

Mobil uygulama internet üzerinde birçok siteden yapılabilir. Bu yazıda http://appinventor.mit.edu/explore/

sitesinden faydalanılmıştır. Uygulamanın arayüzü ve kodları aşağıdaki gibidir. Uyguulamayı telefonda kullanabilmek için ilk olarak telefonunun bluetooth ayarlarından modül bulunur. Default olarak verilen “0000” veya “1234” parolaları ile eşleşme sağlanır. Daha sonra online olarak yapılan uygulama telefona .apk dosyası olarak indirilir. Gerekli izinler önceden sağlanır. Daha sonra uygulama açılır. Önceden belirtilen listeleme butonu ile modül seçilerek telefona bağlanılır. Gerekli işlemler buradan halledilir.  Eğer telefon uygulamaya bağlandıysa uygulama üzerinde bağlantının sağlandığı görülür. Sonrasında uygulamada bulunan “ışığı yak” ve “ışığı söndür” butonları kullanılarak led yakılıp söndürülür.

Arduino Kaynak Kodları:


#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHTPIN, DHTTYPE);

 

int trigPin = 6; /* Sensorun trig pini Arduinonun 6 numaralı ayağına bağlandı */
int echoPin = 7;  /* Sensorun echo pini Arduinonun 7 numaralı ayağına bağlandı */
int buzzerPin=3; // Buzzer'in + bacağının bnağlı olduğu pin
long sure;
long uzaklik;
int data; //data değişkeninin türünü integer ayarlıyoruz.
int led=13; //led değişkeni 13 değerine atayıp türünü integer ayarlıyoruz.

 

void setup() {

Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();

//mesafe

pinMode(trigPin, OUTPUT); /* trig pini çıkış olarak ayarlandı */
pinMode(echoPin,INPUT); /* echo pini giriş olarak ayarlandı */
Serial.begin(9600);
pinMode(buzzerPin,OUTPUT); // Buzzer'in bağlı olduğu pini çıkış olarak ayarladık.
pinMode(led,OUTPUT); //13. pinimizi(led=13) çıkış yapıyoruz.
Serial.begin(9600);   //Seri iletişimi başlatır

}

void loop() {

//mesafe
digitalWrite(trigPin, LOW); /* sensör pasif hale getirildi */
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); /* Sensore ses dalgasının üretmesi için emir verildi */
delayMicroseconds(10);
digitalWrite(trigPin, LOW);  /* Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi */
sure = pulseIn(echoPin, HIGH); /* ses dalgasının geri dönmesi için geçen süre ölçülüyor */
uzaklik= sure /29.1/2; /* ölçülen sure uzaklığa çevriliyor */

if(uzaklik > 200)
uzaklik = 200;
if(uzaklik<10){
Serial.println("Sisteme çok yakın!!!");
digitalWrite(buzzerPin,HIGH); //Buzzer'a güç göndererek ses çıkarmasını sağladık.
delay(1000);  // 1 saniye boyunca çalmasını söyledik.
digitalWrite(buzzerPin,LOW); //Buzzerın gücünü keserek susmasını sağladık sağladık.
delay(1000);  // 1 saniye boyunca susmasını söyledik.

}

Serial.print("Uzaklik ");
Serial.print(uzaklik); /* hesaplanan uzaklık bilgisayara aktarılıyor */
Serial.println(" CM olarak olculmustur.");
delay(500);

delay(2000);

float h = dht.readHumidity();
// Sıcaklığı Celsius (the default) olarak okuma
float t = dht.readTemperature();
// Sıcaklığı Fahrenheit olarak okuma(isFahrenheit = true)
float f = dht.readTemperature(true);

if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}

// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);

Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
//bluetooth

if(Serial.available()) // Eğer Bluetooth bağlantısı varsa kodları çalıştırır.
{

int data = Serial.read(); //Gelen değeri okuyoruz. ve data değişkenine aktarıyoruz.
delay(100);
if(data=='1')  //Eğer Android'ten gelen değer 1 ise
digitalWrite(led,1); //digitalWrite ile 13. pini 1 yani (HIGH) yaparak Ledimizi yakıyoruz.
if(data=='0')  //Eğer Android'ten gelen değr  2 ise
digitalWrite(led,0); //digitalWrite ile 13. pini 0 yani (LOW) yaparak Ledimizi söndürüyoruz.
delay(100);
}

}

 

Önceki yazım: http://www.projehocam.com/bad-rabbit-virusu-hakkinda-bilmeniz-gerekenler/

SİZCE NASIL OLMUŞ?
Beğendim
64%
İlginç
5%
Eh İşte
0%
Anlamadım
9%
Kötü
5%
Berbat
18%
YAZAR HAKKINDA
Sumeyra Erol
Erciyes Üniversitesi Bilgisayar Mühendisliği
YORUMLAR

YORUM YAP