arduino projeleri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

DHT11 VE NOKIA 5110 EKRAN UYGULAMASI 


Merhaba arkadaşlar.Bugün elimden geldigince arduıno ile DHT11 sıcaklık ve nem sensörünü tanıtıp bunu 5110 ekranı ile kullanarak basit bir uygulama yapacagız.Öncelikle DHT11 ve 5110 ekranı biraz tanıyalım.


DHT11:Nem degerini ±%5  hassasiyetle ve sıcaklık degerini ±2°C  ölçen bir devre elemanıdır.Bu sensörü kullanmak için sadece 1 adet 10k dirence ihtiyaç duyarız.

1.bacagı :+5V
2.bacagı: arduıno da herhangi bir pine ve 10k lık direnç ile +5v baglıyoruz
3.bacagı: boş bırakıyoruz
4.bacagı:GND yanı topraga baglıyoruz.








NOKIA 5110 EKRANI:


1.RST:pin 11
2.CE: pin 12
3.DC: pin 10
4.Din: pin 9
5.Clc: pin 8
6.Vcc: 3.3 V
7.BL: pin 7
8.Gnd: Toprak

Not:Yazılım kısmında bu pinler degiştirilebilir.






5110 ekranı 16*2 lcd den daha kullanışlıdır.Şöyle açıklayayım 5110 ekranı ile resim çizimi yaparken lcd ile bunu yapmak zordur.Lcd ile yapmak istenirse bunun için graphics lcd ye ihtiyaç vardır.

Pinler arasında bilmemiz gereken tek yer bence BL pinidir.5110 ekranında yan tarafta 4 adet mavi ışık var.Bunlar sayesınde ekranı aydınlatmaya yarar.



Gelelim Kod Kısmına :


#include <dht11.h>  //Dht11 kutuphanesı
#include <LCD5110_Basic.h> //5110 kutuphanesı
LCD5110 lcd(8,9,10,11,12);   //5110 baglantı kısımları
extern uint8_t SmallFont[];  //Küçük boy yazı için
extern uint8_t MediumNumbers[]; //Orta boy rakam için
extern uint8_t BigNumbers[];  // Büyük boy rakam için
dht11 DHT11; //DHT11 adı altında degişken tanımladık
#define DHT11PIN 2 //2 nolu pin DHT11PIN ismini verdik
void setup() {

lcd.InitLCD();  //5110 ekranını hazırladık.Bu kod olmazsa olmaz kodlarımızdan bir tanesıdır.
//Ve her 5110 ekranı ugularken yazılmak zorundadır
lcd.setContrast(60); //5110 ekranı kontrastını ayarladık
digitalWrite(7,HIGH); //7 nolu pini +5 v ver
}

void loop() {

int veri=DHT11.read(DHT11PIN); //DHT11PIN deki veri degerinin oku
float x=DHT11.humidity; // Sensorden nem degerını oku ve x degişkenıne ata
float y=DHT11.temperature;//Sensorden sıcaklık degerını oku ve y degişkenıne at
lcd.setFont(SmallFont);//5110 ekranına küçük harf yazılacagını belirten kod
lcd.print("NEM",60,0);//Yatay 60,dikey 0 yerine NEM yaz
lcd.setFont(MediumNumbers);//Orta boy rakam yazılacagını belirten kod
lcd.printNumI(x,RIGHT,10);//x degişkenını dikey 10 ve saga dayalı olarak yaz
lcd.setFont(SmallFont);//5110 ekranına küçük harf yazılacagını belirten kod
lcd.print("SICAKLIK",0,0);//Yatay 0,dikey 0 yerine SICAKLIK yaz
lcd.setFont(MediumNumbers);//Orta boy rakam yazılacagını belirten kod
lcd.printNumI(y,LEFT,10);//x degişkenını dikey 10 ve sola dayalı olarak yaz


delay(3000);
}

Arduino Tanıtım

Arduino Nedir?



Bildiğiniz üzere İtalyan elektronikciler'in 
ürettiği Arduino elektronik dünyasına
 farklı bir tat getirdi.

Elektronik sektöründe büyük 
yankı getiren bu elektronik
 kart şimdiden elektronik ile ilgilenenlerin ve hobi tutkunlarının ilgisini çekmişe benziyor.







Peki Nedir Bu Arduino ?

Arduino; Bir giriş çıkış kartı ve Processing/Wiring dilinin
bir uygulamasını içeren geliştirme platformudur.Açık kaynak
kodlu olup,orta düzey bir C programlama dili ile programlanabilir
Atmega çipine sahiptir.Arduino ile interaktif projeler
yapmak kolay ve bir o kadar da eğlencelidir.
Arduino'nun kullanım amaçlarına göre çeşitleri vardır.
Örneğin;breakboard üzerinde kullanmak istiyorsanız
'Arduino Nano',biraz daha ileri seviye kullanıcılar için
'Arduino Pro' ,hobi amaçlı projeleriniz için
'Arduino Uno' tercih edilebilir.Bunların yanısıra


