irrtrhjthttrtrtrttyytrt
Dependencies: MFRC522 MQTT TextLCD WIZnetInterface mbed-src
Fork of MFRC522_Reader_Program by
main.cpp
- Committer:
- wiznetw7500
- Date:
- 2018-03-22
- Revision:
- 1:26f5970ccb55
- Parent:
- 0:d9724729f6b6
File content as of revision 1:26f5970ccb55:
//Test of cheap 13.56 Mhz RFID-RC522 module from eBay //This code is based on Martin Olejar's MFRC522 library. Minimal changes //Adapted for Nucleo STM32 F401RE. Should work on other Nucleos too //Connect as follows: //RFID pins -> Nucleo header CN5 (Arduino-compatible header) //---------------------------------------- //RFID IRQ=pin5 -> Not used. Leave open //RFID MISO=pin4 -> Nucleo SPI_MISO=PA_6=D12 //RFID MOSI=pin3 -> Nucleo SPI_MOSI=PA_7=D11 //RFID SCK=pin2 -> Nucleo SPI_SCK =PA_5=D13 //RFID SDA=pin1 -> Nucleo SPI_CS =PB_6=D10 //RFID RST=pin7 -> Nucleo =PA_9=D8 //3.3V and Gnd to the respective pins #include "mbed.h" #include "MFRC522.h" #include "MQTTEthernet.h" #include "MQTTClient.h" #include "TextLCD.h" #include <sstream> #include <string> #define ECHO_SERVER_PORT 7 #define SPI_MOSI D11 #define SPI_MISO D12 #define SPI_SCLK D13 #define SPI_CS D10 // WIZWiki-W7500 Pin for MFRC522 reset(pick another D pin if you need D8) #define MF_RESET D9 TextLCD lcd(D2, D3, D4, D5, D6, D7); // rs, e, d4-d7 Serial out(USBTX,USBRX); int arrivedcount = 0; char RFIDTagMessage[10]; /*void messageArrived(MQTT::MessageData& md) { MQTT::Message &message = md.message; printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id); printf("Payload %.*s\n", message.payloadlen, (char*)message.payload); ++arrivedcount; }*/ void baud(int baudrate) { Serial s(USBTX, USBRX); s.baud(baudrate); } MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET); // Init MFRC522 card DigitalOut LedGreen(D0); DigitalOut LedRed(D1); //DigitalOut Buzzer(D4); char* store_buf; int main(void) { printf("starting...\n"); // Init. RC522 Chip RfChip.PCD_Init(); MQTTEthernet ipstack = MQTTEthernet(); while (true) { // lcd.locate(4,0); // lcd.printf(" CDI Attendance\n"); // lcd.locate(4,1); // lcd.printf(" System\n"); // Look for new cards if ( ! RfChip.PICC_IsNewCardPresent()) { wait_ms(50); continue; } // Select one of the cards if ( ! RfChip.PICC_ReadCardSerial()) { wait_ms(50); continue; } // lcd.cls(); // wait_ms(50); //Size printf("Size: %d \n",RfChip.uid.size); printf("\n\r"); // Print Card UID printf("Card UID: "); for (uint8_t i = 0; i < RfChip.uid.size; i++) { printf(" %X", RfChip.uid.uidByte[i]); store_buf+= sprintf(store_buf,"%X",RfChip.uid.uidByte[i]); } printf("\n\r"); store_buf=RFIDTagMessage; printf("Card ID: %s",store_buf); /* if(store_buf[0]!='\0') { MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(ipstack); char* hostname = "172.16.73.4"; int port = 1883; int rc = ipstack.connect(hostname, port); out.printf("rc from TCP connect is %d\n", rc); if (rc != 0) out.printf("rc from TCP connect is %d\n", rc); char MQTTClientID[30]; MQTTPacket_connectData data = MQTTPacket_connectData_initializer; data.MQTTVersion = 3; sprintf(MQTTClientID,"WIZwiki-W7500-client-%d",rand()%1000); data.clientID.cstring = MQTTClientID; */ /* data.username.cstring = "testuser"; data.password.cstring = "testpassword"; */ /* if ((rc = client.connect(data)) != 0) printf("rc from MQTT connect is %d\n", rc); MQTT::Message message; message.qos = MQTT::QOS0; message.retained = false; message.dup = false; message.payload = (void*)RFIDTagMessage; message.payloadlen = strlen(RFIDTagMessage); rc = client.publish("cdi/employee/attendance", message); printf("Rc result: % d ",rc); if(rc!=0) { */ // lcd.printf(" FAILED..! TRY AGAIN!\n"); /* lcd.locate(4,0); lcd.printf("FAILED.!\n"); lcd.locate(2,1); lcd.printf("TRY AGAIN..\n"); LedRed=1; LedGreen = 0; wait_ms(3000); LedRed=0; lcd.cls(); // NVIC_SystemReset(); } else { lcd.printf(" USER VERIFIED!\n"); LedGreen = 1; wait_ms(2000); LedGreen = 0; lcd.cls(); }*/ // } // Print Card type uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType)); wait_ms(50); } }