Arduino ve RFID ile Kart Okuyucu Güvenlik Sistemi Geliştirme

Arduino ve RFID ile Kart Okuyucu Güvenlik Sistemi Geliştirme

Arduino ve RFID ile Kart Okuyucu Güvenlik Sistemi Geliştirme

Merhaba sevgili Arduino severler!

Bu yazımızda, Arduino kullanarak basit ama etkili bir RFID (Radyo Frekansıyla Tanımlama) kart okuyucu güvenlik sistemi geliştireceğiz. Bu proje hem Arduino'ya yeni başlayanlar için harika bir başlangıç noktası olacak, hem de daha deneyimli kullanıcılar için temel bir güvenlik sistemi prototipi oluşturma imkanı sunacak. Projemizde, yetkilendirilmiş kart okunduğunda bir LED'i yakacağız ve yetkisiz bir kart okunduğunda ise bir buzzer ile uyarı vereceğiz. Hazırsanız, haydi başlayalım!

Gerekli Malzemeler

İşe başlamadan önce ihtiyacımız olan malzemeleri gözden geçirelim:

  • Arduino Uno (veya benzeri bir Arduino geliştirme kartı)
  • RFID Okuyucu Modülü (RC522 yaygın olarak kullanılır)
  • RFID Kart veya Etiket
  • LED
  • Buzzer
  • 220 Ohm Direnç (LED için)
  • Jumper Kablolar
  • Breadboard (isteğe bağlı)

Bağlantılar

Şimdi de komponentlerimizi Arduino'ya nasıl bağlayacağımıza bakalım. Bu adımları dikkatlice takip edin:

  1. RFID Okuyucu Modülü Bağlantıları:
    • RST pin -> Arduino Dijital Pin 9
    • SDA pin -> Arduino Dijital Pin 10
    • MOSI pin -> Arduino Dijital Pin 11
    • MISO pin -> Arduino Dijital Pin 12
    • SCK pin -> Arduino Dijital Pin 13
    • VCC pin -> Arduino 3.3V
    • GND pin -> Arduino GND
  2. LED Bağlantısı:
    • LED'in uzun bacağı (anot) -> 220 Ohm direnç -> Arduino Dijital Pin 8
    • LED'in kısa bacağı (katot) -> Arduino GND
  3. Buzzer Bağlantısı:
    • Buzzer'ın pozitif (+) bacağı -> Arduino Dijital Pin 7
    • Buzzer'ın negatif (-) bacağı -> Arduino GND

Arduino Kodu

Bağlantıları tamamladıktan sonra, Arduino'muza yükleyeceğimiz kodu inceleyelim:


#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN   9     // RFID modülünün RST pini
#define SDA_PIN   10    // RFID modülünün SDA pini
#define LED_PIN    8     // LED'in bağlı olduğu pin
#define BUZZER_PIN 7    // Buzzer'ın bağlı olduğu pin

MFRC522 mfrc522(SDA_PIN, RST_PIN); // MFRC522 sınıfının oluşturulması

// Yetkili kartın UID'si (Kartınızı okutup bu değeri öğrenmelisiniz)
byte validCard[4] = {0xDE, 0xAD, 0xBE, 0xEF}; // Örnek UID, kendi kartınızın UID'si ile değiştirin

void setup() {
  Serial.begin(9600);   // Seri iletişimi başlat
  SPI.begin();      // SPI iletişimi başlat
  mfrc522.PCD_Init();   // MFRC522 başlat
  pinMode(LED_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  Serial.println("Kart Okuyucu Hazir!");
}

void loop() {
  // Yeni kart algılandı mı kontrol et
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }

  // Kart okundu mu kontrol et
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  Serial.print("Kart UID: ");
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
  }
  Serial.println();

  // Kart UID'sini yetkili kart ile karşılaştır
  if (compareUID(mfrc522.uid.uidByte, validCard)) {
    Serial.println("Yetkili Kart!");
    digitalWrite(LED_PIN, HIGH); // LED'i yak
    noTone(BUZZER_PIN);          // Buzzer'ı sustur
    delay(2000);
    digitalWrite(LED_PIN, LOW);  // LED'i söndür
  } else {
    Serial.println("Yetkisiz Kart!");
    tone(BUZZER_PIN, 1000);      // Buzzer'ı çal
    delay(1000);
    noTone(BUZZER_PIN);          // Buzzer'ı sustur
  }

  // Kart okuma işlemini durdur
  mfrc522.PICC_HaltA();
  mfrc522.PCD_StopCrypto1();
}

// Kart UID'lerini karşılaştırma fonksiyonu
bool compareUID(byte cardUID[], byte validUID[]) {
  for (byte i = 0; i < 4; i++) {
    if (cardUID[i] != validUID[i]) {
      return false;
    }
  }
  return true;
}

Açıklamalar:

  • Yukarıdaki kodu Arduino IDE'sine kopyalayın.
  • validCard dizisindeki örnek UID değerini, kullanmak istediğiniz yetkili kartın UID'si ile değiştirin. Kartınızın UID'sini öğrenmek için, yukarıdaki kodu UID karşılaştırma kısmını yorum satırı yaparak çalıştırıp seri port ekranından okuyabilirsiniz.
  • Arduino'nuzu bilgisayarınıza bağlayın ve doğru portu seçtiğinizden emin olun.
  • Kodu Arduino'nuza yükleyin.

Çalışma Mantığı

Kodumuz temel olarak şu adımları izler:

  1. RFID okuyucu başlatılır ve kart aranır.
  2. Eğer bir kart algılanırsa, kartın UID'si okunur.
  3. Okunan UID, önceden tanımlanmış yetkili kart UID'si ile karşılaştırılır.
  4. Eğer UID'ler eşleşirse, LED yakılır (yetkili kart).
  5. Eğer UID'ler eşleşmezse, buzzer çaldırılır (yetkisiz kart).

Sonuç

Tebrikler! Artık basit bir RFID kart okuyucu güvenlik sistemine sahipsiniz. Bu projeyi daha da geliştirmek için farklı özellikler ekleyebilirsiniz. Örneğin, yetkisiz kart okunduğunda bir log dosyası oluşturabilir, bir servo motor kullanarak kapı kilidi kontrolü yapabilir veya bir LCD ekran ile mesajlar gösterebilirsiniz.

Umarım bu rehber, Arduino ve RFID teknolojileriyle tanışmanız için faydalı olmuştur. Herhangi bir sorunuz olursa, yorumlar kısmından bana ulaşabilirsiniz. Bir sonraki projede görüşmek üzere!

Etiketler: Arduino, RFID, RC522, Güvenlik Sistemi, Kart Okuyucu, Proje, Elektronik, Kodlama