Arduino'nun daha bir çok çeşiti mevcuttur.

Arduino Nasıl Çalışır?

Arduino'nun çalışabilmesi için diğer mikrodenetleyiciler 
gibi uygun çalışma ortamını sağlamak gerekir.Bu koşullar için gerekli
 olan malzemeler şunlardır;

1- Arduino Kartınız (UNO, PRO Mini, Mega, Leonardo.. gibi)
2- Standart USB yazıcı kablosu
3- https://www.arduino.cc/ sitesinde açık kaynak olarak yaymlanan
 Arduino Geliştirme Programı
4- Bu özelliklere uyum sağlayacak bir bilgisayar.


Arduino Kurulumu

İndirmiş olduğunuz Arduino IDM programını
bilgisayarınıza kurdukdan 
sonra standart USB yazıcı kablosu ile
bilgisayarınıza bağlayın.
USB kablosunu bilgisayarınıza bağladıkdan
sonra bilgisayarda 
sürücü dosyalarını manuel olarak seçin
driver dosyaları 
otomatik olarak yüklenecektir.

Eğer bilgisayarınız Arduinoyu bilinmeyen
agıt olarak görüyorsa 
'Windows Aygıt Yöneticisi' nde
okuduğunuz "COM" numarası 
ile Arduino IDM geliştirme
ortamında ki "COM" 
numarasının aynı olduguna dikkat etmeliyiz.




Örneğin Windows Aygıt Yöneticisinde 
görüldüğü gibi COM5 
yazıyor ise Arduino IDM programında da 
COM5 seçili olmalıdır.

Arduino Geliştirme Ortamında COM 
değişikliği yapmak için ; "ARAÇLAR"menüsünden
 PORT ayarlarını değiştirebiliriz.







Arduino ile Yapabileceğimiz Bazı Projeler


Mesafe Park Sensörü Projesi

Ultrasonik Mesafe Park Sensörünü
geliştirme ortamı olan Arduino'da
kullandık.Bu proje otomotiv
sektöründe kullanılacağı gibi
günlük hayat da kısa mesafeleri
 ölçmek içinde kullanılabilir




Robot Kol Projesi

Arduino Robot Kol Projemiz
 3D printer teknolojisine 
dayanmaktadır. Çok esnek 
ve hızlı programlamaya 
uygundur. Arduino programlama 
konusunda bildiğiniz birçok yöntemin 
uygulama alanı olarak kullanabileceğiniz 
çok fonksiyonlu bir robottur.






Engel Algılayan Robot
Arduino Uno R3,
Adafruit Motor Shield
 ve Pololu QTR-8RC 
line sensör kullanarak 
yapılan Çizgi Takip Eden
 Robot yapabilirsiniz










Çizgi İzleyen Robot Projesi


Arduino Uno R3,
Adafruit Motor Shield ve 
Pololu QTR-8RC 
line sensör kullanarak 
yapılan Çizgi Takip 
Eden Robot yapabilirsniz.









Rfid yani radyo dalgaları ile kimlikleme yöntemi günlük hayatımızda belkide farkında olmadan sıkça kullandığımız bir yöntem.



Bir alışveriş merkezine gittiğinizde ürünün üzerindeki tag yani rfid etiket çıkarılmadan mağazadan çıkmaya çalıştığınızda ne olur :) Alarmlar ötmeye başlar bunun nedeni rfid etiketinin çıkışta okunarak ücretinin ödenmediği bilgisini göndermesidir.

Gelelim inceleyeceğimiz projeye.Projede 125khz rfid etiketler kullanılmış.Yine bunun yanında rfid okuyucu ve 1 adet arduino bulunmakta.

Rfid okuyucu rfid taglerden gelen verileri Rx ve Tx pinleri üzerinden arduino tarafına çekmemize olanak sağlayacak.







Gelelim devremizdeki mantığa.Sistem önceden arduino kodları içerisinde tanımlamış olduğumuz rfid kartlarına izin verecek ve tanımlanmamış olan rfid kartlarına ise red yanıtı verecek.Sistem tasarlanırken software serial yani sanal rx tx pinleri tanımlanmış.Bunun nedeni eğer ki siz arduinonun fiziksel Rx ve Tx pinlerini kullanırsanız, her program güncellemesi sırasında rfid okuyucunuzun rx ve tx bağlantılarını sökmek zorunda kalırsınız aksi halde arduino üzerinde bir güncelleme gerçekleştiremezsiniz.

