aurdiuno ve Rfid kontür yükleme ve düsme sorunu

sadoazb

Üye
Katılım
26 Ara 2009
Mesajlar
159
Puanları
1
Yaş
52
arkadaşlar internetdeki örneklerden faydalanarak rfid kartın id'sini okuma ve tanımı işlemlerini öğrendim.
yapmaya çalıştığım deneme projede 1 kontür 1 tl anlamına gelecek ve karta örnegin 20 tl yani 20 kontür yüklemiş olacağım

kartı her okuttugumda 1 tl düşecek

bu konuda örnek bulamadım veya yanlış arama yapıyorum. yardımcı olabilecek var mı acaba?
saygılarımla.
 
popcard uygulamasını inceledim arasından melody olayını çözdüm fakat burda rfid kart haricinde ip numarası olan başka bir cihazla haberleşiyor hangisinde rfid yazma işlemi yapmış çözemedim

aşagıdaki bölümleri yarın kurcalayacağım..
Kod:
[B]void[/B] checkRFID()

[B]{[/B]
// Check the serial port [B]for[/B] data from the RFID module.
[B]if[/B] (Serial.available() > 0)

[B]{[/B]
byte d = Serial.read();

[B]switch[/B] (d)
[B]{
case[/B] 0x02: // Start of transmission

serPos = 0;
[B]break[/B];
[B]case[/B] 0x03: // End of transmission

readTag();
[B]break[/B];
[B]default[/B]: // Add to buffer.
serRead[serPos] = d;

serPos++;
[B]}
}
}[/B]

[B]void[/B] readTag() // Parse the data from a card.

[B]{[/B]
serRead[10] = 0;
Serial.print("Card Read:");

Serial.println(serRead);

setMode(MODE_WAIT_NAME);


// Make a beep
buzz(NOTE_B4, 8);

buzz(NOTE_E5, 4);

// Ask the server who this is.
sendCommand('S', serRead);

// Turn off the RFID module.
digitalWrite(PIN_RFID_RESET, LOW);

[B]}[/B]
[code]

saygılarımla
 
Arduino'dan pek anlamam projeyi biraz inceledim mysql veri tabanın kullanıyor.
bu tür projelerde kredi bilgisini tutmak için web servisi yazmanız gerekli

aşağıda popcard projesinin mysql tabloları paylaşılmış
http://www.avbrand.com/projects/popcard/codeserver.asp
 
en son anlayacağım şekilde sadeleştirdim ama data kaydetme yapamıyorum eksik olan nedir acaba
kayıt yaparken herhangi bir pini 1 yapıyormuyuz acaba onumu atlıyorum.

saygılarımla

Kod:
#include <SPI.h>
#include <MFRC522.h>
#include <EEPROM.h>




#define RST_PIN 9
#define SS_PIN 10

byte readCard[4];
int successRead;

MFRC522 mfrc522(SS_PIN, RST_PIN);

MFRC522::MIFARE_Key key;

void setup()
{
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println("RFID KART KAYIT UYGULAMASI");
  Serial.println("--------------------------");
  Serial.println("Lutfen  karti okutun");
  Serial.println();

}

void loop()
{
  //yeni kart okununmadıkça devam etme
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  getID();  //kart ID oku
  delay(100);
  SektorOku(); //Sektör oku
  delay(100);
  SektorYaz();

  //**********************************************************************************
  delay(200);
}





///Rfid kartı id sini oku.
int getID() {

  Serial.print("Kart UID'si: ");
  //kartın UID'sini byte byte oku ve seri monitöre yaz
  for (int i = 0; i < mfrc522.uid.size; i++) {  //
    readCard[i] = mfrc522.uid.uidByte[i];
    Serial.print(readCard[i], HEX);
  }
  Serial.println("");
  //kart okumayı durdur ve 1 döndür (okuma başarılı)
  mfrc522.PICC_HaltA();
  return 1;
}

void SektorOku()
{
    // In this sample we use the second sector,
    // that is: sector #1, covering block #4 up to and including block #7
    byte sector         = 1;
    byte blockAddr      = 4;
    byte trailerBlock   = 7;
    byte status;
    byte buffer[18];
    byte size = sizeof(buffer);
   
    // Read data from the block
    Serial.print(F("Reading data into block ")); Serial.print(blockAddr);
    Serial.println(F(" ..."));
    status = mfrc522.MIFARE_Read(blockAddr, buffer, &size);  //sektörü oku buffer ata
    if (status != MFRC522::STATUS_OK) {
        Serial.print(F("Hata: "));
        Serial.println(mfrc522.GetStatusCodeName(status));
    }
    Serial.print(F("Okunan Data- (Blok)")); Serial.print(blockAddr); Serial.println(F(":"));
    dump_byte_array(buffer, 16); //gelen datayı diziye ata göster
    Serial.println();

}

void SektorYaz()
{
  byte blockAddr      = 4;
  byte dataBlock[]    = {
        0x01, 0x02, 0x03, 0x04, //  1,  2,   3,  4,
        0x05, 0x06, 0x07, 0x08, //  5,  6,   7,  8,
        0x08, 0x09, 0xff, 0x0b, //  9, 10, 255, 12,
        0x0c, 0x0d, 0x0e, 0x0f  // 13, 14,  15, 16
    };
    byte status;
    byte buffer[18];
    byte size = sizeof(buffer);
   
// Write data to the block
    Serial.print(F("Writing data into block ")); Serial.print(blockAddr);
    Serial.println(F(" ..."));
    status = mfrc522.MIFARE_Write(blockAddr, dataBlock, 16);  //dataBlock dizisindeki yeni değerleri karta yaz
    if (status != MFRC522::STATUS_OK) {
        Serial.print(F("Hata: "));
        Serial.println(mfrc522.GetStatusCodeName(status));
    }
    Serial.println();
}


/**
 * Helper routine to dump a byte array as hex values to Serial.
 */
void dump_byte_array(byte *buffer, byte bufferSize) {
    for (byte i = 0; i < bufferSize; i++) {
        Serial.print(buffer[i] < 0x10 ? " 0" : " ");
        Serial.print(buffer[i], HEX);
    }
}

[code]
 
mrb arkadaşlar kolay gelsin bende mıfare karta veri yazmayı araştırıyorum bir gelişme varsa paylaşmanız mumkun olur mu acaba
 

Forum istatistikleri

Konular
129,835
Mesajlar
930,600
Kullanıcılar
452,662
Son üye
Yılmaz Çetiner

Yeni konular

Çevrimiçi üyeler

Geri
Üst