Arduino
OKUDUĞUNUZ KONU
Visual C# ve Arduino ile RFID Kart Seri Numarası Öğrenme
7

Visual C# ve Arduino ile RFID Kart Seri Numarası Öğrenme

Yazar : Ulaş Tutcu25 Ocak 2017

Merhabalar , İlk yazımı “Visual C# ve Arduino ile RFID Kart ID Uygulaması” ile yazıyorum;

Programın amacına gelirsek. RFID Modülü ile Kartın Seri Numarasını öğrenmek için yapacağımız ufak ve kolay bir program. Program görselliği ve geliştirme açısından fikirlere açıktır.

Malzemeler

  • Arduino(R3 Klon Modelini kullandım)
  • RFID-RC522( veya daha üst modelleri)
  • Jumper Kablo

Arduino Kodları:


#include<RFID.h>
#include<SPI.h>

RFID rfid(10,9);

void setup()
{
Serial.begin(9600);

SPI.begin();
rfid.init();

}

void loop()
{
if(rfid.isCard())
{
if(rfid.readCardSerial())
{
Serial.print(rfid.serNum[0]);
Serial.print(" ");
Serial.print(rfid.serNum[1]);
Serial.print(" ");
Serial.print(rfid.serNum[2]);
Serial.print(" ");
Serial.print(rfid.serNum[3]);
Serial.print(" ");
Serial.println(rfid.serNum[4]);
}
rfid.halt ();
}
}

C# Uygulaması:

Bu Projede ben 2 Adet Form kullandım

  • Form1 (Giriş Ekranı)
  • Form2 (Seri Numaranın gösterileceği form)

Form1’e Eklenecek Nesneler:

  • comboBox
  • Buton

COM Port Listeleme

Form1_Load içine yazılacak olan kodlar “for döngüsü” ile  COM Port listelemesi için


private void Form1_Load(object sender, EventArgs e)
 {
for (int i = 0; i &lt;System.IO.Ports.SerialPort.GetPortNames().Length; i++)
{
comboBox1.Items.Add(System.IO.Ports.SerialPort.GetPortNames()[i]);
}
}

Buton İçine Eklenecek Kodlar:


Form2 rfid = new Form2();
rfid.serialPort1.PortName = comboBox1.Text;
rfid.serialPort1.Open();
this.Hide();
rfid.Show();

Burada buton ile Form2’yi belittik,Form2 içinde ki serialPort’u açtık,Giriş ekranını gizleyip,Form2’yi ekranda gösterdik.

Bundan sonra ise Projemize ikinci bir Form ekliyoruz, Bunuda,Visual Studio üst menüden;

Project/Add Windows Form/Windows Form/Add , ile ekliyoruz

Form2’ye Eklenecek Nesneler;

  • SerialPort eklentisi (Modifiers kısmından “Public” olmalı)
  • Label (Modifiers kısmından “Public” olmalı)
  • Buton

Form2 İçinde Kullanılan Kütüphaneler:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;

Form2 İçine Yazılacak Olan Kodlar;

Form2_Load içine yazılacak


Control.CheckForIllegalCrossThreadCalls = false;

“Çapraz iş parçacığı” hatasını almamak için Thread çıkışlarını kapatıyoruz.

Arkadaşlar şimdiki işlemde dikkat etmemiz gereken bir nokta var.Form2’ye eklediğimiz serialPort nesnesine bir kere tıklıyoruz. Modifiers özelliğini “Public” yaptıktan sonra, Events(Şimşek ikonu) tıklıyoruz, “Data Received” sekmesine çift tıklıyoruz ve kodlama sayfamız otomatik olarak açılıyor

Bu kısımda ekleyeceğimiz kod (Kart Serial Numarasını Bu Kodla Öğreneceğiz);

serialPort1_DataReceived altına yazılcak olan kod


label1.Text = (serialPort1.ReadLine());

Buton İçine Yazılacak Olan Kod:


serialPort1.Close();
Application.Exit();

serialPort veri alışını ve programımızı kapattık

SİZCE NASIL OLMUŞ?
Beğendim
71%
İlginç
14%
Eh İşte
0%
Anlamadım
0%
Kötü
4%
Berbat
11%
YAZAR HAKKINDA
Ulaş Tutcu
Ulaş Tutcu
Küçüklükten beri Elektrik ve Elektroniğe ilgim var. Yaklaşık 2 sene önce Arduino ile tanıştım. Kodlama ve elektronik bilgi üzerine hiç bir eğitim almadan tamamen okuyarak,deneyerek kendimi geliştirmeye devam ediyorum.
7 YORUMLAR
  • Muhammet Yiğit KAYA
    4 Mart 2017 at 20:09

    süslü parantez hataları veriyor ve system.ıo.ports kodununda da bi hata veriyor c#da

  • Muhammet Yiğit KAYA
    4 Mart 2017 at 20:12

    arduino kodlama kısmında da RFID kütüphanesini bulamıyor. internetten indiridim adı MFRC522. klasörün adını değiştrisem düzelir mi

  • Muhammet Yiğit KAYA
    4 Mart 2017 at 20:31

    Arduino kısmında bu hatayı alıyorum neden acaba yardım edin lütfen pazartesiye kadar yetiştirmem lazım –> Arduino:1.8.1 (Windows 8.1), Kart:”Arduino/Genuino Uno”

    C:\Users\KAYA\AppData\Local\Temp\arduino_modified_sketch_905446\sketch_mar04a.ino: In function ‘void setup()’:

    sketch_mar04a:11: error: ‘class MFRC522’ has no member named ‘init’

    rfid.init();

    ^

    C:\Users\KAYA\AppData\Local\Temp\arduino_modified_sketch_905446\sketch_mar04a.ino: In function ‘void loop()’:

    sketch_mar04a:17: error: ‘class MFRC522’ has no member named ‘isCard’

    if(rfid.isCard())

    ^

    sketch_mar04a:19: error: ‘class MFRC522’ has no member named ‘readCardSerial’

    if(rfid.readCardSerial())

    ^

    sketch_mar04a:21: error: ‘class MFRC522’ has no member named ‘serNum’

    Serial.print(rfid.serNum[0]);

    ^

    sketch_mar04a:23: error: ‘class MFRC522’ has no member named ‘serNum’

    Serial.print(rfid.serNum[1]);

    ^

    sketch_mar04a:25: error: ‘class MFRC522’ has no member named ‘serNum’

    Serial.print(rfid.serNum[2]);

    ^

    sketch_mar04a:27: error: ‘class MFRC522’ has no member named ‘serNum’

    Serial.print(rfid.serNum[3]);

    ^

    sketch_mar04a:29: error: ‘class MFRC522’ has no member named ‘serNum’

    Serial.println(rfid.serNum[4]);

    ^

    sketch_mar04a:31: error: ‘class MFRC522’ has no member named ‘halt’

    rfid.halt ();

    ^

    “MFRC522.h” için birden fazla library bulundu
    Kullanılıyor: C:\Users\KAYA\Documents\Arduino\libraries\RFID
    Kullanılmıyor: D:\Arduino\libraries\RFID
    Kullanılmıyor: D:\Arduino\libraries\RFID
    Kullanılmıyor: D:\Arduino\libraries\RFID
    Kullanılmıyor: D:\Arduino\libraries\RFID
    exit status 1
    ‘class MFRC522’ has no member named ‘init’

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • ahmet
    20 Ekim 2017 at 10:24

    rfid kütüphanesi bulunamıyor hatası alıyorum.Library de öyle bir kütüphane yok

  • ahmet
    24 Ekim 2017 at 15:21

    rfid.init(); hata veriyor.

YORUM YAP