```

0 yorum:

Arduino ile Park Sensörü Yapımı: Buzzer ve Mesafe Sensörü Kullanımı

Arduino ile Park Sensörü Yapımı: Buzzer ve Mesafe Sensörü Kullanımı

Arduino ile Park Sensörü Yapımı: Buzzer ve Mesafe Sensörü Kullanımı

Merhaba sevgili Arduino meraklıları!

Bu yazımızda, günlük hayatta oldukça işimize yarayan bir projeye, Arduino ile park sensörü yapımına odaklanacağız. Özellikle yeni sürücüler veya park etme konusunda hassas olanlar için bu proje, hem eğlenceli bir öğrenme deneyimi sunacak, hem de pratik bir çözüm olacaktır. Projemizde, HC-SR04 ultrasonik mesafe sensörü ve bir buzzer (sesli uyarıcı) kullanarak, aracımızın arkasındaki engelleri tespit edip, mesafeye göre farklı sesli uyarılar vermesini sağlayacağız.

Gerekli Malzemeler

Bu projeyi hayata geçirmek için ihtiyacımız olan malzemeler oldukça basit ve kolayca temin edilebilir:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • HC-SR04 Ultrasonik Mesafe Sensörü
  • Buzzer (Aktif veya Pasif fark etmez, aktif buzzer kullanımı daha basittir)
  • Jumper kablolar (erkek-dişi ve erkek-erkek)
  • Breadboard (isteğe bağlı, ancak önerilir)

Devre Şeması ve Bağlantılar

Şimdi de malzemelerimizi nasıl bağlayacağımıza geçelim. Bağlantıları dikkatlice yaparak herhangi bir hatanın önüne geçebiliriz:

  • HC-SR04 Mesafe Sensörü:
    • VCC pini -> Arduino 5V pinine
    • GND pini -> Arduino GND pinine
    • Trig pini -> Arduino Dijital Pin 9'a
    • Echo pini -> Arduino Dijital Pin 10'a
  • Buzzer:
    • (+) bacağı -> Arduino Dijital Pin 8'e (direkt olarak veya bir dirençle)
    • (-) bacağı -> Arduino GND pinine

Eğer aktif buzzer kullanıyorsanız, genellikle bir direnç kullanmanıza gerek kalmaz. Ancak pasif buzzer kullanıyorsanız, 220Ω - 1kΩ arasında bir direnç kullanmanız buzzer'ınızın zarar görmesini engelleyebilir.

Arduino Kodu

Gelelim projemizin beyni olan Arduino koduna. Aşağıdaki kodu Arduino IDE'sine kopyalayıp, Arduino kartınıza yükleyebilirsiniz:


 // Tanımlamalar
 const int trigPin = 9;
 const int echoPin = 10;
 const int buzzerPin = 8;

 // Değişkenler
 long sure;
 int mesafe;

 void setup() {
  // Pinleri tanımla
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzerPin, OUTPUT);

  // Seri iletişimi başlat (isteğe bağlı, değerleri görmek için)
  Serial.begin(9600);
 }

 void loop() {
  // Mesafe ölçümü
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  sure = pulseIn(echoPin, HIGH);
  mesafe = sure * 0.034 / 2;

  // Mesafe kontrolü ve buzzer uyarıları
  if (mesafe <= 30) {
   tone(buzzerPin, 1000); // Yüksek ton
   delay(100);
  } else if (mesafe <= 60) {
   tone(buzzerPin, 500); // Orta ton
   delay(200);
  } else if (mesafe <= 100) {
   tone(buzzerPin, 250); // Düşük ton
   delay(300);
  } else {
   noTone(buzzerPin); // Ses yok
  }

  // Seri porttan mesafeyi yazdır (isteğe bağlı)
  Serial.print("Mesafe: ");
  Serial.print(mesafe);
  Serial.println(" cm");

  delay(50); // Gecikme
 }
 

Kodun Açıklaması

  • Tanımlamalar: Hangi pinlerin hangi bileşenlere bağlı olduğunu tanımlıyoruz.
  • Mesafe Ölçümü: Mesafe sensörünü kullanarak mesafeyi ölçüyoruz.
  • Mesafe Kontrolü ve Buzzer Uyarıları: Ölçülen mesafeye göre buzzer'dan farklı tonlarda sesler çıkarıyoruz. Mesafe azaldıkça, sesin frekansını artırıyoruz.
  • Seri Porttan Mesafeyi Yazdır: (İsteğe bağlı) Ölçülen mesafeyi seri port ekranında görüntüleyerek, sensörün doğru çalışıp çalışmadığını kontrol edebiliriz.

Projenin Çalışması

Kodu Arduino'ya yükledikten sonra, mesafe sensörünü bir engele doğru tuttuğunuzda, sensörün mesafeyi ölçüp buzzer'dan uygun tonlarda ses çıkardığını göreceksiniz. Mesafe azaldıkça sesin şiddeti ve frekansı artacaktır.

İpuçları ve Geliştirmeler

  • Mesafe sensörünü aracınızın arkasına monte ederek, gerçek bir park sensörü haline getirebilirsiniz.
  • Buzzer yerine farklı sesler çıkaran bir hoparlör kullanabilirsiniz.
  • LCD ekran kullanarak mesafeyi sayısal olarak da görüntüleyebilirsiniz.
  • Mesafe aralıklarını ve ses tonlarını kendi zevkinize göre ayarlayabilirsiniz.

Sonuç

Bu yazımızda, Arduino ile basit bir park sensörü yapımını adım adım inceledik. Umarım bu proje, Arduino dünyasına giriş yapmanız ve elektronik projeler geliştirmeniz için size ilham verir. Unutmayın, elektronik projeler sadece bilgi birikimi değil, aynı zamanda yaratıcılığınızı da geliştirmenize yardımcı olur.

Herkese iyi kodlamalar!

Etiketler: Arduino, Park Sensörü, HC-SR04, Buzzer, Mesafe Sensörü, Elektronik Proje, DIY, Kendin Yap, Arduino Projeleri, Arduino Dersleri

```

0 yorum:

LCD Ekranlı Mini Oyun: Tahmin Etmece (Buton Kontrollü)

LCD Ekranlı Mini Oyun: Tahmin Etmece (Buton Kontrollü)

LCD Ekranlı Mini Oyun: Tahmin Etmece (Buton Kontrollü)

Merhaba sevgili Arduino severler!

Bugünkü projemizde, hem eğlenceli hem de öğretici bir uygulamaya imza atıyoruz: LCD ekranlı, buton kontrollü bir tahmin etmece oyunu! Bu proje, Arduino'nun basitliğini, LCD ekranların görsel gücünü ve butonların interaktifliğini bir araya getirerek keyifli bir deneyim sunacak. Hem elektronik bilginizi pekiştirecek hem de programlama becerilerinizi geliştireceksiniz. Hazırsanız, haydi başlayalım!

Projenin Amacı

Projemizin amacı, Arduino kullanarak rastgele bir sayı üretmek ve kullanıcının bu sayıyı butonlar aracılığıyla tahmin etmesini sağlamak. LCD ekran, kullanıcıya gerekli bilgileri (tahmin, ipucu, sonuç vb.) göstermek için kullanılacak. Böylece hem temel Arduino kavramlarını öğrenecek hem de basit bir oyun geliştirmenin keyfini çıkaracaksınız.

Gerekli Malzemeler

Bu projeyi gerçekleştirmek için aşağıdaki malzemelere ihtiyacınız olacak:

  • Arduino Uno (veya uyumlu bir kart)
  • 16x2 LCD Ekran
  • 3 adet Buton
  • 10K Ohm Potansiyometre (LCD kontrast ayarı için)
  • 220 Ohm Direnç (LCD backlight için)
  • 10K Ohm Direnç (Her bir buton için, pull-down direnci olarak)
  • Jumper Kablolar
  • Breadboard (tercihen)

Devre Şeması ve Bağlantılar