Gelelim kodları açıklamaya

#include <SoftwareSerial.h> // sofware serial kutuphanesi
SoftwareSerial RFID(2, 3); // RX ve TX pinlerimiz

int data1 = 0;
int ok = -1;
int yes = 13;//kabul kodumuz
int no = 12;//red kodumuz

//kabul edilecek olan 2 adet rfid tag tanımlanmış
int tag1[14] = {2,52,48,48,48,56,54,66,49,52,70,51,56,3};
int tag2[14] = {2,52,48,48,48,56,54,67,54,54,66,54,66,3};
int newtag[14] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //okunacak yeni rfid tag

void setup()
{
  RFID.begin(9600);    //software serial başladı
  Serial.begin(9600);  // seri ekran başlatıldı
  pinMode(yes, OUTPUT); // bilgi ledleri ayarlandı
  pinMode(no, OUTPUT);
}

boolean comparetag(int aa[14], int bb[14])
{
// 14 haneli rakamlardan oluşan tagleri karşılaştırma fonksiyonu
//fonksiyon kayıtlı taglarle ile okunan tagi karşılaşırıyor
  boolean ff = false; // karşılaştırma sonucu önce false olarak belirleniyor
  int fg = 0;
  for (int cc = 0 ; cc < 14 ; cc++)
  {
//for içerisinde 2 kartında her bir hanesi karşılaştırılıyor
    if (aa[cc] == bb[cc])
    {
      fg++;
    }
  }
  if (fg == 14)
  {
    ff = true;
 //tüm haneler eşit ise karşılaştırma sonucu true olarak dönüyor
  }
  return ff;
// değilse zaten false olarak belirlemiştik onu döndürüyoruz
}

void checkmytags()
{
// okunan yeni tagleri kayıtlı 2 tagimiz ile karşılaştırıyoruz
// okuan tag bizimkilerdense ok değişkenini 1 artırıyoruz
  ok = 0;
  if (comparetag(newtag, tag1) == true)
  {
    ok++;
  }
  if (comparetag(newtag, tag2) == true)
  {
    ok++;
  }
}

void readTags()
{
// tag okuma fonksiyonumuz
  ok = -1;
// okuyamadığımız zaman karşılaştırma değişkenimiz -1
//-1 bizim hata kodumuz
  if (RFID.available() > 0) //rfid okuyucudan veri geliyorsa
  {
 
    delay(100); // seri  olarak haberleşmede 100ms gecikme uyguluyoruz

    for (int z = 0 ; z < 14 ; z++) // 14 haneli tag numarasını alıyoruz
    {
      data1 = RFID.read();
      newtag[z] = data1;
    }
    RFID.flush(); // birden fazla okumayı engellemek adına
//frid registerını bosaltıyoruz

 
    checkmytags();// kayıtlı taglerle karsılastırma fonsiyonuna gonderiyoruz
  }

  if (ok > 0) // kayıtlı taglerle eşitlik var ise
  {
    Serial.println("Accepted");
// seri ekrana kabul edildi yazdırdık
    digitalWrite(yes, HIGH);
//kabul ledini yaktık
    delay(1000);
//1 sn bekledik
    digitalWrite(yes, LOW);
//kabul ledini söndürdük

    ok = -1;
//eşleşmeyi sıfırladık
  }
  else if (ok == 0)
// veri okuduk ama bizim kayıltlılarla eşleşmiyorsa
  {
    Serial.println("Rejected");
//seri ekrana reddedildi yazdık
    digitalWrite(no, HIGH);
//reddedildi ledini yaktık
    delay(1000);
//1 sn bekledik
    digitalWrite(no, LOW);
//reddedildi ledini söndürdük

    ok = -1;
//karşılaştırma değişkeninin sıfırladık
  }
}

void loop()
{
// sonsuz döngümüz içerisinde sürekli olarak okuma fonsiyonunu çağırıyoruz
  readTags();
}

Özetlemek gerekirse Arduino ile güzel bir kapı geçiş sistemi olan bu projede,ledleri kullanabileceğiniz gibi bir röle kartı vasıtası ile elektronik kapı kilitlerini de kontrol edebilirsiniz.Daha büyük bir rfid okuma sistemi ile birlike ürünlerin kontrolünü yapabilir, bir veritabanı oluşturarak ürün takip sistemi oluşturabilirsiniz.
ELEKTRO BLOGGER A HOŞGELDINIZ

ARAMA YAP

EN COK OKUNANLAR

- Copyright © ELEKTRO-BLOGGER Blogger