NodeMCU serimize kaldığımız yerden devam ediyoruz. Geçen sayıda DHT11 sensörünü kullanarak bir web sayfası üzerinden sıcaklık ve nem değerlerini nasıl okuruz, onu öğrenmiştik. Bu sayıda ise RC522 RFID okuyucu kullanarak kartlı geçiş sistemi yapacağız. Bu projeyi farklı şekillerde de kullanmak mümkün. Mesela kartları bir tetik mekanizması olarak kullanabilirsiniz.

Öncelikle ihtiyacımız olan malzemeler şunlar:

  • 1 adet NodeMCU DevKit
  • 1 adet RC522 RFID Okuyucu Modül
  • 1 adet Kırmızı, 1 adet Yeşil LED
  • 2 adet 330 Ω (ohm) Direnç
  • 1 adet Buzzer
  • 1 adet Breadboard
  • Yeteri kadar kablo
NodeMCU DevKit

Peki, neden NodeMCU kullanıyoruz?

Cevabı çok basit, çünkü NodeMCU küçük, ucuz ve güçlü bir cihaz. Yaklaşık 40-50 TL civarı bir fiyatı var.

Öntanımlı olarak 80 MHz hızında çalışıyor. Ancak, istenirse 160MHz hızında da çalışma kapasitesine sahip. Karşılaştırma yapmak gerekirse Arduino Uno’da bulunan ATmega328’de ise bu hız sadece 16 MHz.

Kartın en büyük özelliklerinden biri ise gömülü gelen WiFi modülü.

Böylesine güzel bir cihazın dezavantajlarından da bahsetmeden geçmek olmaz tabii. Mesela pin sayısı az, ancak küçük boyutlara inince pin sayısından feragat etmek kaçınılmaz oluyor. Yine küçük boyuttan dolayı kartta kısa devre koruması yok. Bu da demek oluyor ki yanlış bir bağlantı yaptığınızda veya vücudunuzda oluşması muhtemel olan statik elektrikten dolayı kartın kalıcı olarak arızalanması son derece olası. Bu nedenle devre kurulumu esnasında mümkün olduğunca dikkatli olmanızda fayda var. Son bir not: “Kesinlikle enerji altındayken devre kurmaya çalışmayın!”

Haydi Başlayalım!

Malzeme listemizi hazırladıktan ve NodeMCU hakkında birkaç temel şeyi öğrendikten sonra artık başlamaya hazırız. İlk olarak NodeMCU’yu Arduino IDE’si ile birlikte kullanmak için bazı işlemler yapmamız gerekiyor. Bunlarla başlayalım. Tabii bu aşamaları önceki yazılarda yapmış olanların yapmasına gerek yok. Yalnızca Aşama 3’te anlatmış olduğum güncelleme işlemine bir göz atmanız gerekiyor.

Aşama 1

Arduino IDE’sini NodeMCU ile kullanabilmek için öncelikle GNU/Linux tabanlı dağıtımlar harici bir işletim sistemi kullanıyorsanız https://goo.gl/hhkua7 adresinden NodeMCU sürücülerini kurmanız gerekiyor. GNU/Linux kullananlar bu konuda avantajlı, güncel dağıtımların hemen hemen hepsinde bilgisayarınıza takar takmaz sistem otomatik olarak tanıyor ve kullanıma hazır hale geliyor.

Windows kullanıcılarının karşısına şu aşamada aşağıdaki gibi bir ekran geliyor. “INSTALL” yazan butona tıklarsanız program otomatik olarak bilgisayarınıza sürücüleri kuracaktır.

Windows kullanıcıları için sürücü kurulum ekranı

Aşama 2

Bir önceki aşamada bilgisayarımıza NodeMCU’yu nasıl tanıtacağımızı öğrendik. Şimdi ise Arduino IDE’sine nasıl tanıtacağımızı öğreneceğiz. Bunun için ilk olarak, kurulu değilse Arduino IDE’sine ihtiyacımız var. https://www.arduino.cc/en/Main/Software adresinden sisteminize uygun olanı indirmelisiniz. Kurulumu biraz uzun sürüyor.

Kurulum tamamlandığında ise Dosya > Tercihler kısmına girin. Karşınıza aşağıdaki gibi bir ekran gelecektir.

Arduino IDE Tercihler ekranı

Eğer sıfır kurulum yaptıysanız muhtemelen sizde “Satır numaralarını göster” kısmı işaretli olmayacaktır. Ayrıca “Ek Devre Kartları Yöneticisi URL’leri” kısmı da bomboş olacaktır. Satır numaralarının gösterilmesi işinizi oldukça kolaylaştıracağından tavsiyem o kutucuğu işaretlemeniz yönünde. Ek Devre Kartları Yöneticisi URL’leri kısmına da “http://arduino.esp8266.com/stable/package_esp8266com_index.json” adresini yazıp Tamam’a basarsanız artık birkaç işlemden sonra NodeMCU ve Arduino IDE’si birbirlerini tanımaya başlayacaktır.

Aşama 3

Şimdi ise Araçlar > Kart > Kart Yöneticisi kısmına girip en alta inin. Görselde görüldüğü gibi ben daha önceden kurdum. Siz de “Kur” butonuna basarak kurulumu gerçekleştirebilirsiniz. İnternet bağlantınızın hızına bağlı olarak bu sürecin uzunluğu değişebilir.

Arduino IDE Kart Yöneticisi ekranı