Devremizi kurarken aşağıdaki bağlantıları dikkatlice yapmanız gerekmektedir:

  • LCD Ekran Bağlantıları:
    • LCD VSS pini -> Arduino GND
    • LCD VDD pini -> Arduino 5V
    • LCD VO pini -> 10K Potansiyometre orta ucu (Potansiyometrenin diğer uçları GND ve 5V'a bağlanacak)
    • LCD RS pini -> Arduino Dijital Pin 12
    • LCD Enable pini -> Arduino Dijital Pin 11
    • LCD D4 pini -> Arduino Dijital Pin 5
    • LCD D5 pini -> Arduino Dijital Pin 4
    • LCD D6 pini -> Arduino Dijital Pin 3
    • LCD D7 pini -> Arduino Dijital Pin 2
    • LCD A (Backlight Anot) pini -> 220 Ohm Direnç üzerinden Arduino 5V
    • LCD K (Backlight Katot) pini -> Arduino GND
  • Buton Bağlantıları:
    • Buton 1 (Artış) -> Bir bacağı Arduino Dijital Pin 8'e, diğer bacağı 10K Ohm direnç üzerinden GND'ye ve aynı bacak 5V'a bağlanır.
    • Buton 2 (Azalış) -> Bir bacağı Arduino Dijital Pin 9'a, diğer bacağı 10K Ohm direnç üzerinden GND'ye ve aynı bacak 5V'a bağlanır.
    • Buton 3 (Onayla) -> Bir bacağı Arduino Dijital Pin 10'a, diğer bacağı 10K Ohm direnç üzerinden GND'ye ve aynı bacak 5V'a bağlanır.

Bağlantıları yaparken kabloların doğru pinlere takıldığından emin olun. Yanlış bağlantılar donanımınıza zarar verebilir.

Arduino Kodu

Şimdi de projemizin beyni olan Arduino koduna geçelim. Aşağıdaki kodu Arduino IDE'sine kopyalayın ve Arduino'nuza yükleyin.


#include <LiquidCrystal.h>

// LCD pinlerini tanımla
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// Buton pinlerini tanımla
const int buttonUp = 8;
const int buttonDown = 9;
const int buttonEnter = 10;

int randomNumber;
int guess = 1;
int attempts = 0;
bool gameStarted = false;

void setup() {
  // LCD ekranı başlat
  lcd.begin(16, 2);
  lcd.print("Tahmin Etmece!");

  // Buton pinlerini giriş olarak ayarla
  pinMode(buttonUp, INPUT_PULLUP);
  pinMode(buttonDown, INPUT_PULLUP);
  pinMode(buttonEnter, INPUT_PULLUP);

  randomSeed(analogRead(A0)); // Rastgele sayı üretimi için
}

void loop() {
  if (!gameStarted) {
    lcd.setCursor(0, 1);
    lcd.print("Basla icin ONAY");
    if (digitalRead(buttonEnter) == LOW) {
      startGame();
      delay(200);
    }
  } else {
    // Tahmini ekrana yazdır
    lcd.setCursor(0, 0);
    lcd.print("Tahmin: ");
    lcd.print(guess);
    lcd.print("  ");

    // Kalan hakkı ekrana yazdır
    lcd.setCursor(0, 1);
    lcd.print("Hakkınız: ");
    lcd.print(5 - attempts);
    lcd.print("  ");

    // Butonları oku
    if (digitalRead(buttonUp) == LOW) {
      guess++;
      if (guess > 100) guess = 1;
      delay(200);
    }
    if (digitalRead(buttonDown) == LOW) {
      guess--;
      if (guess < 1) guess = 100;
      delay(200);
    }
    if (digitalRead(buttonEnter) == LOW) {
      attempts++;
      checkGuess();
      delay(200);
    }
  }
}

void startGame() {
  randomNumber = random(1, 101); // 1-100 arasında rastgele sayı üret
  guess = 1;
  attempts = 0;
  gameStarted = true;
  lcd.clear();
}

void checkGuess() {
  if (guess == randomNumber) {
    lcd.clear();
    lcd.print("Tebrikler!");
    lcd.setCursor(0, 1);
    lcd.print("Bildiniz!");
    delay(2000);
    endGame(true);
  } else if (attempts >= 5) {
    lcd.clear();
    lcd.print("Kaybettiniz!");
    lcd.setCursor(0, 1);
    lcd.print("Sayi: ");
    lcd.print(randomNumber);
    delay(2000);
    endGame(false);
  } else {
    lcd.clear();
    if (guess < randomNumber) {
      lcd.print("Yukari!");
    } else {
      lcd.print("Asagi!");
    }
    delay(1000);
  }
}

void endGame(bool won) {
  gameStarted = false;
  lcd.clear();
  lcd.print("Tekrar?");
  lcd.setCursor(0, 1);
  lcd.print("ONAY ile BASLA");
  delay(1000);
}

Kodun Açıklaması

Yukarıdaki kodda şunları yaptık:

  • İlk olarak, LCD ekran ve butonlar için pinleri tanımladık.
  • `LiquidCrystal` kütüphanesini kullanarak LCD ekranı başlattık.
  • Buton pinlerini giriş olarak ayarladık ve pull-up dirençlerini etkinleştirdik.
  • `randomSeed()` fonksiyonu ile rastgele sayı üretimi için bir başlangıç değeri belirledik.
  • `loop()` fonksiyonunda, sürekli olarak butonları okuyarak kullanıcının tahminini aldık ve LCD ekranda güncelledik.
  • `checkGuess()` fonksiyonu ile kullanıcının tahminini kontrol ettik ve sonuca göre LCD ekranda mesajlar gösterdik.
  • `startGame()` ve `endGame()` fonksiyonları ile oyunu başlatıp bitirdik.

Sonuç

Tebrikler! Artık LCD ekranlı, buton kontrollü bir tahmin etmece oyununa sahipsiniz. Bu proje, Arduino'nun temellerini öğrenmek ve elektronik projeler geliştirmek için harika bir başlangıç noktasıdır. Kodu inceleyerek ve değiştirerek projenizi daha da geliştirebilirsiniz. Örneğin, zorluk seviyesini ayarlayabilir, farklı mesajlar gösterebilir veya oyuna yeni özellikler ekleyebilirsiniz.

Umarım bu proje size ilham vermiştir ve Arduino dünyasına adım atmanıza yardımcı olmuştur. Bir sonraki projede görüşmek üzere!

Etiketler: Arduino, LCD, Buton, Oyun, Tahmin Etmece, Elektronik, Proje, Kodlama

```

0 yorum:

Arduino ile Uyan: Titreşimli Bileklik Alarm Sistemi

Arduino ile Uyan: Titreşimli Bileklik Alarm Sistemi

Arduino ile Uyan: Titreşimli Bileklik Alarm Sistemi

Merhaba sevgili Arduino dostları!

Sabahları alarm sesinden nefret mi ediyorsunuz? Belki de etrafınızdakileri uyandırmadan kendinizi nazikçe uyandırmak istiyorsunuz. O zaman bu proje tam size göre! Bu yazımızda, Arduino kullanarak titreşimli bir bileklik alarm sistemi nasıl yapacağımızı adım adım inceleyeceğiz. Projemiz hem eğlenceli hem de pratik, özellikle öğrenci arkadaşlarımızın yurt odalarında kullanabileceği harika bir alternatif.

Neye İhtiyacımız Var?

Projemize başlamadan önce aşağıdaki malzemelere ihtiyacımız olacak:

  • Arduino Uno (veya benzeri bir Arduino geliştirme kartı)
  • Titreşim motoru (küçük boyutlu, bilekliğe sığabilecek)
  • DS3231 RTC (Gerçek Zamanlı Saat) Modülü
  • 330 Ohm direnç
  • NPN Transistör (örn. 2N2222 veya BC547)
  • Bileklik (Saat kayışı veya benzeri)
  • Jumper kablolar
  • Breadboard (isteğe bağlı, ama işleri kolaylaştırır)
  • Pil veya güç kaynağı (Arduino için)

Bağlantılar ve Şema

Şimdi de devre bağlantılarımızı nasıl yapacağımıza bakalım. Aşağıdaki bağlantıları dikkatlice uygulayın:

  • DS3231 RTC Modülü:
    • VCC -> Arduino 5V
    • GND -> Arduino GND
    • SDA -> Arduino A4
    • SCL -> Arduino A5
  • Titreşim Motoru:
    • Titreşim Motoru (+) -> 330 Ohm Direnç -> Transistör Base (Orta bacak)
    • Titreşim Motoru (-) -> Transistör Collector (Genellikle sağdaki bacak)
    • Transistör Emitter (Genellikle soldaki bacak) -> Arduino GND
    • Arduino Dijital Pin 9 -> 330 Ohm Direncin diğer ucu (direkt olarak transistörün base'ine gidiyor)

Açıklama: Titreşim motorunu doğrudan Arduino pinine bağlamak yerine transistör kullanmamızın sebebi, motorun Arduino'dan çok fazla akım çekmesini engellemektir. Transistör, motor için bir anahtar görevi görür ve motorun ihtiyacı olan akımı Arduino'ya zarar vermeden sağlar.

Arduino Kodu

Şimdi de Arduino kodumuza geçelim. Aşağıdaki kodu Arduino IDE'nize kopyalayın ve Arduino'nuza yükleyin. Kodu yüklemeden önce DS3231 RTC modülünün doğru zamanı gösterdiğinden emin olun. Bunun için Arduino Türkiye gibi sitelerdeki RTC modülü ayarlama örneklerine göz atabilirsiniz.

```cpp #include #include RTC_DS3231 rtc; int vibrationPin = 9; // Titreşim motorunun bağlı olduğu pin int alarmHour = 7; // Alarm saati (örneğin, 7:00) int alarmMinute = 0; // Alarm dakikası void setup() { Serial.begin(9600); if (! rtc.begin()) { Serial.println("RTC Modülü Bulunamadı!"); while (1); } pinMode(vibrationPin, OUTPUT); } void loop() { DateTime now = rtc.now(); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.println(now.second(), DEC); if (now.hour() == alarmHour && now.minute() == alarmMinute && now.second() == 0) { // Alarm çalma zamanı geldi! vibrate(10); // 10 saniye titreşim } delay(1000); // Her saniyede bir kontrol et } void vibrate(int seconds) { for (int i = 0; i < seconds; i++) { digitalWrite(vibrationPin, HIGH); // Titreşimi başlat delay(500); digitalWrite(vibrationPin, LOW); // Titreşimi durdur delay(500); } } ```

Açıklama: Bu kod, RTC modülünden saat ve dakika bilgilerini okur ve önceden belirlenmiş alarm saatiyle karşılaştırır. Saat ve dakika eşleştiğinde, `vibrate()` fonksiyonu çağrılır ve titreşim motoru belirtilen süre boyunca çalışır.

Bilekliği Tasarlama ve Birleştirme

Devremizi kurduktan sonra, bileklik kısmını tasarlamaya geçebiliriz. Arduino'nun ve pilin bileğe rahatça sığması için dikkatli bir tasarım yapmamız gerekiyor. 3D yazıcı kullanarak özel bir kutu tasarlayabilir veya hazır bilekliklerden yararlanabilirsiniz. Titreşim motorunu bileğinizle temas edecek şekilde yerleştirmeniz, titreşimi daha iyi hissetmenizi sağlayacaktır.

Sonuç

Tebrikler! Artık kendi titreşimli bileklik alarm sisteminize sahipsiniz. Bu proje sadece bir başlangıç noktası. Kodu ve tasarımı kendi ihtiyaçlarınıza göre geliştirebilirsiniz. Örneğin, alarm erteleme özelliği ekleyebilir, farklı titreşim desenleri oluşturabilir veya Bluetooth ile telefonunuza bağlayarak alarmı telefonunuzdan kontrol edebilirsiniz.

Umarım bu proje size ilham vermiştir. Arduino ile yaratıcılığınızı kullanarak harika projeler geliştirmeye devam edin!

Bol kodlu günler!

Etiketler: arduino, titreşimli bileklik, alarm, proje, diy, rtc, ds3231, elektronik, hobi, öğrenci

```

0 yorum:

Arduino ile Akıllı Geri Sayım Sayacı: Sınavlar ve Egzersizler için İdeal

Arduino ile Akıllı Geri Sayım Sayacı: Sınavlar ve Egzersizler için İdeal

Arduino ile Akıllı Geri Sayım Sayacı: Sınavlar ve Egzersizler için İdeal

Merhaba sevgili Arduino meraklıları!

Bugün sizlere Arduino ile nasıl akıllı bir geri sayım sayacı yapabileceğinizi anlatacağım. Bu proje, özellikle sınavlara hazırlanan öğrenciler veya egzersiz yapanlar için çok kullanışlı olabilir. Hatta mutfakta yemek yaparken bile size yardımcı olacak bir zamanlayıcıya dönüştürebilirsiniz.

Projenin Amacı

Bu projenin amacı, Arduino kullanarak belirli bir süre geri sayım yapabilen ve süre dolduğunda sesli veya görsel bir uyarı verebilen bir cihaz oluşturmaktır. Bu cihazı ihtiyacınıza göre özelleştirebilirsiniz.

Gerekli Malzemeler

İhtiyacımız olan malzemeler oldukça basit:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • Bir adet 16x2 LCD ekran
  • 4 adet buton (veya push button)
  • 1 adet buzzer (sesli uyarı için)
  • 10k potansiyometre (LCD ekran kontrast ayarı için)
  • Birkaç adet jumper kablo
  • Breadboard (isteğe bağlı, ama önerilir)

Bağlantı Şeması

Şimdi de malzemeleri Arduino'ya nasıl bağlayacağımıza bakalım:

  1. LCD Ekran Bağlantısı:
    • LCD VSS pin -> Arduino GND
    • LCD VDD pin -> Arduino 5V
    • LCD VO pin -> Potansiyometrenin orta pini (Potansiyometrenin diğer iki pini GND ve 5V'a bağlanacak)
    • LCD RS pin -> Arduino Dijital Pin 12
    • LCD Enable pin -> Arduino Dijital Pin 11
    • LCD D4 pin -> Arduino Dijital Pin 5
    • LCD D5 pin -> Arduino Dijital Pin 4
    • LCD D6 pin -> Arduino Dijital Pin 3
    • LCD D7 pin -> Arduino Dijital Pin 2
    • LCD A pin (Arka ışık anot) -> Arduino 5V (direnç ile bağlanması önerilir, örneğin 220 ohm)
    • LCD K pin (Arka ışık katot) -> Arduino GND
  2. Buton Bağlantıları:

    Her bir buton bir ucu Arduino'nun bir dijital pinine (örneğin 6, 7, 8, 9) bağlanacak. Diğer ucu ise GND'ye bir 10k ohm'luk direnç ile bağlanacak. Butona basıldığında, dijital pin HIGH sinyali alacak.

    • 1. Buton -> Arduino Dijital Pin 6
    • 2. Buton -> Arduino Dijital Pin 7
    • 3. Buton -> Arduino Dijital Pin 8
    • 4. Buton -> Arduino Dijital Pin 9
    • Her butonun GND tarafına 10k direnç
  3. Buzzer Bağlantısı:
    • Buzzer pozitif (+) ucu -> Arduino Dijital Pin 10
    • Buzzer negatif (-) ucu -> Arduino GND

Arduino Kodu

Aşağıdaki kod, temel bir geri sayım sayacı işlevini yerine getirir. Butonlar ile süreyi ayarlayabilir, başlatıp durdurabilirsiniz. LCD ekran üzerinde kalan süre gösterilir ve süre bittiğinde buzzer çalar.


#include <LiquidCrystal.h>

// LCD pin tanımlamaları
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// Buton pin tanımlamaları
const int button1Pin = 6; // Süreyi artırma
const int button2Pin = 7; // Süreyi azaltma
const int button3Pin = 8; // Başlat/Durdur
const int button4Pin = 9; // Reset
const int buzzerPin = 10;   // Buzzer pini

int timeLeft = 60;          // Geri sayım süresi (saniye)
bool timerRunning = false;  // Zamanlayıcının çalışıp çalışmadığı

void setup() {
  lcd.begin(16, 2);
  pinMode(button1Pin, INPUT_PULLUP);
  pinMode(button2Pin, INPUT_PULLUP);
  pinMode(button3Pin, INPUT_PULLUP);
  pinMode(button4Pin, INPUT_PULLUP);
  pinMode(buzzerPin, OUTPUT);

  updateDisplay();
}

void loop() {
  if (digitalRead(button1Pin) == LOW) { // Süreyi artır
    timeLeft += 10;
    if (timeLeft > 3600) timeLeft = 3600; // Maksimum 1 saat
    updateDisplay();
    delay(200); // Buton debounce
  }

  if (digitalRead(button2Pin) == LOW) { // Süreyi azalt
    timeLeft -= 10;
    if (timeLeft < 0) timeLeft = 0;
    updateDisplay();
    delay(200); // Buton debounce
  }

  if (digitalRead(button3Pin) == LOW) { // Başlat/Durdur
    timerRunning = !timerRunning;
    delay(200); // Buton debounce
  }
    if (digitalRead(button4Pin) == LOW) { // Reset
    timeLeft = 60;
    timerRunning = false;
    updateDisplay();
    delay(200); // Buton debounce
  }

  if (timerRunning) {
    delay(1000);
    timeLeft--;
    updateDisplay();

    if (timeLeft <= 0) {
      timerRunning = false;
      buzzerAlarm();
      timeLeft = 0; // Süre negatif olmasın
      updateDisplay();
    }
  }
}

void updateDisplay() {
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Kalan Sure:");
  lcd.setCursor(0, 1);
  lcd.print(timeLeft / 60);
  lcd.print(":");
  if (timeLeft % 60 < 10) lcd.print("0"); // Saniyeyi iki haneli gösterme
  lcd.print(timeLeft % 60);
}

void buzzerAlarm() {
  for (int i = 0; i < 5; i++) {
    tone(buzzerPin, 1000); // 1 kHz ton
    delay(500);
    noTone(buzzerPin);
    delay(500);
  }
}

Bu kodu Arduino IDE'sine kopyalayın ve kartınıza yükleyin.

Kod Açıklaması

  • #include <LiquidCrystal.h>: LCD kütüphanesini projeye dahil eder.
  • LiquidCrystal lcd(rs, en, d4, d5, d6, d7);: LCD ekranın pin bağlantılarını tanımlar.
  • pinMode(buttonPin, INPUT_PULLUP);: Buton pinlerini giriş olarak ayarlar ve dahili pull-up dirençlerini etkinleştirir. Bu, butonlara harici direnç bağlamamıza gerek kalmadan çalışmasını sağlar.
  • updateDisplay(): LCD ekranı günceller ve kalan süreyi gösterir.
  • buzzerAlarm(): Süre bittiğinde buzzer'ı çaldırır.

Projenin Geliştirilmesi

Bu projeyi daha da geliştirmek isterseniz, şunları ekleyebilirsiniz:

  • Farklı alarm sesleri
  • Menü sistemi ile süre ayarlama
  • Bluetooth modülü ile uzaktan kontrol
  • Gerçek zamanlı saat modülü (RTC) ile doğru zaman takibi

Sonuç

Arduino ile akıllı bir geri sayım sayacı yapmak oldukça kolay ve eğlenceli. Bu proje, elektronik ve programlama becerilerinizi geliştirmenize yardımcı olurken, aynı zamanda günlük hayatınızda kullanabileceğiniz pratik bir araç sunar. Umarım bu blog yazısı size ilham vermiştir. Bir sonraki projede görüşmek üzere!

Etiketler: Arduino, geri sayım sayacı, sınav, egzersiz, timer, proje, kod, elektronik, DIY, zamanlayıcı, lcd ekran, buzzer

```

0 yorum:

Arduino ile Şifreli Kapı Kilidi (Keypad ve Servo Motor Kullanarak)

Arduino ile Şifreli Kapı Kilidi (Keypad ve Servo Motor Kullanarak)

Arduino ile Şifreli Kapı Kilidi (Keypad ve Servo Motor Kullanarak)

Merhaba sevgili Arduino severler!

Bu yazımızda, Arduino kullanarak basit ama etkili bir şifreli kapı kilidi projesi geliştireceğiz. Projemizde bir tuş takımı (keypad) ve bir servo motor kullanacağız. Bu proje, hem Arduino'nun temel prensiplerini anlamanıza yardımcı olacak hem de elektronik ve programlama becerilerinizi geliştirmenizi sağlayacak.

Gerekli Malzemeler

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • 4x4 Tuş Takımı (Keypad)
  • Servo Motor (SG90 gibi küçük bir servo yeterli olacaktır)
  • Breadboard
  • Jumper Kablolar
  • Güç Kaynağı (Arduino için)

Devre Şeması ve Bağlantılar

Şimdi de devremizi nasıl kuracağımıza göz atalım. Aşağıdaki bağlantıları dikkatlice uygulayın:

Tuş Takımı (Keypad) Bağlantısı

Tuş takımı bağlantıları Arduino pinlerine aşağıdaki gibi yapılmalıdır:

  • Tuş takımının 1. pini -> Arduino Dijital Pin 2
  • Tuş takımının 2. pini -> Arduino Dijital Pin 3
  • Tuş takımının 3. pini -> Arduino Dijital Pin 4
  • Tuş takımının 4. pini -> Arduino Dijital Pin 5
  • Tuş takımının 5. pini -> Arduino Dijital Pin 6
  • Tuş takımının 6. pini -> Arduino Dijital Pin 7
  • Tuş takımının 7. pini -> Arduino Dijital Pin 8
  • Tuş takımının 8. pini -> Arduino Dijital Pin 9

Servo Motor Bağlantısı

Servo motorun bağlantıları ise şu şekilde olmalıdır:

  • Servo Motor Sinyal pini (genellikle sarı veya turuncu) -> Arduino Dijital Pin 10
  • Servo Motor VCC pini (genellikle kırmızı) -> Arduino 5V
  • Servo Motor GND pini (genellikle kahverengi veya siyah) -> Arduino GND

Arduino Kodu

Aşağıdaki Arduino kodunu Arduino IDE'sine kopyalayın ve kartınıza yükleyin. Kodu açıklayarak anlamanızı kolaylaştıracağım:


 #include <Keypad.h>
 #include <Servo.h>

 const byte ROWS = 4; //dört satır
 const byte COLS = 4; //dört sütun

 char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
 };

 byte rowPins[ROWS] = {2, 3, 4, 5}; //Satır pinleri
 byte colPins[COLS] = {6, 7, 8, 9}; //Sütun pinleri

 Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

 Servo myservo;  // Servo nesnesi oluştur

 const int servoPin = 10;
 String password = "1234"; // Şifremiz
 String enteredPassword = "";

 void setup() {
  Serial.begin(9600);
  myservo.attach(servoPin);  // Servoyu pin 10'a bağla
  myservo.write(0); // Başlangıç pozisyonu (kilitli)
 }

 void loop() {
  char key = keypad.getKey();

  if (key){
   Serial.println(key);
   enteredPassword += key;

   if(enteredPassword.length() == password.length()){
     if(enteredPassword == password){
       Serial.println("Şifre doğru!");
       // Kilidi aç
       myservo.write(90); // Servoyu 90 dereceye getir (kilidi aç)
       delay(3000); // 3 saniye açık tut
       myservo.write(0); // Servoyu geri getir (kilidi kapat)
       enteredPassword = ""; // Şifreyi sıfırla
     } else {
       Serial.println("Şifre yanlış!");
       enteredPassword = ""; // Şifreyi sıfırla
     }
   }
  }
 }
 

