Serial communication between the W7500 and WIZ750SR to send RFID data
Dependencies: HCSR04 MFRC522 TextLCD mbed-src
Fork of RFID_copy by
main.cpp@1:2c9b99e9122b, 2018-07-17 (annotated)
- Committer:
- HarshaDRAGNEEL
- Date:
- Tue Jul 17 06:19:38 2018 +0000
- Revision:
- 1:2c9b99e9122b
- Parent:
- 0:1fdb07d055b9
Receive the RFID data and send serially data to the WIZ750SR
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
HarshaDRAGNEEL | 1:2c9b99e9122b | 1 | |
Rajib | 0:1fdb07d055b9 | 2 | //Connect as follows: |
HarshaDRAGNEEL | 1:2c9b99e9122b | 3 | |
Rajib | 0:1fdb07d055b9 | 4 | //---------------------------------------- |
Rajib | 0:1fdb07d055b9 | 5 | //RFID IRQ=pin5 -> Not used. Leave open |
Rajib | 0:1fdb07d055b9 | 6 | //RFID MISO=pin4 -> Nucleo SPI_MISO=PA_6=D12 |
Rajib | 0:1fdb07d055b9 | 7 | //RFID MOSI=pin3 -> Nucleo SPI_MOSI=PA_7=D11 |
Rajib | 0:1fdb07d055b9 | 8 | //RFID SCK=pin2 -> Nucleo SPI_SCK =PA_5=D13 |
Rajib | 0:1fdb07d055b9 | 9 | //RFID SDA=pin1 -> Nucleo SPI_CS =PB_6=D10 |
Rajib | 0:1fdb07d055b9 | 10 | //RFID RST=pin7 -> Nucleo =PA_9=D8 |
HarshaDRAGNEEL | 1:2c9b99e9122b | 11 | |
HarshaDRAGNEEL | 1:2c9b99e9122b | 12 | |
Rajib | 0:1fdb07d055b9 | 13 | #include "mbed.h" |
Rajib | 0:1fdb07d055b9 | 14 | #include "MFRC522.h" |
Rajib | 0:1fdb07d055b9 | 15 | #include "SPI.h" |
Rajib | 0:1fdb07d055b9 | 16 | #define ECHO_SERVER_PORT 7 |
Rajib | 0:1fdb07d055b9 | 17 | |
Rajib | 0:1fdb07d055b9 | 18 | |
Rajib | 0:1fdb07d055b9 | 19 | #define SPI_MOSI D11 |
Rajib | 0:1fdb07d055b9 | 20 | #define SPI_MISO D12 |
Rajib | 0:1fdb07d055b9 | 21 | #define SPI_SCK D13 |
Rajib | 0:1fdb07d055b9 | 22 | #define SPI_CS D10 |
HarshaDRAGNEEL | 1:2c9b99e9122b | 23 | #define MF_RESET D8 |
HarshaDRAGNEEL | 1:2c9b99e9122b | 24 | |
HarshaDRAGNEEL | 1:2c9b99e9122b | 25 | |
Rajib | 0:1fdb07d055b9 | 26 | //Serial connection to PC for output |
HarshaDRAGNEEL | 1:2c9b99e9122b | 27 | Serial pc(USBTX, USBRX); |
HarshaDRAGNEEL | 1:2c9b99e9122b | 28 | // Serial connection with W750SR gateway for MQTT communication |
HarshaDRAGNEEL | 1:2c9b99e9122b | 29 | Serial a(D1,D0); |
HarshaDRAGNEEL | 1:2c9b99e9122b | 30 | // Initializing RFID chip pins |
Rajib | 0:1fdb07d055b9 | 31 | MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET); |
HarshaDRAGNEEL | 1:2c9b99e9122b | 32 | |
HarshaDRAGNEEL | 1:2c9b99e9122b | 33 | char c; |
HarshaDRAGNEEL | 1:2c9b99e9122b | 34 | int d; |
Rajib | 0:1fdb07d055b9 | 35 | |
HarshaDRAGNEEL | 1:2c9b99e9122b | 36 | int main(void) { |
Rajib | 0:1fdb07d055b9 | 37 | |
HarshaDRAGNEEL | 1:2c9b99e9122b | 38 | Serial pc(USBTX, USBRX); |
HarshaDRAGNEEL | 1:2c9b99e9122b | 39 | Serial a(D1,D0); |
HarshaDRAGNEEL | 1:2c9b99e9122b | 40 | pc.printf("Wait a second...\r\n"); |
HarshaDRAGNEEL | 1:2c9b99e9122b | 41 | |
Rajib | 0:1fdb07d055b9 | 42 | //Init. RC522 Chip |
Rajib | 0:1fdb07d055b9 | 43 | RfChip.PCD_Init(); |
Rajib | 0:1fdb07d055b9 | 44 | |
Rajib | 0:1fdb07d055b9 | 45 | while (true) { |
Rajib | 0:1fdb07d055b9 | 46 | //LedGreen = 1; |
Rajib | 0:1fdb07d055b9 | 47 | pc.printf("enterd loop...\n"); |
Rajib | 0:1fdb07d055b9 | 48 | // Look for new cards |
Rajib | 0:1fdb07d055b9 | 49 | if ( ! RfChip.PICC_IsNewCardPresent()) |
Rajib | 0:1fdb07d055b9 | 50 | { |
Rajib | 0:1fdb07d055b9 | 51 | wait_ms(500); |
Rajib | 0:1fdb07d055b9 | 52 | continue; |
Rajib | 0:1fdb07d055b9 | 53 | } |
HarshaDRAGNEEL | 1:2c9b99e9122b | 54 | // Select one of the cards |
Rajib | 0:1fdb07d055b9 | 55 | if ( ! RfChip.PICC_ReadCardSerial()) |
Rajib | 0:1fdb07d055b9 | 56 | { |
Rajib | 0:1fdb07d055b9 | 57 | wait_ms(500); |
Rajib | 0:1fdb07d055b9 | 58 | continue; |
Rajib | 0:1fdb07d055b9 | 59 | } |
HarshaDRAGNEEL | 1:2c9b99e9122b | 60 | |
HarshaDRAGNEEL | 1:2c9b99e9122b | 61 | char data[20]=""; |
HarshaDRAGNEEL | 1:2c9b99e9122b | 62 | // char data1[20]=""; |
Rajib | 0:1fdb07d055b9 | 63 | |
Rajib | 0:1fdb07d055b9 | 64 | // Print Card UID |
Rajib | 0:1fdb07d055b9 | 65 | pc.printf("Card UID: "); |
Rajib | 0:1fdb07d055b9 | 66 | printf("Size of UID: %d \n",RfChip.uid.size); |
Rajib | 0:1fdb07d055b9 | 67 | for (uint8_t i = 0; i < RfChip.uid.size; i++) |
Rajib | 0:1fdb07d055b9 | 68 | { |
Rajib | 0:1fdb07d055b9 | 69 | char temp[5]; |
Rajib | 0:1fdb07d055b9 | 70 | pc.printf(" %X02", RfChip.uid.uidByte[i]); |
Rajib | 0:1fdb07d055b9 | 71 | sprintf(temp,"%X02", RfChip.uid.uidByte[i]); |
Rajib | 0:1fdb07d055b9 | 72 | strcat(data,temp); |
Rajib | 0:1fdb07d055b9 | 73 | } |
Rajib | 0:1fdb07d055b9 | 74 | |
Rajib | 0:1fdb07d055b9 | 75 | // Print Card type |
Rajib | 0:1fdb07d055b9 | 76 | uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); |
Rajib | 0:1fdb07d055b9 | 77 | pc.printf(" \nPICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType)); |
Rajib | 0:1fdb07d055b9 | 78 | wait_ms(1000); |
HarshaDRAGNEEL | 1:2c9b99e9122b | 79 | a.printf("%s",data); |
HarshaDRAGNEEL | 1:2c9b99e9122b | 80 | |
Rajib | 0:1fdb07d055b9 | 81 | } |
Rajib | 0:1fdb07d055b9 | 82 | } |