Raspberry Pi 3 ile MQTT protokolünün kullanımını ve/veya MFRC522 RFID okuyucu modülünün kullanımını anlatmak için mini bir proje hazırladım. Bu projeyi yapıp çalıştırdığınızda RFID okuyucunuz kartı okuyup doğrulama yaparak kapının açılıp kapanmasını kontrol edecek, aynı anda MQTT protokolü vasıtasıyla herhangi bir yerden kapının açılıp açılmadığını, açıldıysa kim açtı gibi bilgileri okuyabilmenize imkan sağlayacak. İlk olarak malzeme listemiz ile başlayalım.
Malzeme Listesi:
- 1x Raspberry Pi 3 Model B / B+
- 1x MFRC522 13.56 MHz RFID Modül + 13.56 MHz RFID Tag / Kart
- 1x Lojik Gerilim Seviye Yükseltici
- 1x 5v Optoizolatörlü Röle Modül
- Yeterli sayıda Jumper Kablo
Devre Şeması:
MFRC522 RFID Modülünün Raspberry Pi’a bağlanması
MFRC522 RFID Modül | Raspberry Pi 3 |
3v3 | 3v3 |
RST | GPIO 25 |
GND | GND |
IRQ | GPIO 24 |
MISO | GPIO 9 |
MOSI | GPIO 10 |
SCK | GPIO 11 |
SDA | GPIO 8 |
Röle Modülünün ve Lojik Gerilim Seviye Yükselticinin Raspberry Pi’a bağlanması
Lojik Gerilim Seviye Yükseltici | Raspberry Pi 3 | Röle Modülü |
LV | 3v3 | — |
HV | 5v | (+) Pin |
GND | GND | (-) Pin |
LV1 | GPIO 4 | HV1 |
Devre kurulduktan sonra yazılım kısmına geçilir. Bundan sonraki anlatım Raspberry Pi üzerinde Raspbian Linux koşturulduğu varsayılarak devam edecektir.
İlk olarak terminal ekranı açılır ve sırasıyla şu komutlar gerçekleştirilir:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install mosquitto mosquitto-clients
sudo systemctl enable mosquitto
sudo pip install pi-rc522 paho-mqtt
Raspberry Pi’yi yeniden başlattıktan sonra bir metin editörü ile (bkz. nano) kodu yazabilirsiniz. Programı yazarken kullandığımız dil Python’un 2.7 versiyonu. Kodu Raspberry Pi içinde gelen Python IDE’si ile yazmamamızın sebebi ise o IDE’nin Python 3’ü esas almasından kaynaklıdır.
Kodu Raspberry Pi’nize kolayca indirmek için şu komutu terminal ekranına yazın:
wget https://raw.githubusercontent.com/prdsmehmetstc/Marmara-University/master/marun-rfid.py
Kodu yukarıda verilen linkten indirdikten sonra terminal ekranına geçip kodu kaydettiğiniz dizine girin ve “python marun-rfid.py
” komutunu girin. Devre kurulu ise ve Raspberry Pi’ınız internete bağlı ise program sorunsuz çalışmaya başlayacaktır.
Artık yalnızca tek bir şey kaldı, o da kartımızı sisteme tanıtmak. Programı çalıştırdığınızda kartı okutun. Doğal olarak kabul etmeyecektir, çünkü kartınız sistemde tanımlı değil. Ancak terminal ekranına kartınızın UID değerini, yani bir nevi “kimlik numarasını” yazdıracaktır.
Bu değeri kopyalayıp koddaki “if kart_uid == "112 253 138 166 161":
” satırının tırnak içindeki kısmına yapıştırmanız gerekiyor. Bu işlemi de yaptıktan sonra kodu kaydedip sistemi çalıştırmaya tamamen hazırız. Ayrıca isteğe bağlı olarak bu değiştirdiğimiz satırın hemen altındaki iki satırda da değişiklik yapabilirsiniz. Ben varsayılan olarak “Hos Geldiniz, Kart Sahibi.
” ve “Kart Sahibi kapiyi acti!
” yazdım. Dilerseniz buraya kendi isminizi veya istediğiniz bir metni yazabilirsiniz.
Şimdi ise bu çıktıları bir MQTT client üstünden okuyalım. Android cihazlardan MyMQTT uygulaması vasıtasıyla, internetten MQTTLens vasıtasıyla veya mosquitto kurulu Linux makinelerde terminal aracılığıyla çıktıları aynı ağa bağlı olma zorunluluğu olmadan anlık olarak okuyabilirsiniz. Linux makineler için terminale girilecek komut:
mosquitto_sub -h iot.eclipse.org -t "/marun/rfid"