Kod Açıklaması:

  • #include <Keypad.h> ve #include <Servo.h>: Gerekli kütüphaneleri ekliyoruz.
  • const byte ROWS = 4; const byte COLS = 4;: Tuş takımımızın boyutlarını tanımlıyoruz.
  • char keys[ROWS][COLS] = {...};: Tuş takımındaki tuşların dizilimini belirtiyoruz.
  • byte rowPins[ROWS] = {2, 3, 4, 5}; byte colPins[COLS] = {6, 7, 8, 9};: Satır ve sütun pinlerini tanımlıyoruz.
  • Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );: Keypad nesnesini oluşturuyoruz.
  • Servo myservo;: Servo motor için bir nesne oluşturuyoruz.
  • const int servoPin = 10;: Servo motorun bağlı olduğu pini belirtiyoruz.
  • String password = "1234";: Doğru şifreyi tanımlıyoruz. Bu kısmı istediğiniz gibi değiştirebilirsiniz.
  • String enteredPassword = "";: Girilen şifreyi tutacak değişkeni tanımlıyoruz.
  • setup() fonksiyonu: Seri haberleşmeyi başlatıyor, servo motoru bağlıyor ve başlangıç pozisyonuna getiriyoruz.
  • loop() fonksiyonu: Sürekli olarak tuş takımından giriş bekliyor, girilen şifreyi kontrol ediyor ve doğruysa kilidi açıyor.

