RFID(MFRC522) İncelemesi Hakkında Kısa Kısa

Başlatan MrDarK, 01 Mayıs 2014, 15:17:30

M_B

Alıntı yapılan: AsHeS - 26 Kasım 2014, 16:33:16
Hocam İstanbul'da iseniz kendi okuduğum ID sini bildiğim kartlardan birini size verebilirim.
Hocam istanbuldayim.hatta benim karti bile deneyebiliriz eger modulunuz duruyorsa.
Avrupa yakasindayim.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Yazilim

MFRC522 pinlerini pic e direkmi bağlıyorsunuz ? pic5volt modül 3.3 volt

MrDarK

Transistörler ile level shifter yapılmalı, veya direnç ile gerilim bölücü yapılabilir bazı pinlere.
Picproje Eğitim Gönüllüleri ~ MrDarK

murat34

Merhaba arkadaşlar
altta linkini verdiğim kodları denedim ama çalışmadı
kodda kullanılan işlemci 16F887 ben 16f877A kullandım bundan dolayı olabilirmi acaba ?.

http://simplesoftmx.blogspot.com.tr/2014/11/libreria-para-usar-lector-rfid-rc522.html

MrDarK

Alıntı yapılan: murat34 - 17 Aralık 2014, 23:12:13
Merhaba arkadaşlar
altta linkini verdiğim kodları denedim ama çalışmadı
kodda kullanılan işlemci 16F887 ben 16f877A kullandım bundan dolayı olabilirmi acaba ?.

http://simplesoftmx.blogspot.com.tr/2014/11/libreria-para-usar-lector-rfid-rc522.html


Mesela nesi çalışmadı ? Bu şekilde sorduğunuz sorulara anlamlı yanıtlar beklemeyin :) Müneccim değiliz yada elektronikte şapkadan tavşan çıkmıyor :)
Picproje Eğitim Gönüllüleri ~ MrDarK

stm

@MrDark  hocam diğer konuya yazmıştım siz buraya yönlendirdiniz diye şimdi buraya yazıyorum yazdıklarınızı en baştan okudum ama yine çözemedim. kodlarımı ekliyorum . nerde hata yapıyorum acaba.
birde key A key B nedir bu alanları ne amaçla kullanıyoruz.



#include <Built_in.h>
//copie e cole o código da biblioteca aqui!!!
//O Teste foi feito com cartões MIFARE 1K
sbit MFRC522_CS at RD4_Bit;
sbit MFRC522_Rst at RD3_Bit;
sbit SoftSPI_SDO at RD1_Bit;
sbit SoftSPI_CLK at RD0_Bit;
sbit SoftSPI_SDI at RD2_Bit;
sbit MFRC522_CS_Direction at TRISD4_Bit;
sbit MFRC522_Rst_Direction at TRISD3_Bit;
sbit SoftSPI_SDO_Direction at TRISD1_Bit;
sbit SoftSPI_CLK_Direction at TRISD0_Bit;
sbit SoftSPI_SDI_Direction at TRISD2_Bit;
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
char key[6] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
char writeData[] = "Microcontrolandos";
void main()
{
char msg[12];
char UID[6];
unsigned TagType;
char size;
char i;
//Desativa as Portas Analogicas
ADCON1 = 0x0F;
//Inicializa Soft SPI
Soft_SPI_Init();
//Inicializa display
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
//inicializa o modulo RFID
MFRC522_Init();
while(1)
{
//Verifica se há algum cartão
if( MFRC522_isCard( &TagType ) )
{
Lcd_Cmd(_LCD_CLEAR);
//Exibe o tipo do cartão no display
ByteToHex( Lo(TagType), msg );
ByteToHex( Hi(TagType), msg+2 );
Lcd_Out( 1, 1, "TAG TYPE: " );
Lcd_Out_CP( msg );
//Faz a leitura do numero de serie
if( MFRC522_ReadCardSerial( &UID ) )
{
//Posiciona o cursor
Lcd_Out( 1, 1, "" );
for( i=0; i < 5; i++)
{
ByteToHex( UID[i], msg );
Lcd_Out_CP( msg );
}
size = MFRC522_SelectTag( &UID );
}
//Posiciona o cursor
Lcd_Out( 2, 1, "" );
//Tenta realizar a autenticação A do setor 1( blocos: 4 - 7 )
//bloco de autenticação é o 7
if( MFRC522_Auth( PICC_AUTHENT1A, 7, &key, &UID ) == 0 )
{
//Escreve algo no bloco 4
MFRC522_Write( 4, &writeData );
}
else if( MFRC522_Auth( PICC_AUTHENT1B, 7, &key, &UID ) == 0 )
{
//Escreve algo no bloco 4
MFRC522_Write( 4, &writeData );
}
else
{
Lcd_Out_CP( "Erro" );
continue;
}
//Faz a leitura do bloco 4
if( MFRC522_Read( 4, &writeData ) == 0 )
{
Lcd_Out( 2, 1, &writeData );
}
//Estado de hibernação
MFRC522_Halt();
}
}
}



MrDarK

Alıntı yapılan: stm - 19 Ocak 2015, 21:03:28
@MrDark  hocam diğer konuya yazmıştım siz buraya yönlendirdiniz diye şimdi buraya yazıyorum yazdıklarınızı en baştan okudum ama yine çözemedim. kodlarımı ekliyorum . nerde hata yapıyorum acaba.
birde key A key B nedir bu alanları ne amaçla kullanıyoruz.