Önemli! Eğer daha önceden kurulum yaptıysanız ve henüz kartın güncellemesini yapmadıysanız bir önceki aşamada anlattığım gibi yine aynı yolu izleyip “Güncelle” butonuna basmanız gerekiyor. Aksi halde NodeMCU’ya program atamıyorsunuz. Ancak bu güncelleme ile gelen özellikler gerçekten çok hoş. Mesela artık ekstra kod yazmadan ESP’nin içindeki flash’ı kısmen veya tamamen temizleyebiliyoruz. Böylece istersek daha önceden kayıtlı ağ bilgileri dahil her şeyi silebiliyor ve NodeMCU’muzu ilk günkü haline döndürebiliyoruz. Bir nevi format gibi 🙂

Arduino IDE ESP8266 Kart Güncelleme İşlemi

Güncelleme tamamlandıktan sonra ise aşağıdaki gibi bir görüntü görmeniz gerekiyor.

Arduino IDE ESP8266 Kart Güncelleme İşlemi Sonucu

Aşama 4

Şimdi ise kartınızı seçip kodu atmaya hazır hale getirmeli ve gerekli konfigürasyonu yapmalısınız. Bunun için Araçlar > Kart kısmına girip NodeMCU 1.0 kartını seçmelisiniz. Daha sonra ise resmin alt kısmında ve birazdan kodun üst kısmında da göreceğiniz gibi ayarları düzenlemelisiniz. NodeMCU, varsayılan olarak 80 MHz frekansında çalışır. İstendiği takdirde 160 MHz frekansına ayarlanabilir. Bu parametreyi değiştirerek daha fazla performans elde edebilirsiniz. Ancak frekansı artırdığınızda daha fazla akım çekeceğinden güç tüketiminde de artışa sebep olacaktır. Eğer güç probleminiz yoksa 160 MHz frekansında rahatça çalıştırabilirsiniz. Isınma sorunundan kesinlikle endişe etmeyin. Şu ana kadar birçok projede kullanmama ve cihazı uzun süre yük altındayken açık bırakmama rağmen herhangi bir ısınma söz konusu olmadı.

Arduino IDE Araçlar menüsü

Aşama 5

Şimdi, RFID modülü için gerekli olan kütüphaneleri kuralım. Kütüphane kurulumu için Taslak >library ekle > .ZIP Kitaplığı Ekle… yolunu izleyerek https://tinyurl.com/ycalp6r6 adresinden indireceğiniz .zip dosyasını seçmelisiniz. Böylece kütüphane kurulmuş olacak.

Arduino IDE Taslak >library ekle menüsü

Aşama 6

Şimdi ise devremizi kuralım 🙂 Devre şemasını aşağıda görebilirsiniz. Şemada RFID okuyucu ve NodeMCU arasındaki bağlantıları da yazdım. Ek olarak D1 pini Yeşil LED’eD2 pini Kırmızı LED’e ve D8 pini de Buzzer’a bağlanması gerekiyor.

NodeMCU MFRC522 RFID
Devre şeması

Aşama 7

Bu aşamada artık kod kısmına geçiyoruz. Kodumuzu da attıysak birkaç ufak ayrıntıdan sonra sistemimiz çalışmaya hazır hale gelecek. Kodu indirebileceğiniz adresi aşağıya yazdım.

Kodu indirmek için: https://tinyurl.com/y9mn2kzd

Kodumuz

Aşama 8

Kodumuzu da başarılı bir şekilde yükledikten sonra giriş için tanımlamak istediğimiz kartın UID etiketini, yani bir nevi kimliğini öğrenmemiz ve bu değeri kodumuzun 60. satırında bulunan alana yazmamız gerekiyor. İndirdiğiniz haldeki kodda bulunan değer benim daha önce bu projeyi oluştururken tanımladığım kartımın UID etiket değeri.

Tanımlamak istediğimiz kartımızın UID etiketini öğrenmek için ilk önce seri portu açıyoruz ve baud rate değerini 9600 olarak ayarlıyoruz. Ardından, tanımlamak istediğimiz kartı okutuyoruz. Doğal olarak bu kart henüz tanımlı olmadığından girişi onaylamayacak ve alarm verecektir. Seri porttaki çıktının en üstünde, okunan kartın UID etiketi yazar. Bu değeri kopyalayıp kodun 60. satırında bulunan kısma yapıştırmanız ve ardından kodu tekrar NodeMCU’ya yüklemeniz gerekiyor.

Değiştirmeniz gereken alanı görselde işaretledim.

Kodun 60. satırında bulunan değiştirilmesi gereken kısım

Bir sonraki görselde ise yukarıdaki işlemleri sorunsuz yaptıysanız verilecek olan çıktıların bir örneğini görebilirsiniz.

Seri port üzerinden alınacak örnek çıktılar

Aşama 9

Bir yazının daha sonuna geldik. Umarım faydalı olabilmişimdir. 

Projenin tüm dosyalarını https://tinyurl.com/y9hfkpba adresinden bulabilirsiniz. Çırak Dergi’de yazdığım tüm yazıların kaynak dosyalarını GitHub’ta açık kaynak olarak yayınlıyorum. Bu sayede projeler geliştirmeye ve yayına açık oluyor.

Sorularınız ve/veya önerileriniz varsa, info@mehmetsutcu.com adresine mail atarsanız en kısa sürede geri dönüş sağlayacağımdan emin olabilirsiniz. Ayrıca birçok sosyal mecrada da “prdsmehmetstc” diye aratırsanız kişisel hesabımı bulabilir, bu yolla da iletişime geçebilirsiniz.

Geliştirmeye devam!

Çırak Dergisi için yazılmıştır.


Mehmet SÜTCÜ

Pisi Linux Tasarım Ekip Lideri, Özgür Yazılımcı, Teknik Yazar, Maker, Elektronikçi ve Eğitmen. Küçüklükten zehri almış sıkı bir Linux kullanıcısı. @prdsmehmetstc kullanıcı adı ile bilinir ve tanınır. 2021 yılı itibariyle Pardus Topluluk Yöneticisi görevini üstlenmekte.