Projenin Çalışması

Devreyi kurduktan ve kodu yükledikten sonra, seri monitörü açarak tuş takımından şifreyi girmeye başlayabilirsiniz. Doğru şifreyi girdiğinizde, servo motor harekete geçerek kilidi açacaktır. Yanlış şifre girdiğinizde ise, "Şifre yanlış!" mesajını göreceksiniz.

Geliştirme İmkanları

Bu proje oldukça basit bir başlangıç noktası. Projeyi daha da geliştirmek için şunları yapabilirsiniz:

  • Farklı bir servo motor kullanarak daha güçlü bir kilit mekanizması oluşturabilirsiniz.
  • LCD ekran ekleyerek girilen şifreyi ve diğer bilgileri görüntüleyebilirsiniz.
  • RFID okuyucu ekleyerek şifre yerine kartla da kilidi açma özelliği ekleyebilirsiniz.
  • Alarm sistemi entegre ederek yetkisiz giriş denemelerinde alarm çalmasını sağlayabilirsiniz.

Umarım bu proje size Arduino ile ilgili yeni şeyler öğretmiştir. İyi eğlenceler!

Etiketler: Arduino, Şifreli Kapı Kilidi, Keypad, Servo Motor, Proje, Elektronik, Kodlama, Hobi

```

0 yorum:

Arduino ile Basit Bir Hırsız Alarmı Sistemi: PIR Sensörlü Arduino Güvenliği

Arduino ile Basit Bir Hırsız Alarmı Sistemi: PIR Sensörlü Arduino Güvenliği

Arduino ile Basit Bir Hırsız Alarmı Sistemi: PIR Sensörlü Arduino Güvenliği

Merhaba sevgili Arduino severler!

Bu yazımızda, Arduino kullanarak basit ama etkili bir hırsız alarmı sistemi nasıl kuracağımızı öğreneceğiz. Bu proje hem yeni başlayanlar için uygun, hem de Arduino'nun potansiyelini anlamak için harika bir fırsat.

Neden Bu Proje?

Ev veya ofis güvenliğini artırmak, pahalı güvenlik sistemlerine bağımlı kalmadan da mümkün. Bu proje sayesinde, hareket algılayan bir PIR (Passive Infrared) sensörü kullanarak, istenmeyen bir hareket algılandığında uyarı veren bir alarm sistemi oluşturabileceksiniz. Üstelik bu sistemi kişisel ihtiyaçlarınıza göre kolayca özelleştirebilirsiniz.

Gerekli Malzemeler

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • PIR Hareket Sensörü
  • Buzzer (sesli uyarı için)
  • Jumper kablolar
  • 1 adet 220 ohm direnç (buzzer için)
  • Breadboard (isteğe bağlı, bağlantıları kolaylaştırmak için)

Bağlantı Şeması

Şimdi de malzemeleri nasıl bağlayacağımıza bakalım. Dikkatlice uygulayın, yanlış bağlantılar donanımınıza zarar verebilir!

  • PIR Sensörü VCC pini -> Arduino 5V pinine
  • PIR Sensörü GND pini -> Arduino GND pinine
  • PIR Sensörü OUT pini -> Arduino Dijital 2 pinine
  • Buzzer (+) pini -> 220 ohm direnç üzerinden Arduino Dijital 8 pinine
  • Buzzer (-) pini -> Arduino GND pinine

Arduino Kodu

Bağlantıları tamamladıktan sonra, sıra geldi Arduino kodunu yüklemeye. Aşağıdaki kodu Arduino IDE'sine kopyalayın ve Arduino kartınıza yükleyin.


const int pirPin = 2;    // PIR sensörünün bağlı olduğu pin
const int buzzerPin = 8; // Buzzer'ın bağlı olduğu pin

void setup() {
  pinMode(pirPin, INPUT);
  pinMode(buzzerPin, OUTPUT);
  Serial.begin(9600); // Seri port iletişimi başlatılıyor (debug için)
}

void loop() {
  int pirDegeri = digitalRead(pirPin);

  if (pirDegeri == HIGH) {
    // Hareket algılandı!
    Serial.println("Hareket Algılandı!");
    digitalWrite(buzzerPin, HIGH); // Buzzer'ı çal
    delay(1000);                   // 1 saniye çal
    digitalWrite(buzzerPin, LOW);  // Buzzer'ı kapat
    delay(5000);                   // 5 saniye bekle
  } else {
    // Hareket yok
    digitalWrite(buzzerPin, LOW); // Buzzer'ı kapalı tut
  }
}

Kod Açıklaması:

  • pirPin ve buzzerPin değişkenleri, PIR sensörünün ve buzzer'ın hangi pinlere bağlı olduğunu belirtir.
  • setup() fonksiyonu, pin modlarını ayarlar (PIR sensörü giriş, buzzer çıkış).
  • loop() fonksiyonu sürekli olarak PIR sensöründen veri okur. Eğer hareket algılanırsa, buzzer çalınır.

Test Etme ve İyileştirmeler

Kodu yükledikten sonra sistemi test edebilirsiniz. PIR sensörünün önüne geçerek hareketi tetikleyin ve buzzer'ın çaldığını kontrol edin. Eğer her şey yolundaysa, tebrikler! Başarılı bir hırsız alarmı sistemi kurdunuz.

Bu projeyi daha da geliştirmek için aşağıdaki fikirleri deneyebilirsiniz:

  • LCD ekran ekleyerek uyarı mesajlarını görüntüleyebilirsiniz.
  • GSM modülü kullanarak SMS ile uyarı gönderebilirsiniz.
  • Farklı sensörler (örneğin, duman sensörü) ekleyerek sistemi daha kapsamlı hale getirebilirsiniz.

Umarım bu proje, Arduino dünyasına güzel bir giriş yapmanıza yardımcı olur. Sorularınız ve yorumlarınız için aşağıdaki bölümü kullanmaktan çekinmeyin.

Herkese keyifli projeler!

Etiketler: arduino, hırsız alarmı, pir sensör, güvenlik, proje, sensör, alarm sistemi, kolay kurulum, adım adım rehber, elektronik, diy, kendin yap

0 yorum:

Arduino ile Hava Durumu İstasyonu: Sıcaklık, Nem ve Basınç Ölçümü

Arduino ile Hava Durumu İstasyonu: Sıcaklık, Nem ve Basınç Ölçümü

Arduino ile Kendi Hava Durumu İstasyonunuzu Kurun!

Merhaba sevgili Arduino severler!

Bugün, hepimizin merak ettiği hava durumunu kendi imkanlarımızla ölçebileceğimiz bir proje üzerinde çalışacağız: Arduino ile Hava Durumu İstasyonu! Bu proje sayesinde ortam sıcaklığını, nemini ve hatta hava basıncını ölçebilecek, elde ettiğiniz verileri bir LCD ekranda görüntüleyebileceksiniz. Hem eğlenceli, hem de öğretici bu projeye gelin birlikte göz atalım.

Gerekli Malzemeler

* Arduino UNO (veya benzeri bir Arduino kartı) * BMP180 Barometrik Basınç Sensörü (Sıcaklık ölçümü de yapabilir) * DHT11 veya DHT22 Sıcaklık ve Nem Sensörü * 16x2 LCD Ekran * 10k Potansiyometre (LCD kontrast ayarı için) * Jumper Kablolar * Breadboard

Devre Şeması ve Bağlantılar

Bağlantıları doğru yapmak, projenin sağlıklı çalışması için çok önemli. İşte dikkat etmeniz gerekenler:

  • BMP180 Sensörü Bağlantıları:
    • VCC pini -> Arduino 3.3V pinine
    • GND pini -> Arduino GND pinine
    • SDA pini -> Arduino A4 pinine (SDA)
    • SCL pini -> Arduino A5 pinine (SCL)
  • DHT11 Sensörü Bağlantıları:
    • VCC pini -> Arduino 5V pinine
    • DATA pini -> Arduino Dijital 2 numaralı pinine (Örneğin)
    • GND pini -> Arduino GND pinine
  • LCD Ekran Bağlantıları:
    • VSS pini -> Arduino GND pinine
    • VDD pini -> Arduino 5V pinine
    • VO pini -> 10k Potansiyometrenin orta ucuna
    • RS pini -> Arduino Dijital 12 numaralı pinine (Örneğin)
    • RW pini -> Arduino GND pinine
    • E pini -> Arduino Dijital 11 numaralı pinine (Örneğin)
    • D4 pini -> Arduino Dijital 5 numaralı pinine (Örneğin)
    • D5 pini -> Arduino Dijital 4 numaralı pinine (Örneğin)
    • D6 pini -> Arduino Dijital 3 numaralı pinine (Örneğin)
    • D7 pini -> Arduino Dijital 2 numaralı pinine (Örneğin)
    • A pini (Arka Işık Anot) -> Arduino 5V pinine (100-220 Ohm direnç ile)
    • K pini (Arka Işık Katot) -> Arduino GND pinine

Bu bağlantıları bir breadboard üzerinde kurmak, işinizi oldukça kolaylaştıracaktır. Potansiyometreyi LCD ekranın kontrastını ayarlamak için kullanacağız. Bağlantıları tamamladıktan sonra kod kısmına geçebiliriz.

Arduino Kodu

Aşağıdaki Arduino kodunu kullanarak sensörlerden verileri okuyabilir ve LCD ekranda görüntüleyebilirsiniz. Kod, BMP180 ve DHT11 sensörleri için gerekli kütüphaneleri içermektedir. Bu kütüphaneleri Arduino IDE'nize yüklemeyi unutmayın.


#include <Wire.h>
#include <LiquidCrystal.h> // LCD kütüphanesi
#include <DHT.h>        // DHT sensörü kütüphanesi
#include <BMP180.h>   // BMP180 sensörü kütüphanesi

// LCD pin tanımlamaları
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

// DHT11 pin tanımlaması
#define DHTPIN 7    // DHT11 sensörünün bağlı olduğu pin
#define DHTTYPE DHT11   // DHT11 sensör tipi (DHT22 kullanıyorsanız DHT22 olarak değiştirin)
DHT dht(DHTPIN, DHTTYPE);

// BMP180 nesnesi oluşturma
BMP180 bmp180;

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2); // LCD'yi başlat
  lcd.print("Hava Durumu");
  delay(2000);
  lcd.clear();

  // BMP180 başlatma
  if (!bmp180.begin()) {
    Serial.println("BMP180 başlatılamadı!");
    lcd.print("BMP180 Hatasi");
    while (1);
  }

  dht.begin(); // DHT sensörünü başlat
}

void loop() {
  // DHT11'den sıcaklık ve nem okuma
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // BMP180'den basınç okuma
  double pressure = bmp180.readPressure();
  double altitude = bmp180.readAltitude(); // deniz seviyesinden yükseklik (isteğe bağlı)

  // Hata kontrolü
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("DHT sensöründen veri okunamadı!");
    lcd.clear();
    lcd.print("DHT Hatasi");
  } else {
      // LCD'ye verileri yazdırma
      lcd.setCursor(0, 0); // İlk satır, ilk sütun
      lcd.print("Sicaklik: ");
      lcd.print(temperature);
      lcd.print(" C");

      lcd.setCursor(0, 1); // İkinci satır, ilk sütun
      lcd.print("Nem: ");
      lcd.print(humidity);
      lcd.print(" %");
  }

  Serial.print("Sicaklik: ");
  Serial.print(temperature);
  Serial.print(" *C, Nem: ");
  Serial.print(humidity);
  Serial.print(" %, Basinc: ");
  Serial.print(pressure / 100, 2);  // Basıncı hPa cinsinden göster
  Serial.println(" hPa");

  delay(2000);
  lcd.clear();

  lcd.setCursor(0,0);
  lcd.print("Basinc: ");
  lcd.print(pressure / 100, 2);
  lcd.print(" hPa");

  lcd.setCursor(0,1);
  lcd.print("Yukseklik: ");
  lcd.print(altitude);
  lcd.print(" m");
  delay(2000);
  lcd.clear();
}

Bu kodu Arduino IDE'nize kopyalayıp yükleyin. LCD ekranda sıcaklık, nem ve basınç değerlerini görmeye başlayacaksınız.

Sonuç

Tebrikler! Arduino ile kendi hava durumu istasyonunuzu başarıyla kurdunuz. Bu proje, sensörler hakkında bilgi edinmek ve Arduino programlama becerilerinizi geliştirmek için harika bir başlangıç. Daha da ileri gitmek isterseniz, bu verileri bir SD karta kaydedebilir, internete yükleyebilir veya daha gelişmiş bir arayüz oluşturabilirsiniz.

Unutmayın, bu sadece bir başlangıç! Arduino dünyası keşfedilmeyi bekleyen sayısız proje ile dolu. Bir sonraki projede görüşmek üzere!

Etiketler: Arduino, Hava Durumu İstasyonu, Sıcaklık, Nem, Basınç, BMP180, DHT11, LCD, Proje, Elektronik, Kendin Yap

```