stm selam; A ve B keyleri çeşitli güvenlik seviyeler için kullanılmak üzere hazırlanmış. Kodlarını incelemedim zaten baksamda sorunun ne olduğunu söylemiyorsun. Çalışmıyor bir sorun değil ne yazık ki :) İlk mesajımdaki yönergeleri eğer okuduysan şöyle bir yapı var mifare sistemlerde. Yazmak için sector trailer denen bölgelerden izin almak zorundasın bunlar okuma yada şifreli işlem yapma olabilir. Elindeki kart eğer sıfır bir kart ise key değerleri default değerdedir. Bu keyler ile sector trailerden izin alıp verini göndermek istediğin sectore atıp kayıtlandığına emin ol.

Dikkat : Eğer bir şekilde sector trailer'a key değiştirmek veya yanlışlıkla erişim sebebiyle erişip oradaki bilgileri kafanıza göre değiştirirseniz kartın o sectorü yalan oluyor bilesiniz.
Picproje Eğitim Gönüllüleri ~ MrDarK

stm

@MrDarK  hocam cevap için teşekkürler  biraz daha kafa yormam gerekiyor sanırım  bu arada bu kart moda oldu çoğu kişi almış çözmeye çalışıyor.
eklediğim kodlara şöyle bir göz ucuyla baksakıp bir yorumda bulunsaydınız iyi olurdu aslında.:)


MrDarK

Alıntı yapılan: stm - 20 Ocak 2015, 21:02:31
@MrDarK  hocam cevap için teşekkürler  biraz daha kafa yormam gerekiyor sanırım  bu arada bu kart moda oldu çoğu kişi almış çözmeye çalışıyor.
eklediğim kodlara şöyle bir göz ucuyla baksakıp bir yorumda bulunsaydınız iyi olurdu aslında.:)

Eklediğin kod benim ilk sayfada anlattığım akış diyagramlarını işlemiş önce A keyi ile izin istemiş MI_OK cevabını alamazsa B keyi ile denemiş bir şekilde izin alırsa veri yazmış. Hiç birşey yapamaz ise error döndürmüş. Durumlarıda LCD'de yazdırmış.
Picproje Eğitim Gönüllüleri ~ MrDarK

moksan

Haliyle çalışan,denenmiş MFRC522 için PIC16F877  CCS C ile yazılmış kod varsa paylaşabilirmisiniz?

mcn

Konuyu az biraz hortlatmış olucam ama gerçi pek de eski konu değil.

Modülün algılama mesafesini arttırmak için ne yapılabilir? Bu şekilde bir çalışma yapan oldu mu?
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

MrDarK

#56
Hocam zannetmiyorum algılama mesafesini yükseklik olarak değilde genişlik olarak arttırabilirsin. Mifare Classic max 5-6cm arasından haberleşebiliyor. Farklı entegreler var ismini hatırlamıyorum onları kullanırsan mesafe daha da artacaktır. MFRC522 ile bunu yapman pek olası değil bence.

Mifare kullanmayacaksan eğer standart RFID Kullanabilirsin;
http://www.soselectronic.com/?str=1719&article=with-the-id3la-rfid-module-it-s-possible-to-read-a-tag-up-to-30cm
Picproje Eğitim Gönüllüleri ~ MrDarK

bbk

lütfen "stm32f103" için "MFRC522" kütüphanesi sizde var mı ?
lütfen yardimcı olunuz.

teşekkür ederim


bbk.bstn@gmail.com

Mucit23

Selamlar

Yeni konu açmak istemedim ama konuyla ilgili aşağı yukarı aynı sorunu yaşamaktayım. Tilen'in STM32F4 için düzenlemiş olduğu RC522 kütüphanesini bende STM32F103de çalışacak şekilde SPI fonksiyonlarını vs düzenledim. Şuan modül ile haberleşmemde sıkıntı yok. Kart Yaklaştırdığımda kartı tespit edip ID'sini okuyabiliyorum.

Kart içerisine blok yazma ve okuma işlemlerini denemeye çalışıyorum. İlk başta yazma okuma yapmak için Kart sorgulamadan sonra ilgili odacığa key ile giriş yapmak gerekiyor.Ben kartı tespit ediyorum ama bu aşamada başarılı olamıyorum.

if (TM_MFRC522_Check(CardID) == MI_OK) 
{
	printf( "[%02x-%02x-%02x-%02x-%02x] \r\n", CardID[0], CardID[1], CardID[2], CardID[3], CardID[4]);
	if( (TM_MFRC522_Auth(PICC_AUTHENT1B,1,KEY,CardID) == MI_OK))
           printf("OK");
       else 
	   printf("FAILED\n\n");
}

TM_MFRC522_Auth işlemi sürekli fail olarak sonuçlanıyor. Key defaul olarak 6 adet 0xFF

Atladığım bir nokta varmı forumda birkaç kişi daha bu sorunu yaşamış sanırım. Blok okuma yazma için basit bir örnek vermeniz mümkün mü?

MrDarK

Hocam selamlar, kod örneği vermeden önce kartın okumak istediğiniz yerini mobil bir uygulama indirip okuyabilirseniz ilgili bloğun anahtarının 6 byte ff olup olmadığını anlamış oluruz diye düşünüyorum.
Picproje Eğitim Gönüllüleri ~ MrDarK