programme RFID anthony coudret-risso

Dependencies:   mbed

Committer:
notBED
Date:
Wed May 23 13:22:22 2018 +0000
Revision:
1:290a357d0da0
Parent:
0:a8c7cc9e26fb
UPdate 2.0 rfid project;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
notBED 0:a8c7cc9e26fb 1 #include "stdio.h"
notBED 0:a8c7cc9e26fb 2 #include "mbed.h"
notBED 0:a8c7cc9e26fb 3 #include <Serial.h>
notBED 0:a8c7cc9e26fb 4
notBED 0:a8c7cc9e26fb 5 DigitalIn CTS(p8);
notBED 0:a8c7cc9e26fb 6 DigitalOut led1(LED1);
notBED 0:a8c7cc9e26fb 7 DigitalOut led2(LED2);
notBED 0:a8c7cc9e26fb 8 DigitalOut led3(LED3);
notBED 0:a8c7cc9e26fb 9 DigitalOut led4(LED4);
notBED 1:290a357d0da0 10 DigitalOut ledmanu(p18);
notBED 0:a8c7cc9e26fb 11
notBED 0:a8c7cc9e26fb 12 Serial pc(USBTX, USBRX);
notBED 0:a8c7cc9e26fb 13 Serial rfid1(p9, NC);
notBED 0:a8c7cc9e26fb 14 Serial rfid2(NC, p10);
notBED 0:a8c7cc9e26fb 15
notBED 0:a8c7cc9e26fb 16 int egal1 = 0;
notBED 0:a8c7cc9e26fb 17 int egal2 = 0;
notBED 0:a8c7cc9e26fb 18 int egal3 = 0;
notBED 0:a8c7cc9e26fb 19 int egal4 = 0;
notBED 0:a8c7cc9e26fb 20 int egal5 = 0;
notBED 1:290a357d0da0 21 int tag1[4]= {0xAE,0xFB,0x63,0x10};
notBED 1:290a357d0da0 22 int tag2[4]= {0x25,0x02,0x64,0x10};
notBED 1:290a357d0da0 23 int tag3[4]= {0x3F,0xFC,0x63,0x10};
notBED 1:290a357d0da0 24 int tag4[4]= {0xCE,0xEE,0x63,0x10};
notBED 1:290a357d0da0 25 int tag5[4]= {0xD6,0xD9,0x63,0x10};
notBED 1:290a357d0da0 26 int tag[4]= {0x00,0x00,0x00,0x00};
notBED 0:a8c7cc9e26fb 27 int reponse_rfid[5];
notBED 0:a8c7cc9e26fb 28 int reponse_rfid1[255];
notBED 0:a8c7cc9e26fb 29 int lireuid[8]= {0x52,0x00};
notBED 0:a8c7cc9e26fb 30 //int trame_rfid[8]={0x7A};
notBED 0:a8c7cc9e26fb 31 //int tag_rfid[8]={0x76,0x01};
notBED 0:a8c7cc9e26fb 32 //int uid[8]={0x55};
notBED 0:a8c7cc9e26fb 33
notBED 0:a8c7cc9e26fb 34 void HandShake();
notBED 0:a8c7cc9e26fb 35 void Antenna();
notBED 1:290a357d0da0 36 void field();
notBED 0:a8c7cc9e26fb 37
notBED 0:a8c7cc9e26fb 38 int main()
notBED 0:a8c7cc9e26fb 39 {
notBED 0:a8c7cc9e26fb 40 egal1=0;
notBED 0:a8c7cc9e26fb 41 egal2=0;
notBED 0:a8c7cc9e26fb 42 egal3=0;
notBED 0:a8c7cc9e26fb 43 egal4=0;
notBED 0:a8c7cc9e26fb 44 egal5=0;
notBED 0:a8c7cc9e26fb 45
notBED 0:a8c7cc9e26fb 46 while(1) {
notBED 0:a8c7cc9e26fb 47
notBED 0:a8c7cc9e26fb 48 if (CTS == 0) {
notBED 0:a8c7cc9e26fb 49 // pc.printf("- [CTS = 0] -");
notBED 0:a8c7cc9e26fb 50 // pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 51 //HandShake();
notBED 0:a8c7cc9e26fb 52 for (int i=0; i<2; i++) {
notBED 0:a8c7cc9e26fb 53 rfid2.putc(lireuid[i]);
notBED 0:a8c7cc9e26fb 54 }
notBED 0:a8c7cc9e26fb 55 wait_ms(25);
notBED 0:a8c7cc9e26fb 56 for (int e=0; e<1; e++) {
notBED 0:a8c7cc9e26fb 57 reponse_rfid1[e]=(rfid1.getc());
notBED 0:a8c7cc9e26fb 58 led1=1;
notBED 0:a8c7cc9e26fb 59 }
notBED 0:a8c7cc9e26fb 60 if (reponse_rfid1[0] == 0xD6) {
notBED 0:a8c7cc9e26fb 61 for (int i=0; i<2; i++) {
notBED 0:a8c7cc9e26fb 62 rfid2.putc(lireuid[i]);
notBED 0:a8c7cc9e26fb 63 led2=1;
notBED 0:a8c7cc9e26fb 64 }
notBED 0:a8c7cc9e26fb 65 wait_ms(50);
notBED 0:a8c7cc9e26fb 66 for (int e=1; e<5; e++) {
notBED 0:a8c7cc9e26fb 67 reponse_rfid[e]=(rfid1.getc());
notBED 0:a8c7cc9e26fb 68 led3=1;
notBED 0:a8c7cc9e26fb 69 }
notBED 0:a8c7cc9e26fb 70 /*for(int i=0;i<5;i++){
notBED 0:a8c7cc9e26fb 71 tag[i] = {0};
notBED 0:a8c7cc9e26fb 72 }*/
notBED 0:a8c7cc9e26fb 73 pc.printf("---------------------------------------");
notBED 0:a8c7cc9e26fb 74 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 75 pc.printf("Trame de reponse du PCB en hexa : ");
notBED 0:a8c7cc9e26fb 76 for (int i=0; i<2; i++) pc.printf("%X ",lireuid[i]);
notBED 0:a8c7cc9e26fb 77 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 78 pc.printf("Status = %X\n\r",reponse_rfid1[0]);
notBED 0:a8c7cc9e26fb 79 pc.printf("UID = ");
notBED 0:a8c7cc9e26fb 80 for (int i=1; i<5; i++) pc.printf("%X ",reponse_rfid[i]);
notBED 0:a8c7cc9e26fb 81 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 82 pc.printf("---------------------------------------");
notBED 0:a8c7cc9e26fb 83 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 84 } else if (reponse_rfid1[0] == 0xC0) {
notBED 1:290a357d0da0 85 field();
notBED 0:a8c7cc9e26fb 86 }
notBED 0:a8c7cc9e26fb 87 if (reponse_rfid1[0] == 0xE0) {
notBED 0:a8c7cc9e26fb 88 Antenna();
notBED 0:a8c7cc9e26fb 89 }
notBED 1:290a357d0da0 90 //reponse_rfid[1]=0x00;
notBED 1:290a357d0da0 91
notBED 0:a8c7cc9e26fb 92 for(int i=1; i<5; i++) {
notBED 0:a8c7cc9e26fb 93 tag[i-1] = reponse_rfid[i];
notBED 0:a8c7cc9e26fb 94 }
notBED 1:290a357d0da0 95 if(tag[0] != 0x00) {
notBED 1:290a357d0da0 96 pc.printf("\n\r");
notBED 1:290a357d0da0 97 pc.printf("tableau de 0: %X", tag[0]);
notBED 1:290a357d0da0 98 pc.printf("\n\r");
notBED 1:290a357d0da0 99
notBED 1:290a357d0da0 100 for(int i=0; i<4; i++) {
notBED 1:290a357d0da0 101 if(tag[i] == tag1[i]) {
notBED 1:290a357d0da0 102 egal1 = 1;
notBED 1:290a357d0da0 103 pc.printf("Tag1 - OK ");
notBED 1:290a357d0da0 104 pc.printf("\n\r");
notBED 1:290a357d0da0 105 ledmanu = 1;
notBED 1:290a357d0da0 106 break;
notBED 1:290a357d0da0 107 //pc.printf(tag[i]);
notBED 1:290a357d0da0 108 } else if(tag[i] != tag1[i]) {
notBED 1:290a357d0da0 109 pc.printf("Tag1 - NOK ");
notBED 1:290a357d0da0 110 pc.printf("\n\r");
notBED 1:290a357d0da0 111 egal1 = 0;
notBED 1:290a357d0da0 112 break;
notBED 1:290a357d0da0 113 //pc.printf(tag[i]);
notBED 1:290a357d0da0 114 }
notBED 0:a8c7cc9e26fb 115 }
notBED 1:290a357d0da0 116 for(int i=0; i<4; i++) {
notBED 1:290a357d0da0 117 if(tag[i] == tag2[i]) {
notBED 1:290a357d0da0 118 egal2 = 1;
notBED 1:290a357d0da0 119 pc.printf("Tag2 - OK ");
notBED 1:290a357d0da0 120 pc.printf("\n\r");
notBED 1:290a357d0da0 121 break;
notBED 1:290a357d0da0 122 //pc.printf(tag[i]);
notBED 1:290a357d0da0 123 } else if(tag[i] != tag2[i]) {
notBED 1:290a357d0da0 124 pc.printf("Tag2 - NOK ");
notBED 1:290a357d0da0 125 pc.printf("\n\r");
notBED 1:290a357d0da0 126 egal2 = 0;
notBED 1:290a357d0da0 127 break;
notBED 1:290a357d0da0 128 //pc.printf(tag[i]);
notBED 1:290a357d0da0 129 }
notBED 0:a8c7cc9e26fb 130 }
notBED 1:290a357d0da0 131 for(int i=0; i<4; i++) {
notBED 1:290a357d0da0 132 if(tag[i] == tag3[i]) {
notBED 1:290a357d0da0 133 egal3 = 1;
notBED 1:290a357d0da0 134 pc.printf("Tag3 - OK ");
notBED 1:290a357d0da0 135 pc.printf("\n\r");
notBED 1:290a357d0da0 136 break;
notBED 1:290a357d0da0 137 //pc.printf(tag[i]);
notBED 1:290a357d0da0 138 } else if(tag[i] != tag3[i]) {
notBED 1:290a357d0da0 139 pc.printf("Tag3 - NOK ");
notBED 1:290a357d0da0 140 pc.printf("\n\r");
notBED 1:290a357d0da0 141 egal3 = 0;
notBED 1:290a357d0da0 142 break;
notBED 1:290a357d0da0 143 //pc.printf(tag[i]);
notBED 1:290a357d0da0 144 }
notBED 0:a8c7cc9e26fb 145 }
notBED 1:290a357d0da0 146 for(int i=0; i<4; i++) {
notBED 1:290a357d0da0 147 if(tag[i] == tag4[i]) {
notBED 1:290a357d0da0 148 egal4 = 1;
notBED 1:290a357d0da0 149 pc.printf("Tag4 - OK ");
notBED 1:290a357d0da0 150 pc.printf("\n\r");
notBED 1:290a357d0da0 151 break;
notBED 1:290a357d0da0 152 //pc.printf(tag[i]);
notBED 1:290a357d0da0 153 } else if(tag[i] != tag4[i]) {
notBED 1:290a357d0da0 154 pc.printf("Tag4 - NOK ");
notBED 1:290a357d0da0 155 pc.printf("\n\r");
notBED 1:290a357d0da0 156 egal4 = 0;
notBED 1:290a357d0da0 157 break;
notBED 1:290a357d0da0 158 //pc.printf(tag[i]);
notBED 1:290a357d0da0 159 }
notBED 0:a8c7cc9e26fb 160 }
notBED 1:290a357d0da0 161 for(int i=0; i<4; i++) {
notBED 1:290a357d0da0 162 if(tag[i] == tag5[i]) {
notBED 1:290a357d0da0 163 egal5 = 1;
notBED 1:290a357d0da0 164 pc.printf("Tag5 - OK ");
notBED 1:290a357d0da0 165 pc.printf("\n\r");
notBED 1:290a357d0da0 166 break;
notBED 1:290a357d0da0 167 //pc.printf(tag[i]);
notBED 1:290a357d0da0 168 } else if(tag[i] != tag5[i]) {
notBED 1:290a357d0da0 169 pc.printf("Tag5 - NOK ");
notBED 1:290a357d0da0 170 pc.printf("\n\r");
notBED 1:290a357d0da0 171 egal5 = 0;
notBED 1:290a357d0da0 172 break;
notBED 1:290a357d0da0 173 //pc.printf(tag[i]);
notBED 1:290a357d0da0 174 }
notBED 0:a8c7cc9e26fb 175 }
notBED 1:290a357d0da0 176 reponse_rfid[1]=0x00;
notBED 0:a8c7cc9e26fb 177 }
notBED 0:a8c7cc9e26fb 178
notBED 0:a8c7cc9e26fb 179 led1=0;
notBED 0:a8c7cc9e26fb 180 led2=0;
notBED 0:a8c7cc9e26fb 181 led3=0;
notBED 0:a8c7cc9e26fb 182
notBED 0:a8c7cc9e26fb 183 wait_ms(850);
notBED 0:a8c7cc9e26fb 184 }
notBED 1:290a357d0da0 185 ledmanu = 0;
notBED 0:a8c7cc9e26fb 186 }
notBED 0:a8c7cc9e26fb 187 }
notBED 0:a8c7cc9e26fb 188
notBED 0:a8c7cc9e26fb 189 /*void HandShake(){
notBED 0:a8c7cc9e26fb 190 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 191 pc.printf("CTS IS TO 0");
notBED 0:a8c7cc9e26fb 192 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 193 }*/
notBED 0:a8c7cc9e26fb 194
notBED 0:a8c7cc9e26fb 195 void Antenna()
notBED 0:a8c7cc9e26fb 196 {
notBED 0:a8c7cc9e26fb 197 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 198 pc.printf("ANTENNA NOT DETECTED");
notBED 0:a8c7cc9e26fb 199 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 200 }
notBED 0:a8c7cc9e26fb 201
notBED 1:290a357d0da0 202 void field()
notBED 0:a8c7cc9e26fb 203 {
notBED 0:a8c7cc9e26fb 204 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 205 pc.printf("NOT TAG IN FIELD");
notBED 0:a8c7cc9e26fb 206 pc.printf("\n\r");
notBED 0:a8c7cc9e26fb 207 }