แก้ให้แล้ว

Dependencies:   NOKIA_5110 mbed

Fork of Lost-Found_BOX by FRA221:A

Committer:
mustwillza
Date:
Tue Dec 08 22:46:01 2015 +0000
Revision:
11:d773e5c4cc3a
Parent:
10:323219f2a084
Real Server (w/Domain)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mustwillza 0:8b94afcb61eb 1 //Test of cheap 13.56 Mhz RFID-RC522 module from eBay
mustwillza 0:8b94afcb61eb 2 //This code is based on Martin Olejar's MFRC522 library. Minimal changes
mustwillza 0:8b94afcb61eb 3 //Adapted for Nucleo STM32 F401RE. Should work on other Nucleos too
mustwillza 0:8b94afcb61eb 4 //Connect as follows:
mustwillza 0:8b94afcb61eb 5 //RFID pins -> Nucleo header CN5 (Arduino-compatible header)
mustwillza 0:8b94afcb61eb 6 //----------------------------------------
mustwillza 0:8b94afcb61eb 7 //RFID IRQ=pin5 -> Not used. Leave open
mustwillza 0:8b94afcb61eb 8 //RFID MISO=pin4 -> Nucleo SPI_MISO=PA_6=D12
mustwillza 0:8b94afcb61eb 9 //RFID MOSI=pin3 -> Nucleo SPI_MOSI=PA_7=D11
mustwillza 0:8b94afcb61eb 10 //RFID SCK=pin2 -> Nucleo SPI_SCK =PA_5=D13
kantapon501 1:568e35232180 11 //RFID SDA=pin1 -> Nucleo SPI_CS =PB_6=D10 SlaveSelect
mustwillza 0:8b94afcb61eb 12 //RFID RST=pin7 -> Nucleo =PA_9=D8
kantapon501 5:8e3bd2501b17 13 //3.3V and Gnd to the respective pins
mustwillza 0:8b94afcb61eb 14 #include "mbed.h"
mustwillza 0:8b94afcb61eb 15 #include "MFRC522.h"
kantapon501 1:568e35232180 16 #include "NOKIA_5110.h" // Nucleo Pin for MFRC522 reset (pick another D pin if you need D8)
kantapon501 2:5764ad3214cd 17 #define MF_RESET D9
mustwillza 4:75346bd905c0 18 #include "speaker.h"
mustwillza 7:725f5fb7e3a3 19 #include "myESP.h"
mustwillza 7:725f5fb7e3a3 20 #include "myRFID.h"
mustwillza 7:725f5fb7e3a3 21 #include "myLCD4884.h"
mustwillza 8:e683edc8a530 22 #include <ctype.h>
mustwillza 10:323219f2a084 23 DigitalOut LedGreen(LED1); //RFID Status
mustwillza 10:323219f2a084 24 DigitalOut spi_address[2] = {SPI_CS,PB_4}; //SPI Slave using... (RFID,LCD4884)
mustwillza 10:323219f2a084 25 DigitalOut LDRstatus(D4); //Set enable LDR
mustwillza 10:323219f2a084 26 AnalogIn LDR(A0);
mustwillza 10:323219f2a084 27 double LDRref = 0.1000; //set LDR Threshold
mustwillza 0:8b94afcb61eb 28 //Serial connection to PC for output
mustwillza 7:725f5fb7e3a3 29 Serial esp(D8, D2); //tx rx
mustwillza 10:323219f2a084 30 Serial pc(SERIAL_TX, SERIAL_RX); //for debugging
mustwillza 10:323219f2a084 31 Speakers speak(D3); //Buzzer setup
mustwillza 10:323219f2a084 32 DigitalOut lock(PB_13); //Solenoid Control
mustwillza 10:323219f2a084 33 MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET); //RFID Setup
mustwillza 10:323219f2a084 34 char buffers[5]={'\0'}; //Buffer
mustwillza 10:323219f2a084 35 char IDs[17]={'\0'}; //IDs of RFID
mustwillza 10:323219f2a084 36 char backupIDs[17]={'\0'}; //IDs of RFID
mustwillza 10:323219f2a084 37
mustwillza 10:323219f2a084 38 int ItemCheck(){
mustwillza 10:323219f2a084 39 pc.printf("Now LDR state : %lf",LDR.read());
mustwillza 10:323219f2a084 40 if(LDR.read() < LDRref){
mustwillza 10:323219f2a084 41 pc.printf("Item available\n");
mustwillza 10:323219f2a084 42 return 1; //Item Available
mustwillza 10:323219f2a084 43 }else
mustwillza 10:323219f2a084 44 pc.printf("Item unavailable\n");
mustwillza 10:323219f2a084 45 return 0; //Item Unavailable
mustwillza 10:323219f2a084 46 }
mustwillza 7:725f5fb7e3a3 47
mustwillza 7:725f5fb7e3a3 48 void wifiInitial(){
mustwillza 7:725f5fb7e3a3 49 pc.baud(115200);
mustwillza 7:725f5fb7e3a3 50 esp.baud(9600);
mustwillza 7:725f5fb7e3a3 51 string ssid = "1544_2G";
mustwillza 7:725f5fb7e3a3 52 string pass = "fiborobot" ;
mustwillza 7:725f5fb7e3a3 53
mustwillza 7:725f5fb7e3a3 54 if(setupESP(ssid,pass) == 1) {
mustwillza 7:725f5fb7e3a3 55 pc.printf("System connected to %s with %s as password\n",ssid.c_str(),pass.c_str());
mustwillza 7:725f5fb7e3a3 56 pc.printf("System Initialized :: ESP8266 Module Ready!\n");
mustwillza 7:725f5fb7e3a3 57 wait(2);
mustwillza 7:725f5fb7e3a3 58 }
kantapon501 1:568e35232180 59 }
mustwillza 7:725f5fb7e3a3 60
mustwillza 0:8b94afcb61eb 61 int main(void) {
mustwillza 10:323219f2a084 62 LDRstatus =1;
mustwillza 7:725f5fb7e3a3 63 // Init. LCD Pin
kantapon501 1:568e35232180 64 LcdPins myPins;
kantapon501 1:568e35232180 65 myPins.sce = PB_4; //D5 ActiveLow SlaveSelect
mustwillza 0:8b94afcb61eb 66 myPins.rst = PB_10; //D6
kantapon501 1:568e35232180 67 myPins.dc = PA_8; //D7
kantapon501 1:568e35232180 68 myPins.mosi = PA_7; //SPI_MOSI;
mustwillza 0:8b94afcb61eb 69 myPins.miso = NC;
mustwillza 0:8b94afcb61eb 70 myPins.sclk = PA_5; //SPI_SCK;
mustwillza 7:725f5fb7e3a3 71
mustwillza 7:725f5fb7e3a3 72 // Init. LCD Chip
kantapon501 1:568e35232180 73 NokiaLcd myLcd( myPins );
mustwillza 0:8b94afcb61eb 74 myLcd.InitLcd(); // LCD is reset and DDRAM is cleared
mustwillza 7:725f5fb7e3a3 75 myLcd.DrawString("System Initializing...");
mustwillza 0:8b94afcb61eb 76 myLcd.stop();
kantapon501 1:568e35232180 77
mustwillza 7:725f5fb7e3a3 78 // Init. esp8266
mustwillza 7:725f5fb7e3a3 79 wifiInitial();
mustwillza 7:725f5fb7e3a3 80 char name[20];
mustwillza 7:725f5fb7e3a3 81 char sid[20];
mustwillza 7:725f5fb7e3a3 82 char tel[10];
mustwillza 7:725f5fb7e3a3 83 char stat_uid[3];
mustwillza 7:725f5fb7e3a3 84
mustwillza 7:725f5fb7e3a3 85 // Init.RFID Variable
mustwillza 7:725f5fb7e3a3 86 uint8_t RFID[10];
mustwillza 7:725f5fb7e3a3 87 int mode = 0;
mustwillza 7:725f5fb7e3a3 88 int submode = 0;
kantapon501 1:568e35232180 89 pc.printf("starting...\n");
mustwillza 7:725f5fb7e3a3 90
kantapon501 1:568e35232180 91 // Init. RC522 Chip
kantapon501 1:568e35232180 92 RfChip.PCD_Init();
kantapon501 1:568e35232180 93 pc.printf("Begin RFID!\n");
mustwillza 7:725f5fb7e3a3 94
mustwillza 7:725f5fb7e3a3 95 /* ===== System Initialized ===== */
mustwillza 7:725f5fb7e3a3 96 myLcd.InitLcd();
mustwillza 7:725f5fb7e3a3 97 myLcd.DrawString("Welcome to LOST & FOUND BOX V.1");
mustwillza 7:725f5fb7e3a3 98 myLcd.stop();
mustwillza 7:725f5fb7e3a3 99
mustwillza 8:e683edc8a530 100
mustwillza 8:e683edc8a530 101 while(true){//Loop around
mustwillza 8:e683edc8a530 102 wait(1);
mustwillza 10:323219f2a084 103 lock = 0; //Locked!
mustwillza 10:323219f2a084 104
mustwillza 10:323219f2a084 105
mustwillza 11:d773e5c4cc3a 106 getStatus("refinance-sogood.com","/secret/8266/getdata.php?check=1",stat_uid); //Recheck now status
mustwillza 8:e683edc8a530 107
mustwillza 10:323219f2a084 108 if(isalnum((int)stat_uid[0]) && ItemCheck()){ //Check status has an item AND item in the box
mustwillza 8:e683edc8a530 109 mode = 0; //It have an item
mustwillza 8:e683edc8a530 110 submode=-1;
mustwillza 10:323219f2a084 111 }else if(!ItemCheck()){
mustwillza 8:e683edc8a530 112 mode = 1; //Doesn't have an item
mustwillza 8:e683edc8a530 113 submode=0;
mustwillza 10:323219f2a084 114 }else
mustwillza 10:323219f2a084 115 {
mustwillza 10:323219f2a084 116 pc.printf("ERROR! Something went wrong... Maybe Item was stolen\n");
mustwillza 10:323219f2a084 117
mustwillza 10:323219f2a084 118 speak.speakWrong();
mustwillza 10:323219f2a084 119 wait(3);
mustwillza 8:e683edc8a530 120 }
mustwillza 8:e683edc8a530 121
mustwillza 7:725f5fb7e3a3 122
mustwillza 8:e683edc8a530 123
mustwillza 8:e683edc8a530 124 while(mode == 0){ //Withdraw Process (Item in the box!)
mustwillza 10:323219f2a084 125
mustwillza 10:323219f2a084 126 pc.printf("Withdraw process...");
mustwillza 8:e683edc8a530 127 if(stat_uid[0] == 'X'){ //Unlocked!
mustwillza 8:e683edc8a530 128 speak.speakRight();
mustwillza 8:e683edc8a530 129 wait(0.5);
mustwillza 8:e683edc8a530 130 myLcd.InitLcd();
mustwillza 8:e683edc8a530 131 myLcd.SetXY(20,2);
mustwillza 8:e683edc8a530 132 myLcd.DrawString("UNLOCKED!");
mustwillza 8:e683edc8a530 133 myLcd.SetXY(16,2);
mustwillza 8:e683edc8a530 134 myLcd.DrawString("TAP A CARD...");
mustwillza 8:e683edc8a530 135 myLcd.stop();
mustwillza 10:323219f2a084 136 submode ++;
mustwillza 8:e683edc8a530 137 }else{
mustwillza 8:e683edc8a530 138 wait(1);
mustwillza 11:d773e5c4cc3a 139 getStatus("refinance-sogood.com","/secret/8266/getdata.php?check=1",stat_uid); //Recheck now status
mustwillza 10:323219f2a084 140
mustwillza 10:323219f2a084 141 //Check for now available card..
mustwillza 10:323219f2a084 142 if ( ! RfChip.PICC_IsNewCardPresent())
mustwillza 10:323219f2a084 143 {
mustwillza 10:323219f2a084 144 wait_ms(500);
mustwillza 10:323219f2a084 145 continue;
mustwillza 10:323219f2a084 146 }
mustwillza 10:323219f2a084 147 // Select one of the cards
mustwillza 10:323219f2a084 148 if( ! RfChip.PICC_ReadCardSerial())
mustwillza 10:323219f2a084 149 {
mustwillza 10:323219f2a084 150 wait_ms(500);
mustwillza 10:323219f2a084 151 continue;
mustwillza 10:323219f2a084 152 }
mustwillza 10:323219f2a084 153 GetID(RFID);
mustwillza 10:323219f2a084 154 pc.printf("Comparison old data %s , new %s",backupIDs,IDs);
mustwillza 10:323219f2a084 155 if(backupIDs[0] == IDs[0]){
mustwillza 10:323219f2a084 156 if(backupIDs[1] == IDs[1]){
mustwillza 10:323219f2a084 157 if(backupIDs[2] == IDs[2]){
mustwillza 10:323219f2a084 158 pc.printf("Permission allow!\n");
mustwillza 10:323219f2a084 159 stat_uid[0] = 'X'; //Force to unlock
mustwillza 10:323219f2a084 160 speak.speak();
mustwillza 10:323219f2a084 161 submode++;
mustwillza 10:323219f2a084 162 }
mustwillza 8:e683edc8a530 163
mustwillza 10:323219f2a084 164 }
mustwillza 10:323219f2a084 165 }else{
mustwillza 10:323219f2a084 166 pc.printf("Permission denied.\n");
mustwillza 10:323219f2a084 167 speak.speakWrong();
mustwillza 10:323219f2a084 168 }
mustwillza 10:323219f2a084 169
mustwillza 8:e683edc8a530 170 }
mustwillza 8:e683edc8a530 171 if(submode == 0){ //Get RFID for update withdrawer
mustwillza 8:e683edc8a530 172 if ( ! RfChip.PICC_IsNewCardPresent())
mustwillza 8:e683edc8a530 173 {
mustwillza 8:e683edc8a530 174 wait_ms(500);
mustwillza 8:e683edc8a530 175 continue;
mustwillza 8:e683edc8a530 176 }
mustwillza 8:e683edc8a530 177 // Select one of the cards
mustwillza 8:e683edc8a530 178 if ( ! RfChip.PICC_ReadCardSerial())
mustwillza 8:e683edc8a530 179 {
mustwillza 8:e683edc8a530 180 wait_ms(500);
mustwillza 8:e683edc8a530 181 continue;
mustwillza 8:e683edc8a530 182 }
mustwillza 8:e683edc8a530 183 speak.speak();
mustwillza 8:e683edc8a530 184 wait(0.5);
mustwillza 8:e683edc8a530 185 myLcd.InitLcd();
mustwillza 8:e683edc8a530 186 myLcd.DrawString("WAITING...");
mustwillza 8:e683edc8a530 187 myLcd.stop();
mustwillza 8:e683edc8a530 188 GetID(RFID);
mustwillza 11:d773e5c4cc3a 189 getDataHTTP("refinance-sogood.com","/secret/8266/getdata.php?rfid=",IDs,sid,name,tel); // Data of withdrawer
mustwillza 8:e683edc8a530 190 submode ++;
mustwillza 8:e683edc8a530 191 }
mustwillza 8:e683edc8a530 192 if(submode == 1){
mustwillza 10:323219f2a084 193 wait(0.5);
mustwillza 10:323219f2a084 194 myLcd.InitLcd();
mustwillza 10:323219f2a084 195 myLcd.DrawString("PLEASE GET ITEM...");
mustwillza 10:323219f2a084 196 myLcd.stop();
mustwillza 10:323219f2a084 197 lock=1; // Unlocked
mustwillza 10:323219f2a084 198 while(ItemCheck()){
mustwillza 10:323219f2a084 199 pc.printf("Waiting for withdraw item\n");
mustwillza 10:323219f2a084 200 wait(1);
mustwillza 10:323219f2a084 201 }
mustwillza 10:323219f2a084 202 wait(0.5);
mustwillza 10:323219f2a084 203 myLcd.InitLcd();
mustwillza 10:323219f2a084 204 myLcd.DrawString("PLEASE CLOSE THE DOOR");
mustwillza 10:323219f2a084 205 myLcd.stop();
mustwillza 10:323219f2a084 206 wait(6);
mustwillza 11:d773e5c4cc3a 207 updateWithdrawer("refinance-sogood.com","/secret/8266/update.php",sid);
mustwillza 8:e683edc8a530 208 wait(0.5);
mustwillza 8:e683edc8a530 209 myLcd.InitLcd();
mustwillza 8:e683edc8a530 210 myLcd.SetXY(20,2);
mustwillza 8:e683edc8a530 211 myLcd.DrawString("WITHDRAW");
mustwillza 8:e683edc8a530 212 myLcd.SetXY(16,2);
mustwillza 8:e683edc8a530 213 myLcd.DrawString("SUCCESSFUL");
mustwillza 8:e683edc8a530 214 myLcd.stop();
mustwillza 8:e683edc8a530 215 submode++;
mustwillza 8:e683edc8a530 216 }
mustwillza 8:e683edc8a530 217 if(submode == 2){//Check for item & return to empty position
mustwillza 8:e683edc8a530 218 mode = -1;
mustwillza 7:725f5fb7e3a3 219 }
mustwillza 7:725f5fb7e3a3 220 }
mustwillza 8:e683edc8a530 221 while(mode == 1){ //Deposit Process (No item in the box)
mustwillza 9:5944142f8b40 222 pc.printf("Deposition process \n");
mustwillza 8:e683edc8a530 223 if(submode == 0){ //Ask for deposit
mustwillza 8:e683edc8a530 224 myLcd.InitLcd();
mustwillza 8:e683edc8a530 225 myLcd.SetXY(20,1);
mustwillza 8:e683edc8a530 226 myLcd.DrawString("PLEASE");
mustwillza 8:e683edc8a530 227 myLcd.SetXY(8,3);
mustwillza 8:e683edc8a530 228 myLcd.DrawString("TAP A CARD");
mustwillza 9:5944142f8b40 229 myLcd.SetXY(9,5);
mustwillza 9:5944142f8b40 230 myLcd.DrawString("TO DEPOSIT");
mustwillza 8:e683edc8a530 231 myLcd.stop();
mustwillza 8:e683edc8a530 232 submode++;
mustwillza 8:e683edc8a530 233 }
mustwillza 8:e683edc8a530 234 if(submode == 1){ //Wait and Get Tap Card
mustwillza 8:e683edc8a530 235 if ( ! RfChip.PICC_IsNewCardPresent())
mustwillza 8:e683edc8a530 236 {
mustwillza 8:e683edc8a530 237 wait_ms(500);
mustwillza 8:e683edc8a530 238 continue;
mustwillza 8:e683edc8a530 239 }
mustwillza 8:e683edc8a530 240 // Select one of the cards
mustwillza 8:e683edc8a530 241 if ( ! RfChip.PICC_ReadCardSerial())
mustwillza 8:e683edc8a530 242 {
mustwillza 8:e683edc8a530 243 wait_ms(500);
mustwillza 8:e683edc8a530 244 continue;
mustwillza 8:e683edc8a530 245 }
mustwillza 8:e683edc8a530 246 speak.speak();
mustwillza 8:e683edc8a530 247 submode ++;
mustwillza 8:e683edc8a530 248 }
mustwillza 8:e683edc8a530 249 if(submode == 2){ //Get depositor data. & Show depositor data
mustwillza 9:5944142f8b40 250 lock=1;
mustwillza 8:e683edc8a530 251 wait(0.5);
mustwillza 8:e683edc8a530 252 myLcd.InitLcd();
mustwillza 8:e683edc8a530 253 myLcd.DrawString("WAITING...");
mustwillza 8:e683edc8a530 254 myLcd.stop();
mustwillza 8:e683edc8a530 255 GetID(RFID);
mustwillza 11:d773e5c4cc3a 256 getDataHTTP("refinance-sogood.com","/secret/8266/getdata.php?rfid=",IDs,sid,name,tel);
mustwillza 8:e683edc8a530 257 submode ++;
mustwillza 8:e683edc8a530 258
mustwillza 8:e683edc8a530 259 wait(0.5);
mustwillza 8:e683edc8a530 260 myLcd.InitLcd();
mustwillza 8:e683edc8a530 261 myLcd.DrawString("NAME : ");
mustwillza 8:e683edc8a530 262 myLcd.SetXY(5,1);
mustwillza 8:e683edc8a530 263
mustwillza 8:e683edc8a530 264 myLcd.DrawString(name);
mustwillza 8:e683edc8a530 265 myLcd.SetXY(0,3);
mustwillza 8:e683edc8a530 266 myLcd.DrawString("TEL : ");
mustwillza 8:e683edc8a530 267 myLcd.SetXY(5,4);
mustwillza 8:e683edc8a530 268
mustwillza 8:e683edc8a530 269 myLcd.DrawString(tel);
mustwillza 8:e683edc8a530 270 myLcd.stop();
mustwillza 8:e683edc8a530 271 }
mustwillza 8:e683edc8a530 272 if(submode == 3){ // Show depositor data on screen
mustwillza 11:d773e5c4cc3a 273 newDepositor("refinance-sogood.com","/secret/8266/update.php",sid);
mustwillza 10:323219f2a084 274 lock =1; //Unlocked the box!
mustwillza 8:e683edc8a530 275 wait(0.5);
mustwillza 8:e683edc8a530 276 myLcd.InitLcd();
mustwillza 8:e683edc8a530 277 myLcd.SetXY(20,1);
mustwillza 8:e683edc8a530 278 myLcd.DrawString("PLEASE");
mustwillza 8:e683edc8a530 279 myLcd.SetXY(4,3);
mustwillza 10:323219f2a084 280 myLcd.DrawString("PUT THE ITEMS");
mustwillza 8:e683edc8a530 281 myLcd.stop();
mustwillza 10:323219f2a084 282
mustwillza 10:323219f2a084 283 while(!ItemCheck()){ //Waiting for Item , Until it has an item...
mustwillza 10:323219f2a084 284 pc.printf("Waiting for item...");
mustwillza 10:323219f2a084 285 wait(0.5);
mustwillza 10:323219f2a084 286 }
mustwillza 10:323219f2a084 287 wait(0.5);
mustwillza 10:323219f2a084 288 myLcd.InitLcd();
mustwillza 10:323219f2a084 289 myLcd.SetXY(20,1);
mustwillza 10:323219f2a084 290 myLcd.DrawString("PLEASE");
mustwillza 10:323219f2a084 291 myLcd.SetXY(4,3);
mustwillza 10:323219f2a084 292 myLcd.DrawString("CLOSE THE DOOR");
mustwillza 10:323219f2a084 293 myLcd.stop();
mustwillza 10:323219f2a084 294 wait(8);
mustwillza 8:e683edc8a530 295 myLcd.InitLcd();
mustwillza 8:e683edc8a530 296 myLcd.SetXY(10,0);
mustwillza 8:e683edc8a530 297 myLcd.DrawString("==CONTACT==");
mustwillza 8:e683edc8a530 298 myLcd.SetXY(5,2);
mustwillza 8:e683edc8a530 299 myLcd.DrawString("NAME : ");
mustwillza 8:e683edc8a530 300 myLcd.SetXY(5,3);
mustwillza 8:e683edc8a530 301
mustwillza 8:e683edc8a530 302 myLcd.DrawString(name);
mustwillza 8:e683edc8a530 303 myLcd.SetXY(0,4);
mustwillza 8:e683edc8a530 304 myLcd.DrawString("TEL : ");
mustwillza 8:e683edc8a530 305 myLcd.SetXY(5,5);
mustwillza 8:e683edc8a530 306
mustwillza 8:e683edc8a530 307 myLcd.DrawString(tel);
mustwillza 8:e683edc8a530 308 myLcd.stop();
mustwillza 10:323219f2a084 309 strcpy(backupIDs,IDs);
mustwillza 10:323219f2a084 310 wait(3);
mustwillza 10:323219f2a084 311 submode=0; //Bring back submode value.
mustwillza 10:323219f2a084 312 mode = 0; //Bring to Item In Mode...
mustwillza 10:323219f2a084 313 lock = 0; //Locked!
mustwillza 8:e683edc8a530 314 } // End Deposit Process
mustwillza 7:725f5fb7e3a3 315 }
mustwillza 8:e683edc8a530 316
mustwillza 7:725f5fb7e3a3 317 }
mustwillza 7:725f5fb7e3a3 318
mustwillza 7:725f5fb7e3a3 319
mustwillza 7:725f5fb7e3a3 320
mustwillza 7:725f5fb7e3a3 321 /*
kantapon501 1:568e35232180 322 while (true) {
mustwillza 0:8b94afcb61eb 323 LedGreen = 1;
mustwillza 0:8b94afcb61eb 324 // Look for new cards
mustwillza 0:8b94afcb61eb 325 if ( ! RfChip.PICC_IsNewCardPresent())
mustwillza 0:8b94afcb61eb 326 {
mustwillza 0:8b94afcb61eb 327 wait_ms(500);
mustwillza 0:8b94afcb61eb 328 continue;
mustwillza 0:8b94afcb61eb 329 }
mustwillza 0:8b94afcb61eb 330 // Select one of the cards
mustwillza 0:8b94afcb61eb 331 if ( ! RfChip.PICC_ReadCardSerial())
mustwillza 0:8b94afcb61eb 332 {
mustwillza 0:8b94afcb61eb 333 wait_ms(500);
mustwillza 0:8b94afcb61eb 334 continue;
mustwillza 0:8b94afcb61eb 335 }
mustwillza 0:8b94afcb61eb 336 LedGreen = 0;
kantapon501 5:8e3bd2501b17 337 myLcd.InitLcd();
kantapon501 5:8e3bd2501b17 338 myLcd.DrawString("Ready");
kantapon501 5:8e3bd2501b17 339 myLcd.stop();
kantapon501 5:8e3bd2501b17 340 checker = check(RFID);
kantapon501 5:8e3bd2501b17 341 if(checks == 1)
kantapon501 1:568e35232180 342 {
kantapon501 5:8e3bd2501b17 343 if (checker == 1)
kantapon501 1:568e35232180 344 {
kantapon501 5:8e3bd2501b17 345 pc.printf("Right\n");
kantapon501 5:8e3bd2501b17 346 myLcd.InitLcd();
kantapon501 5:8e3bd2501b17 347 myLcd.DrawString("Right");
kantapon501 5:8e3bd2501b17 348 myLcd.stop();
kantapon501 5:8e3bd2501b17 349 checks = 0;
kantapon501 5:8e3bd2501b17 350 speak.speakRight();
kantapon501 6:6635082215c7 351 strcpy(IDs,"");
kantapon501 5:8e3bd2501b17 352 continue;
kantapon501 1:568e35232180 353 }
kantapon501 5:8e3bd2501b17 354 else
kantapon501 5:8e3bd2501b17 355 {
kantapon501 5:8e3bd2501b17 356 pc.printf("Wrong!!\n");
kantapon501 5:8e3bd2501b17 357 myLcd.InitLcd();
kantapon501 5:8e3bd2501b17 358 myLcd.DrawString("Wrong!!");
kantapon501 5:8e3bd2501b17 359 myLcd.stop();
kantapon501 5:8e3bd2501b17 360 speak.speakWrong();
kantapon501 5:8e3bd2501b17 361 continue;
kantapon501 5:8e3bd2501b17 362 }
kantapon501 1:568e35232180 363 }
mustwillza 0:8b94afcb61eb 364 // Print Card UID
mustwillza 0:8b94afcb61eb 365 pc.printf("Card UID: ");
mustwillza 0:8b94afcb61eb 366 for (uint8_t i = 0; i < RfChip.uid.size; i++)
mustwillza 0:8b94afcb61eb 367 {
kantapon501 1:568e35232180 368 pc.printf(" %X", RfChip.uid.uidByte[i]);
mustwillza 0:8b94afcb61eb 369 }
kantapon501 5:8e3bd2501b17 370 checker = check(RFID);
mustwillza 4:75346bd905c0 371 speak.speak();
kantapon501 1:568e35232180 372 GetID(RFID);
kantapon501 3:c927196a726f 373 lock = 0;
kantapon501 6:6635082215c7 374 pc.printf("\n\r");
mustwillza 0:8b94afcb61eb 375 wait_ms(1000);
kantapon501 5:8e3bd2501b17 376 checks = 1;
kantapon501 1:568e35232180 377 }
mustwillza 7:725f5fb7e3a3 378 */
mustwillza 0:8b94afcb61eb 379 }