11/12/2560

Dependencies:   mbed

Fork of RC522_LF by FRA221:A

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "MFRC522.h"
00003 
00004 #define MF_RESET    D8  // pin du Nucleo branchée à la pin RST du RC522
00005 
00006 const char bonUID[4] = {0x90, 0xCF, 0x94, 0x75};
00007 
00008 MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
00009 
00010 DigitalOut led_1(D2);  // LED verte à la pin D2
00011 DigitalOut led_2(D3);  // LED rouge à la pin D3
00012 
00013 int main(void) {
00014 
00015   RfChip.PCD_Init();
00016 
00017   while (true) {
00018     
00019     int refus = 0;  // demeure nul si l'UID est bon
00020     
00021     if ( ! RfChip.PICC_IsNewCardPresent())
00022     {
00023       wait_ms(500);
00024       continue;
00025     }
00026 
00027     if ( ! RfChip.PICC_ReadCardSerial())
00028     {
00029       wait_ms(500);
00030       continue;
00031     }
00032          
00033     for (uint8_t i = 0; i < RfChip.uid.size; i++)
00034     {
00035       if (RfChip.uid.uidByte[i] != bonUID[i]) {
00036           refus++;
00037         }
00038     }
00039     //printf("%d\n",refus);
00040     printf("%d%d%d%d\n",RfChip.uid.uidByte[0],RfChip.uid.uidByte[1],RfChip.uid.uidByte[2],RfChip.uid.uidByte[3]);
00041     /*printf("%d%d%d%d\n",bonUID[0],bonUID[1],bonUID[2],bonUID[3]);
00042     printf("%d\n",RfChip.uid.size);*/
00043     if (refus == 4) // UID accepté
00044     {
00045         printf("DATA1 OK \n");
00046         printf("Temp = %d \n",RfChip.uid.uidByte[0]);
00047         printf("Hum = %d \n",RfChip.uid.uidByte[1]);
00048         printf("Lux = %d \n",RfChip.uid.uidByte[2]);
00049         printf("water = %d \n",RfChip.uid.uidByte[3]);
00050         // on allume la LED verte pendant quelques secondes
00051     led_1 = 1; // On allume la LED 1
00052     wait_ms(5000);
00053     led_1 = 0; // On éteint la LED 1
00054     }
00055     else  {  // UID refusé
00056         // on allume la LED rouge pendant quelques secondes
00057         printf("DATA Error\n");
00058     led_2 = 1;
00059     wait_ms(5000);
00060     led_2 = 0;
00061     }     
00062   }
00063 }