0 yorum:

Arduino ile Sesle Kontrol Edilebilen Lamba Sistemi: Basit ve Eğlenceli Proje | Arduonik

Arduino ile Sesle Kontrol Edilebilen Lamba Sistemi: Basit ve Eğlenceli Proje

Arduino ile Sesle Kontrol Edilebilen Lamba Sistemi: Basit ve Eğlenceli Proje

Merhaba sevgili Arduino severler ve elektronik meraklıları!

Bu blog yazımızda, Arduino kullanarak nasıl sesle kontrol edilebilen bir lamba sistemi oluşturabileceğimizi adım adım inceleyeceğiz. Projemiz hem eğlenceli hem de oldukça basit, bu yüzden Arduino dünyasına yeni adım atanlar için harika bir başlangıç olacak. Hazırsanız, malzemelerimizi hazırlayalım ve kodlamaya başlayalım!

Gerekli Malzemeler

İşte projemiz için ihtiyacımız olan malzemeler:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • KY-038 Ses Algılama Modülü (Ses Sensörü)
  • LED Lamba (veya bir röle modülü ile kontrol edebileceğiniz herhangi bir lamba)
  • 220 Ohm Direnç (LED için)
  • Jumper Kabloları
  • Breadboard (isteğe bağlı, devre kurulumunu kolaylaştırır)

