Rajas Chitanvis
/
RFIDreaderwithHC06
smart fridge using RFID and Bluetooth
main.cpp@1:ad028c0c6c6c, 2019-04-15 (annotated)
- Committer:
- rajas1812
- Date:
- Mon Apr 15 20:34:43 2019 +0000
- Revision:
- 1:ad028c0c6c6c
- Parent:
- 0:ebf3612d4985
Smart fridge using RFID
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ndgohil | 0:ebf3612d4985 | 1 | #include "mbed.h" |
ndgohil | 0:ebf3612d4985 | 2 | #include "MFRC522.h" |
ndgohil | 0:ebf3612d4985 | 3 | // FRDM-K64F (Freescale) Pin for MFRC522 reset |
ndgohil | 0:ebf3612d4985 | 4 | #define MF_RESET PTD0 |
ndgohil | 0:ebf3612d4985 | 5 | #define SERIAL_1 |
ndgohil | 0:ebf3612d4985 | 6 | |
ndgohil | 0:ebf3612d4985 | 7 | DigitalOut LedGreen(LED2); |
ndgohil | 0:ebf3612d4985 | 8 | |
ndgohil | 0:ebf3612d4985 | 9 | //Serial connection to PC for output |
ndgohil | 0:ebf3612d4985 | 10 | Serial pc(PTC17, PTC16); // serial comm on the FRDM board |
ndgohil | 0:ebf3612d4985 | 11 | |
ndgohil | 0:ebf3612d4985 | 12 | //wireless bluetooth connection to Android Device for output |
ndgohil | 0:ebf3612d4985 | 13 | Serial blue(PTC15, PTC14); |
ndgohil | 0:ebf3612d4985 | 14 | |
ndgohil | 0:ebf3612d4985 | 15 | |
ndgohil | 0:ebf3612d4985 | 16 | //MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET); |
ndgohil | 0:ebf3612d4985 | 17 | MFRC522 RfChip (PTD2, PTD3, PTD1, PTE25, PTD0); |
ndgohil | 0:ebf3612d4985 | 18 | |
rajas1812 | 1:ad028c0c6c6c | 19 | int counter1 = 0; |
rajas1812 | 1:ad028c0c6c6c | 20 | int counter2 = 0; |
rajas1812 | 1:ad028c0c6c6c | 21 | |
ndgohil | 0:ebf3612d4985 | 22 | int main(void) { |
ndgohil | 0:ebf3612d4985 | 23 | |
ndgohil | 0:ebf3612d4985 | 24 | blue.baud(9600); |
ndgohil | 0:ebf3612d4985 | 25 | pc.baud(9600); |
ndgohil | 0:ebf3612d4985 | 26 | printf("Welcome to RFID Tag Reader Using FRDM K64F...\n\r"); |
ndgohil | 0:ebf3612d4985 | 27 | blue.printf("Welcome to RFID Tag Reader Uing FRDM K64F...\n\r"); |
ndgohil | 0:ebf3612d4985 | 28 | printf("Bluetooth Enable\r\n"); |
ndgohil | 0:ebf3612d4985 | 29 | blue.printf("Bluetooth Enable\r\n"); |
ndgohil | 0:ebf3612d4985 | 30 | RfChip.PCD_Init(); |
ndgohil | 0:ebf3612d4985 | 31 | |
ndgohil | 0:ebf3612d4985 | 32 | while (true) { |
ndgohil | 0:ebf3612d4985 | 33 | LedGreen = 1; |
ndgohil | 0:ebf3612d4985 | 34 | |
ndgohil | 0:ebf3612d4985 | 35 | // Look for new cards |
ndgohil | 0:ebf3612d4985 | 36 | if ( ! RfChip.PICC_IsNewCardPresent()) |
ndgohil | 0:ebf3612d4985 | 37 | { |
ndgohil | 0:ebf3612d4985 | 38 | wait_ms(200); |
ndgohil | 0:ebf3612d4985 | 39 | continue; |
ndgohil | 0:ebf3612d4985 | 40 | } |
ndgohil | 0:ebf3612d4985 | 41 | |
ndgohil | 0:ebf3612d4985 | 42 | // Select one of the cards |
ndgohil | 0:ebf3612d4985 | 43 | if ( ! RfChip.PICC_ReadCardSerial()) |
ndgohil | 0:ebf3612d4985 | 44 | { |
ndgohil | 0:ebf3612d4985 | 45 | wait_ms(200); |
ndgohil | 0:ebf3612d4985 | 46 | continue; |
ndgohil | 0:ebf3612d4985 | 47 | } |
ndgohil | 0:ebf3612d4985 | 48 | LedGreen = 0; |
ndgohil | 0:ebf3612d4985 | 49 | int a=0; |
ndgohil | 0:ebf3612d4985 | 50 | |
ndgohil | 0:ebf3612d4985 | 51 | // Print Card UID |
ndgohil | 0:ebf3612d4985 | 52 | printf("Card UID:"); |
ndgohil | 0:ebf3612d4985 | 53 | blue.printf("Card UID:"); |
ndgohil | 0:ebf3612d4985 | 54 | for (uint8_t i = 0; i < RfChip.uid.size; i++) |
ndgohil | 0:ebf3612d4985 | 55 | { |
ndgohil | 0:ebf3612d4985 | 56 | printf(" %X02 ", RfChip.uid.uidByte[i]); |
ndgohil | 0:ebf3612d4985 | 57 | blue.printf(" %X02 ", RfChip.uid.uidByte[i]); |
ndgohil | 0:ebf3612d4985 | 58 | a = RfChip.uid.uidByte[0]; |
ndgohil | 0:ebf3612d4985 | 59 | } |
rajas1812 | 1:ad028c0c6c6c | 60 | printf("%d",a); |
ndgohil | 0:ebf3612d4985 | 61 | |
ndgohil | 0:ebf3612d4985 | 62 | //Print Card Type |
rajas1812 | 1:ad028c0c6c6c | 63 | if(a==73) |
ndgohil | 0:ebf3612d4985 | 64 | { |
rajas1812 | 1:ad028c0c6c6c | 65 | if(counter1 == 0){ |
rajas1812 | 1:ad028c0c6c6c | 66 | printf("\r\nMilk is in the fridge"); |
ndgohil | 0:ebf3612d4985 | 67 | blue.printf("\r\nWhite Card"); |
rajas1812 | 1:ad028c0c6c6c | 68 | counter1 = 1; |
ndgohil | 0:ebf3612d4985 | 69 | } |
rajas1812 | 1:ad028c0c6c6c | 70 | else if(counter1 == 1){ |
rajas1812 | 1:ad028c0c6c6c | 71 | printf("\r\nMilk is out of the fridge"); |
rajas1812 | 1:ad028c0c6c6c | 72 | counter1 = 0; |
rajas1812 | 1:ad028c0c6c6c | 73 | } |
rajas1812 | 1:ad028c0c6c6c | 74 | } |
rajas1812 | 1:ad028c0c6c6c | 75 | |
rajas1812 | 1:ad028c0c6c6c | 76 | if(a==207) |
ndgohil | 0:ebf3612d4985 | 77 | { |
rajas1812 | 1:ad028c0c6c6c | 78 | if (counter2 == 0) |
rajas1812 | 1:ad028c0c6c6c | 79 | { |
rajas1812 | 1:ad028c0c6c6c | 80 | printf("\r\nBeer is in the fridge"); |
rajas1812 | 1:ad028c0c6c6c | 81 | blue.printf("\r\nBlue Keychain"); |
rajas1812 | 1:ad028c0c6c6c | 82 | counter2 = 1; |
rajas1812 | 1:ad028c0c6c6c | 83 | } |
rajas1812 | 1:ad028c0c6c6c | 84 | else if (counter2 == 1){ |
rajas1812 | 1:ad028c0c6c6c | 85 | printf("\r\nBeer is out of the fridge"); |
rajas1812 | 1:ad028c0c6c6c | 86 | counter2 = 0; |
rajas1812 | 1:ad028c0c6c6c | 87 | } |
rajas1812 | 1:ad028c0c6c6c | 88 | } |
rajas1812 | 1:ad028c0c6c6c | 89 | //wait(1); |
rajas1812 | 1:ad028c0c6c6c | 90 | // else |
rajas1812 | 1:ad028c0c6c6c | 91 | // { |
rajas1812 | 1:ad028c0c6c6c | 92 | // printf("\r\nUnrecognized"); |
rajas1812 | 1:ad028c0c6c6c | 93 | // blue.printf("\r\nUnrecognized"); |
rajas1812 | 1:ad028c0c6c6c | 94 | //} |
ndgohil | 0:ebf3612d4985 | 95 | printf("\n\r"); |
ndgohil | 0:ebf3612d4985 | 96 | blue.printf("\n\r"); |
ndgohil | 0:ebf3612d4985 | 97 | |
ndgohil | 0:ebf3612d4985 | 98 | // Print RFID Card type |
ndgohil | 0:ebf3612d4985 | 99 | uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); |
ndgohil | 0:ebf3612d4985 | 100 | printf("PICC Type: %s \n\n\r\r", RfChip.PICC_GetTypeName(piccType)); |
ndgohil | 0:ebf3612d4985 | 101 | blue.printf("PICC Type: %s \n\n\r\r", RfChip.PICC_GetTypeName(piccType)); |
ndgohil | 0:ebf3612d4985 | 102 | |
rajas1812 | 1:ad028c0c6c6c | 103 | wait(2); |
ndgohil | 0:ebf3612d4985 | 104 | |
ndgohil | 0:ebf3612d4985 | 105 | } |
ndgohil | 0:ebf3612d4985 | 106 | } |
ndgohil | 0:ebf3612d4985 | 107 |