Devre Şeması ve Bağlantılar

Devremizi kurarken dikkat etmemiz gereken bağlantılar şunlar:

  • Ses Sensörü VCC -> Arduino 5V (Ses sensörünün güç kaynağı bağlantısı)
  • Ses Sensörü GND -> Arduino GND (Ses sensörünün toprak bağlantısı)
  • Ses Sensörü D0 (Dijital Çıkış) -> Arduino Dijital Pin 2 (Ses algılandığında sinyal gönderecek)
  • LED'in Anot (+) -> 220 Ohm Direnç -> Arduino Dijital Pin 13 (LED'i kontrol pini)
  • LED'in Katot (-) -> Arduino GND (LED'in toprak bağlantısı)

Eğer röle modülü kullanıyorsanız, Arduino'nun bir dijital pini ile röleyi kontrol edip, röle üzerinden lambanıza güç verebilirsiniz. Röle bağlantıları, kullandığınız röle modülüne göre değişiklik gösterebilir, bu yüzden modülün datasheet'ini incelemeniz önemlidir.

Arduino Kodu

Şimdi de Arduino kodumuza göz atalım. Bu kod, ses sensöründen gelen sinyali dinleyecek ve bir ses algılandığında LED'i yakıp söndürecek:


const int sesSensoruPin = 2; // Ses sensörünün bağlı olduğu pin
const int ledPin = 13;       // LED'in bağlı olduğu pin
int ledDurumu = LOW;        // LED'in başlangıç durumu

void setup() {
  pinMode(sesSensoruPin, INPUT); // Ses sensörü girişi olarak ayarlandı
  pinMode(ledPin, OUTPUT);       // LED çıkış olarak ayarlandı
  Serial.begin(9600);          // Seri iletişim başlatıldı (debug için)
}

void loop() {
  int sesDegeri = digitalRead(sesSensoruPin); // Ses sensöründen değeri oku

  if (sesDegeri == LOW) { // Ses algılandıysa (KY-038 LOW sinyali gönderir)
    Serial.println("Ses Algilandi!"); // Seri port ekranına yazdır
    delay(50); // Stabilizasyon için kısa bir bekleme

    // LED'in durumunu değiştir
    if (ledDurumu == LOW) {
      ledDurumu = HIGH;
    } else {
      ledDurumu = LOW;
    }

    digitalWrite(ledPin, ledDurumu); // LED'i yak veya söndür
    delay(500);                    // Kısa bir bekleme
  }
}

Bu kodu Arduino IDE'nize kopyalayın ve Arduino kartınıza yükleyin. Seri port monitörünü açarak ses algılandığında "Ses Algilandi!" mesajını görüp görmediğinizi kontrol edebilirsiniz.

Projenin Çalışma Prensibi

Projemiz, ses sensörünün çevredeki sesleri algılaması ve bu bilgiyi Arduino'ya iletmesi prensibiyle çalışır. Ses sensörü, belirli bir eşik değerinin üzerinde bir ses algıladığında Arduino'ya düşük seviyede (LOW) bir sinyal gönderir. Arduino, bu sinyali aldığında LED'in durumunu değiştirir; eğer LED kapalıysa açar, açıksa kapatır.

Projenin Geliştirilmesi

Bu basit projeyi daha da geliştirmek için birçok farklı fikir deneyebilirsiniz:

  • Birden fazla lamba ekleyerek farklı ses komutlarıyla farklı lambaları kontrol edebilirsiniz.
  • Ses tanıma kütüphaneleri kullanarak daha karmaşık ses komutları tanımlayabilirsiniz.
  • Bir LCD ekran ekleyerek, hangi komutun algılandığını gösterebilirsiniz.
  • İnternete bağlanarak, lambayı uzaktan kontrol edebilirsiniz.

Sonuç

Bu yazımızda, Arduino ile sesle kontrol edilebilen basit bir lamba sisteminin nasıl oluşturulacağını adım adım öğrendik. Bu proje, hem Arduino'ya yeni başlayanlar için harika bir öğrenme fırsatı sunuyor, hem de elektronik projelerin ne kadar eğlenceli olabileceğini gösteriyor. Umarız siz de bu projeyi denemekten keyif alırsınız!

Herkese iyi kodlamalar!

Etiketler: arduino, sesle kontrol, lamba, ses sensörü, proje, elektronik, diy, hobby

```.

0 yorum:

Arduino ve Bluetooth ile Kendi AirTag'inizi Yapın! | Arduonik

```html Arduino ve Bluetooth ile Kendi AirTag'inizi Yapın! | Arduonik

Arduino ve Bluetooth ile Kendi AirTag'inizi Yapın!

Merhaba sevgili Arduino severler! Bu yazımızda, hepimizin başına gelen kayıp eşya sorununa Arduino ve Bluetooth teknolojilerini kullanarak bir çözüm bulmaya çalışacağız. Hazırsanız, kendi AirTag benzeri takip cihazımızı yapmaya başlıyoruz!

Projenin Amacı ve Faydaları

Bu projenin amacı, Bluetooth teknolojisini kullanarak küçük bir takip cihazı oluşturmak ve bu cihazı anahtarlık, cüzdan veya sırt çantası gibi eşyalarımıza takarak kaybolmalarını önlemek. Kendi cihazımızı yapmanın avantajları ise şunlar:

  • Öğrenme: Arduino ve Bluetooth hakkında daha fazla bilgi sahibi olursunuz.
  • Maliyet: Piyasada bulunan benzer ürünlere göre daha uygun maliyetli olabilir.
  • Kişiselleştirme: Kendi ihtiyaçlarınıza göre cihazı özelleştirebilirsiniz.

Gerekli Malzemeler

Bu projeyi gerçekleştirmek için aşağıdaki malzemelere ihtiyacınız olacak:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • HC-05 veya HC-06 Bluetooth Modülü
  • Breadboard (isteğe bağlı)
  • Jumper kablolar
  • Küçük bir pil (9V pil ve pil başlığı veya USB kablosu)

Bağlantı Şeması

Arduino ve Bluetooth modülünü birbirine bağlamak için aşağıdaki bağlantıları kullanacağız. Dikkatli olun, yanlış bağlantılar modülünüzü yakabilir!

  • Bluetooth Modülü VCC pini -> Arduino 5V pinine
  • Bluetooth Modülü GND pini -> Arduino GND pinine
  • Bluetooth Modülü TXD pini -> Arduino RX pinine (Dikkat: Arduino'nun RX pini genellikle 0 numaralı pin'dir. Eğer program yüklemede sorun yaşıyorsanız, bu bağlantıyı kesin ve program yükledikten sonra tekrar bağlayın.)
  • Bluetooth Modülü RXD pini -> Arduino TX pinine (Dikkat: Arduino'nun TX pini genellikle 1 numaralı pin'dir.) Bu pine bir voltaj bölücü (iki direnç) bağlamak, Bluetooth modülünüzü koruyacaktır. Arduino'nun TX pini 5V verirken Bluetooth modülünün RX pini 3.3V bekler. Örneğin, Arduino TX'ten gelen kabloya 1K direnç bağlayıp Bluetooth modülünün RX pinine bağlayın. Aynı kablodan, 2K direnç ile GND'ye bir bağlantı yapın. Bu sayede Bluetooth modülünüze 3.3V civarında bir voltaj gidecektir.

Arduino Kodu

Aşağıdaki kod, Bluetooth modülü aracılığıyla cihazımıza veri göndermemizi sağlayacak basit bir örnektir. Bu kodu Arduino IDE'sine kopyalayıp yükleyin:


// Bluetooth ile haberleşme için Serial kütüphanesini dahil et
#include <SoftwareSerial.h>

// Bluetooth modülünün pinleri
#define BT_RX 2
#define BT_TX 3

// Yazılımsal Serial haberleşme nesnesi oluştur
SoftwareSerial bluetoothSerial(BT_RX, BT_TX); // RX, TX

void setup() {
  // Seri portu başlat
  Serial.begin(9600);

  // Bluetooth modülünün seri portunu başlat
  bluetoothSerial.begin(9600);

  Serial.println("AirTag benzeri cihaz başlatıldı!");
  bluetoothSerial.println("AirTag benzeri cihaz başlatıldı!"); // Bluetooth'a mesaj gönder
}

void loop() {
  // Eğer seri porttan veri gelirse
  if (Serial.available()) {
    // Veriyi oku ve Bluetooth'a gönder
    String data = Serial.readStringUntil('\n');
    bluetoothSerial.println(data);
    Serial.print("Gönderilen: ");
    Serial.println(data);
  }

  // Eğer Bluetooth'tan veri gelirse
  if (bluetoothSerial.available()) {
    // Veriyi oku ve seri porta gönder
    String data = bluetoothSerial.readStringUntil('\n');
    Serial.println(data);
  }

  delay(10); // Kısa bir bekleme
}

Kodun Açıklaması:

  • SoftwareSerial kütüphanesi, Arduino'nun dijital pinlerini seri iletişim için kullanmamızı sağlar.
  • BT_RX ve BT_TX tanımlamaları, Bluetooth modülünün RX ve TX pinlerinin hangi Arduino pinlerine bağlandığını belirtir.
  • setup() fonksiyonunda, hem normal seri port (USB üzerinden bilgisayara bağlantı) hem de Bluetooth seri portu başlatılır.
  • loop() fonksiyonunda, sürekli olarak seri portlardan veri gelip gelmediği kontrol edilir. Eğer veri gelirse, diğer porta gönderilir.

Test Etme ve Kullanım

Kodu yükledikten sonra, Android veya iOS cihazınıza bir Bluetooth terminal uygulaması (örneğin, "Bluetooth Terminal" veya "Serial Bluetooth Terminal") indirin. Uygulamayı açın ve Arduino'nun Bluetooth modülüne bağlanın. Bağlantı kurulduktan sonra, terminal uygulamasından Arduino'ya mesaj gönderebilir ve Arduino'dan gelen mesajları görebilirsiniz. Böylece, cihazınızın çalıştığını teyit etmiş olursunuz.

Geliştirme Fikirleri

Bu proje daha da geliştirilebilir. Örneğin:

  • Daha küçük bir Arduino kartı (örneğin, Arduino Nano veya Pro Mini) kullanarak yada kendi devrenizi cizerek cihazın boyutunu küçültebilirsiniz.
  • GPS modülü ekleyerek cihazın konumunu takip edebilirsiniz.
  • Bir buzzer ekleyerek cihazı bulmayı kolaylaştırabilirsiniz.
  • Cihazı daha şık bir kutuya yerleştirebilirsiniz.

Sonuç

Bu yazımızda, Arduino ve Bluetooth kullanarak kendi AirTag benzeri takip cihazımızı yapmayı öğrendik. Umarım bu proje size ilham verir ve Arduino dünyasına yeni bir kapı açar. İyi eğlenceler!

Sorularınız veya yorumlarınız varsa, lütfen aşağıya yazmaktan çekinmeyin.

Gelecek projelerde görüşmek üzere!

```

0 yorum:

Arduino ile Deprem Alarmı Yapımı: Güvenliğiniz İçin İlk Adım

Arduino ile Deprem Alarmı Yapımı: Güvenliğiniz İçin İlk Adım

Arduino ile Deprem Alarmı Yapımı: Güvenliğiniz İçin İlk Adım

Merhaba sevgili okuyucular! Günümüzde depremlerin sıkça yaşandığı bir coğrafyada yaşıyoruz ve bu durum, güvenlik önlemlerini her zamankinden daha önemli hale getiriyor. Bu yazımızda, basit ama etkili bir çözüm olan Arduino ile deprem alarmı yapımını adım adım anlatacağız. Bu proje sayesinde, olası bir sarsıntıyı erkenden fark edip gerekli önlemleri alabilirsiniz.

Neden Arduino ile Deprem Alarmı Yapmalıyız?

Arduino, düşük maliyeti ve kolay programlanabilir yapısı sayesinde elektronik projeler için mükemmel bir platformdur. Evde basit bir sismik sensör kullanarak, profesyonel cihazlara yakın bir hassasiyetle deprem algılama sistemi kurabilirsiniz. Üstelik bu proje, elektronik bilgisi olmayanlar için bile kolayca uygulanabilir.

Gerekli Malzemeler

Bu projeyi hayata geçirmek için aşağıdaki malzemelere ihtiyacınız olacak:

  • Arduino Uno (veya benzeri bir Arduino kartı)
  • Titreşim Sensörü (SW-420 veya benzeri bir model)
  • Buzzer (Sesli alarm için)
  • Jumper kablolar
  • Breadboard (Opsiyonel, kolay bağlantı için)

Bağlantılar ve Devre Şeması

Şimdi malzemelerimizi hazırladığımıza göre, devre bağlantılarını yapalım:

  • Titreşim Sensörü VCC pini -> Arduino 5V pinine
  • Titreşim Sensörü GND pini -> Arduino GND pinine
  • Titreşim Sensörü DO (Digital Output) pini -> Arduino Dijital Pin 2'ye
  • Buzzer (+) pini -> Arduino Dijital Pin 8'e
  • Buzzer (-) pini -> Arduino GND pinine

Bu bağlantıları yaptıktan sonra, devremiz hazır hale gelecektir.

Arduino Kodu

Şimdi sıra geldi Arduino koduna. Aşağıdaki kodu Arduino IDE'sine kopyalayıp, Arduino kartınıza yükleyin:


// Define pin numbers
const int sensorPin = 2;     // Digital pin connected to sensor output
const int buzzerPin = 8;     // Digital pin connected to buzzer

// Variables
int sensorValue = 0;         // Variable to store the sensor value

void setup() {
  pinMode(sensorPin, INPUT);   // Set the sensor pin as input
  pinMode(buzzerPin, OUTPUT); // Set the buzzer pin as output
  Serial.begin(9600);        // Initialize serial communication for debugging
}

void loop() {
  // Read the sensor value
  sensorValue = digitalRead(sensorPin);

  // Print the sensor value to the serial monitor for debugging
  Serial.print("Sensor Value: ");
  Serial.println(sensorValue);

  // If the sensor detects vibration (LOW signal), activate the buzzer
  if (sensorValue == LOW) {
    digitalWrite(buzzerPin, HIGH); // Turn the buzzer ON
    delay(200);                     // Keep the buzzer on for 200 milliseconds
    digitalWrite(buzzerPin, LOW);  // Turn the buzzer OFF
    delay(200);                     // Wait for 200 milliseconds
  } else {
    digitalWrite(buzzerPin, LOW);  // Keep the buzzer OFF
  }

  delay(10); // Small delay to avoid reading too frequently
}

Bu kod, titreşim sensöründen gelen veriyi sürekli olarak okur. Sensör, titreşim algıladığında (LOW sinyali gönderdiğinde), buzzer'ı aktif hale getirir. Böylece bir sarsıntı olduğunda sesli bir uyarı almış olursunuz.

Kodu Açıklaması

  • sensorPin ve buzzerPin değişkenleri, sensör ve buzzer'ın bağlandığı Arduino pinlerini tanımlar.
  • setup() fonksiyonu, pinleri giriş veya çıkış olarak ayarlar ve seri iletişim başlatır.
  • loop() fonksiyonu, sensörden gelen değeri sürekli olarak okur ve buzzer'ı kontrol eder.
  • digitalRead(sensorPin) komutu, sensörden gelen dijital değeri okur.
  • digitalWrite(buzzerPin, HIGH) komutu, buzzer'ı aktif hale getirir.
  • delay() komutu, belirli bir süre beklemeyi sağlar.

Test ve Ayarlama

Kodu yükledikten sonra, sisteminizi test etme zamanı. Sensörü hafifçe sallayarak veya titreterek buzzer'ın çalıp çalmadığını kontrol edin. Eğer buzzer çalmıyorsa, bağlantılarınızı ve kodu tekrar kontrol edin. Sensörün hassasiyetini ayarlamak için, titreşim sensöründeki potansiyometreyi kullanabilirsiniz. Bu sayede, sisteminizi çevresel titreşimlerden etkilenmeyecek şekilde ayarlayabilirsiniz.

Öneriler ve İyileştirmeler

Bu projeyi daha da geliştirmek için aşağıdaki önerileri düşünebilirsiniz:

  • LCD ekran ekleyerek, sarsıntının şiddetini ve diğer bilgileri görsel olarak gösterebilirsiniz.
  • GSM modülü ekleyerek, sarsıntı algılandığında SMS yoluyla bildirim gönderebilirsiniz.
  • Daha hassas bir sismik sensör kullanarak, daha küçük sarsıntıları da algılayabilirsiniz.

Sonuç

Bu yazımızda, Arduino ile basit bir deprem alarmı yapımını adım adım anlattık. Umarım bu proje, sizin ve sevdiklerinizin güvenliği için faydalı olur. Unutmayın, güvenlik her zaman önceliğimiz olmalı. Bir sonraki projede görüşmek üzere!

Etiketler: Arduino, deprem alarmı, sismik sensör, güvenlik, proje, elektronik, diy, kendin yap, titreşim sensörü

0 yorum: