bluemix rfid

Dependencies:   C12832 EthernetInterface IBMIoTClientEthernetExample LM75B MMA7660 MQTT iBMrfid mbed-rtos mbed

Fork of IBMIoTClientEthernetExample by IBM Watson IoT

Files at this revision

API Documentation at this revision

Comitter:
muhammadimran
Date:
Fri Mar 18 10:28:03 2016 +0000
Parent:
18:94da9de96d54
Commit message:
IBM blue mix rfid

Changed in this revision

C027.h Show annotated file Show diff for this revision Revisions of this file
IBMIoTClientEthernetExample.lib Show annotated file Show diff for this revision Revisions of this file
K64F.h Show annotated file Show diff for this revision Revisions of this file
LPC1768.h Show annotated file Show diff for this revision Revisions of this file
RFID.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 94da9de96d54 -r 0cbe652c98cc C027.h
--- a/C027.h	Wed Aug 12 20:50:56 2015 +0000
+++ b/C027.h	Fri Mar 18 10:28:03 2016 +0000
@@ -17,7 +17,7 @@
 #if !defined(K64F_H)
 #define K64F_H
 
-C12832 lcd(D11, D13, D12, D7, D10);
+//C12832 lcd(D11, D13, D12, D7, D10);
 PwmOut r(D5);
 PwmOut g(D9);
 PwmOut b(D8);
diff -r 94da9de96d54 -r 0cbe652c98cc IBMIoTClientEthernetExample.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IBMIoTClientEthernetExample.lib	Fri Mar 18 10:28:03 2016 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/IBM_IoT/code/IBMIoTClientEthernetExample/#94da9de96d54
diff -r 94da9de96d54 -r 0cbe652c98cc K64F.h
--- a/K64F.h	Wed Aug 12 20:50:56 2015 +0000
+++ b/K64F.h	Fri Mar 18 10:28:03 2016 +0000
@@ -18,7 +18,7 @@
 #if !defined(K64F_H)
 #define K64F_H
 
-C12832 lcd(D11, D13, D12, D7, D10);
+//C12832 lcd(D11, D13, D12, D7, D10);
 BusOut led2 (LED_BLUE);
 BusOut r (D5);
 BusOut g (D9);
diff -r 94da9de96d54 -r 0cbe652c98cc LPC1768.h
--- a/LPC1768.h	Wed Aug 12 20:50:56 2015 +0000
+++ b/LPC1768.h	Fri Mar 18 10:28:03 2016 +0000
@@ -18,9 +18,9 @@
 #if !defined(LPC1768_H)
 #define LPC1768_H
 
-C12832 lcd(p5, p7, p6, p8, p11);
+//C12832 lcd(p5, p7, p6, p8, p11);
 DigitalOut led2(LED2);
-PwmOut r(p23);
+/*PwmOut r(p23);
 PwmOut g(p24);
 PwmOut b(p25);
 MMA7660 MMA(p28, p27);
@@ -31,7 +31,7 @@
 DigitalIn Up(p15);
 DigitalIn Right(p16);
 AnalogIn ain1(p19);
-AnalogIn ain2(p20);
+AnalogIn ain2(p20);*/
 
 #define LED2_OFF 0
 #define LED2_ON 1
diff -r 94da9de96d54 -r 0cbe652c98cc RFID.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RFID.lib	Fri Mar 18 10:28:03 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/muhammadimran/code/iBMrfid/#d4f561785b16
diff -r 94da9de96d54 -r 0cbe652c98cc main.cpp
--- a/main.cpp	Wed Aug 12 20:50:56 2015 +0000
+++ b/main.cpp	Fri Mar 18 10:28:03 2016 +0000
@@ -27,18 +27,20 @@
 #include "MMA7660.h"
 #include "MQTTClient.h"
 #include "MQTTEthernet.h"
-#include "C12832.h"
+//#include "C12832.h"
 #include "Arial12x12.h"
 #include "rtos.h"
 
+#include "MFRC522.h"
+
 // Update this to the next number *before* a commit
 #define __APP_SW_REVISION__ "18"
 
 // Configuration values needed to connect to IBM IoT Cloud
-#define ORG "quickstart"             // For a registered connection, replace with your org
-#define ID ""                        // For a registered connection, replace with your id
-#define AUTH_TOKEN ""                // For a registered connection, replace with your auth-token
-#define TYPE DEFAULT_TYPE_NAME       // For a registered connection, replace with your type
+#define ORG "nqnqo3"             // For a registered connection, replace with your org
+#define ID "0002f7f260cc"                        // For a registered connection, replace with your id
+#define AUTH_TOKEN "xXgpv8_f4TM8*h&voy"                // For a registered connection, replace with your auth-token
+#define TYPE "mbed-ers4"      // For a registered connection, replace with your type
 
 #define MQTT_PORT 1883
 #define MQTT_TLS_PORT 8883
@@ -58,8 +60,20 @@
 #endif
 
 
+#define SPI_MOSI    p5
+#define SPI_MISO    p6
+#define SPI_SCK     p7
+#define SPI_CS      p21
+#define MF_RESET    p8
+#define UART_RX     p10
+#define UART_TX     p9
+
+//Serial connection to PC for output
+Serial pc(p9,p10);
+MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, MF_RESET);
+
 bool quickstartMode = true;
-char org[11] = ORG;  
+char org[11] = ORG;
 char type[30] = TYPE;
 char id[30] = ID;                 // mac without colons
 char auth_token[30] = AUTH_TOKEN; // Auth_token is only used in non-quickstart mode
@@ -73,6 +87,10 @@
 int retryAttempt = 0;
 int menuItem = 0;
 
+//char  RFID[25]="ECD0D334";
+//char* RFID_str = (char*) malloc (2*RfChip.uid.size + 1);
+char RFID_new[9];
+char RFID_old[9];
 char* joystickPos = "CENTRE";
 int blink_interval = 0;
 
@@ -81,60 +99,88 @@
 char* host_addr = "";
 int connectTimeout = 1000;
 
+bool tag_EN = true;
+bool New_RFID = false ;
+
 // If we wanted to manually set the MAC address,
 // this is how to do it. In this example, we take
 // the original Mbed Set MAC address and combine it
 // with a prefix of our choosing.
- /*
+/*
 extern "C" void $Super$$mbed_mac_address(char *s);
-extern "C" void $Sub$$mbed_mac_address(char *s) 
+extern "C" void $Sub$$mbed_mac_address(char *s)
 {
-    char originalMAC[6] = "";
-    $Super$$mbed_mac_address(originalMAC);
-    
-    char mac[6];
-    mac[0] = 0x00;
-    mac[1] = 0x08;
-    mac[2] = 0xdc;
-    mac[3] = originalMAC[3];
-    mac[4] = originalMAC[4];
-    mac[5] = originalMAC[5];
-    memcpy(s, mac, 6);
+   char originalMAC[6] = "";
+   $Super$$mbed_mac_address(originalMAC);
+
+   char mac[6];
+   mac[0] = 0x00;
+   mac[1] = 0x08;
+   mac[2] = 0xdc;
+   mac[3] = originalMAC[3];
+   mac[4] = originalMAC[4];
+   mac[5] = originalMAC[5];
+   memcpy(s, mac, 6);
 }
 */
 
+void tagRFID(void const *args)
+{
+    
+    
+    while(tag_EN)
+    {
+        while(  !RfChip.PICC_IsNewCardPresent()) {
+                Thread::wait(10); 
+                continue;            
+        }
+        if ( ! RfChip.PICC_ReadCardSerial()) {
+                //wait_ms(100);
+                //continue;
+        }
+    
+        uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
+        
+        sprintf(RFID_new,"%02X%02X%02X%02X",RfChip.uid.uidByte[0],RfChip.uid.uidByte[1],RfChip.uid.uidByte[2],RfChip.uid.uidByte[3]);
+    }
+    
+    for(int i=0;i<9;i++)
+    {
+        RFID_old[i]=RFID_new[i];
+    }
+    
+}
 
 void off()
 {
-    r = g = b = 1.0;    // 1 is off, 0 is full brightness
+    //r = g = b = 1.0;    // 1 is off, 0 is full brightness
 }
 
 void red()
 {
-    r = 0.7; g = 1.0; b = 1.0;    // 1 is off, 0 is full brightness
+    //r = 0.7; g = 1.0; b = 1.0;    // 1 is off, 0 is full brightness
 }
 
 void yellow()
 {
-    r = 0.7; g = 0.7; b = 1.0;    // 1 is off, 0 is full brightness
+    //r = 0.7; g = 0.7; b = 1.0;    // 1 is off, 0 is full brightness
 }
 
 void green()
 {
-    r = 1.0; g = 0.7; b = 1.0;    // 1 is off, 0 is full brightness
+    //r = 1.0; g = 0.7; b = 1.0;    // 1 is off, 0 is full brightness
 }
 
 
 void flashing_yellow(void const *args)
 {
     bool on = false;
-    while (!connected && connack_rc != MQTT_NOT_AUTHORIZED && connack_rc != MQTT_BAD_USERNAME_OR_PASSWORD)    // flashing yellow only while connecting 
-    {
-        on = !on; 
+    while (!connected && connack_rc != MQTT_NOT_AUTHORIZED && connack_rc != MQTT_BAD_USERNAME_OR_PASSWORD) {  // flashing yellow only while connecting
+        on = !on;
         if (on)
             yellow();
         else
-            off();   
+            off();
         wait(0.5);
     }
 }
@@ -143,8 +189,7 @@
 void flashing_red(void const *args)  // to be used when the connection is lost
 {
     bool on = false;
-    while (!connected)
-    {
+    while (!connected) {
         on = !on;
         if (on)
             red();
@@ -155,13 +200,12 @@
 }
 
 
-void printMenu(int menuItem) 
+void printMenu(int menuItem)
 {
     static char last_line1[30] = "", last_line2[30] = "";
     char line1[30] = "", line2[30] = "";
-        
-    switch (menuItem)
-    {
+
+    switch (menuItem) {
         case 0:
             sprintf(line1, "IBM IoT Cloud");
             sprintf(line2, "Scroll with joystick");
@@ -178,14 +222,11 @@
             sprintf(line1, "MQTT Status:");
             if (mqttConnecting)
                 sprintf(line2, "Connecting... %d/5", retryAttempt);
-            else
-            {
+            else {
                 if (connected)
                     sprintf(line2, "Connected");
-                else
-                {
-                    switch (connack_rc)
-                    {
+                else {
+                    switch (connack_rc) {
                         case MQTT_CLIENTID_REJECTED:
                             sprintf(line2, "Clientid rejected");
                             break;
@@ -229,16 +270,15 @@
             sprintf(line2, "%d ms", connectTimeout);
             break;
     }
-    
-    if (strcmp(line1, last_line1) != 0 || strcmp(line2, last_line2) != 0)
-    {
-        lcd.cls(); 
-        lcd.locate(0, 0);
-        lcd.printf(line1);
+
+    if (strcmp(line1, last_line1) != 0 || strcmp(line2, last_line2) != 0) {
+        //lcd.cls();
+        //lcd.locate(0, 0);
+        //lcd.printf(line1);
         strncpy(last_line1, line1, sizeof(last_line1));
 
-        lcd.locate(0,16);
-        lcd.printf(line2);
+        //lcd.locate(0,16);
+        //lcd.printf(line2);
         strncpy(last_line2, line2, sizeof(last_line2));
     }
 }
@@ -246,13 +286,13 @@
 
 void setMenu()
 {
-    
-    if (Down)
+
+    /*if (Down)
     {
         joystickPos = "DOWN";
         if (menuItem >= 0 && menuItem < 9)
             printMenu(++menuItem);
-    } 
+    }
     else if (Left)
         joystickPos = "LEFT";
     else if (Click)
@@ -266,14 +306,13 @@
     else if (Right)
         joystickPos = "RIGHT";
     else
-        joystickPos = "CENTRE";
+        joystickPos = "CENTRE";*/
 }
 
 void menu_loop(void const *args)
 {
     int count = 0;
-    while(true)
-    {
+    while(true) {
         setMenu();
         if (++count % 10 == 0)
             printMenu(menuItem);
@@ -285,31 +324,32 @@
 /**
  * Display a message on the LCD screen prefixed with IBM IoT Cloud
  */
-void displayMessage(char* message)
+
+/*void displayMessage(char* message)
 {
     lcd.cls();
-    lcd.locate(0,0);        
+    lcd.locate(0,0);
     lcd.printf("IBM IoT Cloud");
     lcd.locate(0,16);
     lcd.printf(message);
-}
+}*/
 
 
 int connect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack)
-{   
+{
     const char* iot_ibm = ".messaging.internetofthings.ibmcloud.com";
-    
+
     char hostname[strlen(org) + strlen(iot_ibm) + 1];
     sprintf(hostname, "%s%s", org, iot_ibm);
     EthernetInterface& eth = ipstack->getEth();
     ip_addr = eth.getIPAddress();
     gateway_addr = eth.getGateway();
-    
+
     // Construct clientId - d:org:type:id
     char clientId[strlen(org) + strlen(type) + strlen(id) + 5];
     sprintf(clientId, "d:%s:%s:%s", org, type, id);
-    
-    // Network debug statements 
+
+    // Network debug statements
     LOG("=====================================\n");
     LOG("Connecting Ethernet.\n");
     LOG("IP ADDRESS: %s\n", eth.getIPAddress());
@@ -319,12 +359,11 @@
     LOG("Server Hostname: %s\n", hostname);
     LOG("Client ID: %s\n", clientId);
     LOG("=====================================\n");
-    
+
     netConnecting = true;
     int rc = ipstack->connect(hostname, IBM_IOT_PORT, connectTimeout);
-    if (rc != 0)
-    {
-        WARN("IP Stack connect returned: %d\n", rc);    
+    if (rc != 0) {
+        WARN("IP Stack connect returned: %d\n", rc);
         return rc;
     }
     netConnected = true;
@@ -335,22 +374,19 @@
     MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
     data.MQTTVersion = 3;
     data.clientID.cstring = clientId;
-    
-    if (!quickstartMode) 
-    {        
+
+    if (!quickstartMode) {
         data.username.cstring = "use-token-auth";
         data.password.cstring = auth_token;
     }
-    
-    if ((rc = client->connect(data)) == 0) 
-    {       
+
+    if ((rc = client->connect(data)) == 0) {
         connected = true;
-        green();    
-        displayMessage("Connected");
+        green();
+        //displayMessage("Connected");
         wait(1);
-        displayMessage("Scroll with joystick");
-    }
-    else
+        //displayMessage("Scroll with joystick");
+    } else
         WARN("MQTT connect returned %d\n", rc);
     if (rc >= 0)
         connack_rc = rc;
@@ -360,8 +396,9 @@
 
 
 int getConnTimeout(int attemptNumber)
-{  // First 10 attempts try within 3 seconds, next 10 attempts retry after every 1 minute
-   // after 20 attempts, retry every 10 minutes
+{
+    // First 10 attempts try within 3 seconds, next 10 attempts retry after every 1 minute
+    // after 20 attempts, retry every 10 minutes
     return (attemptNumber < 10) ? 3 : (attemptNumber < 20) ? 60 : 600;
 }
 
@@ -369,27 +406,25 @@
 void attemptConnect(MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE>* client, MQTTEthernet* ipstack)
 {
     connected = false;
-   
+
     // make sure a cable is connected before starting to connect
-    while (!linkStatus()) 
-    {
+    while (!linkStatus()) {
         wait(1.0f);
         WARN("Ethernet link not present. Check cable connection\n");
     }
-        
-    while (connect(client, ipstack) != MQTT_CONNECTION_ACCEPTED) 
-    {    
+
+    while (connect(client, ipstack) != MQTT_CONNECTION_ACCEPTED) {
         if (connack_rc == MQTT_NOT_AUTHORIZED || connack_rc == MQTT_BAD_USERNAME_OR_PASSWORD)
             return; // don't reattempt to connect if credentials are wrong
-            
+
         Thread red_thread(flashing_red);
 
         int timeout = getConnTimeout(++retryAttempt);
         WARN("Retry attempt number %d waiting %d\n", retryAttempt, timeout);
-        
+
         // if ipstack and client were on the heap we could deconstruct and goto a label where they are constructed
         //  or maybe just add the proper members to do this disconnect and call attemptConnect(...)
-        
+
         // this works - reset the system when the retry count gets to a threshold
         if (retryAttempt == 5)
             NVIC_SystemReset();
@@ -403,24 +438,26 @@
 {
     MQTT::Message message;
     char* pubTopic = "iot-2/evt/status/fmt/json";
-            
+
     char buf[250];
-    sprintf(buf,
-     "{\"d\":{\"myName\":\"IoT mbed\",\"accelX\":%0.4f,\"accelY\":%0.4f,\"accelZ\":%0.4f,\"temp\":%0.4f,\"joystick\":\"%s\",\"potentiometer1\":%0.4f,\"potentiometer2\":%0.4f}}",
-            MMA.x(), MMA.y(), MMA.z(), sensor.temp(), joystickPos, ain1.read(), ain2.read());
+    /*printf(buf,
+      "{\"d\":{\"myName\":\"IoT mbed\",\"accelX\":%0.4f,\"accelY\":%0.4f,\"accelZ\":%0.4f,\"temp\":%0.4f,\"joystick\":\"%s\",\"potentiometer1\":%0.4f,\"potentiometer2\":%0.4f,\"badge\":\"%s\"}}",
+             0.5, 0.5, 0.5,0.5,RFID, 0.5, 0.5,RFID_str);*/
+
+    sprintf(buf,"{\"d\":{\"myName\":\"IoT mbed\",\"key\":\"%s\"}}",RFID_old);
     message.qos = MQTT::QOS0;
     message.retained = false;
     message.dup = false;
     message.payload = (void*)buf;
     message.payloadlen = strlen(buf);
-    
+
     LOG("Publishing %s\n", buf);
     return client->publish(pubTopic, message);
 }
 
 
 char* getMac(EthernetInterface& eth, char* buf, int buflen)    // Obtain MAC address
-{   
+{
     strncpy(buf, eth.getMACAddress(), buflen);
 
     char* pos;                                                 // Remove colons from mac address
@@ -434,88 +471,139 @@
 {
     MQTT::Message &message = md.message;
     char topic[md.topicName.lenstring.len + 1];
-    
+
     sprintf(topic, "%.*s", md.topicName.lenstring.len, md.topicName.lenstring.data);
+
+    LOG("Message arrived on topic %s: %.*s\n",  topic, message.payloadlen, message.payload);
     
-    LOG("Message arrived on topic %s: %.*s\n",  topic, message.payloadlen, message.payload);
-          
     // Command topic: iot-2/cmd/blink/fmt/json - cmd is the string between cmd/ and /fmt/
     char* start = strstr(topic, "/cmd/") + 5;
     int len = strstr(topic, "/fmt/") - start;
-    
-    if (memcmp(start, "blink", len) == 0)
-    {
+
+    if (memcmp(start, "blink", len) == 0) {
         char payload[message.payloadlen + 1];
         sprintf(payload, "%.*s", message.payloadlen, (char*)message.payload);
-    
+        
+
         char* pos = strchr(payload, '}');
-        if (pos != NULL)
-        {
+        if (pos != NULL) {
             *pos = '\0';
-            if ((pos = strchr(payload, ':')) != NULL)
-            {
-                int blink_rate = atoi(pos + 1);       
-                blink_interval = (blink_rate <= 0) ? 0 : (blink_rate > 50 ? 1 : 50/blink_rate);
+            if ((pos = strchr(payload, ':')) != NULL) {
+                int blink_rate = atoi(pos + 1);
+                blink_interval = blink_rate;
             }
         }
-    }
-    else
+    } else
         WARN("Unsupported command: %.*s\n", len, start);
 }
 
 
 int main()
-{    
+{
+    RfChip.PCD_Init();
     quickstartMode = (strcmp(org, "quickstart") == 0);
 
-    lcd.set_font((unsigned char*) Arial12x12);  // Set a nice font for the LCD screen
-    
-    led2 = LED2_OFF; // K64F: turn off the main board LED 
+    //lcd.set_font((unsigned char*) Arial12x12);  // Set a nice font for the LCD screen
+
+    led2 = LED2_OFF; // K64F: turn off the main board LED
+
+    //displayMessage("Connecting");
     
-    displayMessage("Connecting");
     Thread yellow_thread(flashing_yellow);
-    Thread menu_thread(menu_loop);  
-    
+    Thread menu_thread(menu_loop);
+    Thread tag_thread(tagRFID);
+
     LOG("***** IBM IoT Client Ethernet Example *****\n");
     MQTTEthernet ipstack;
     ethernetInitialising = false;
     MQTT::Client<MQTTEthernet, Countdown, MQTT_MAX_PACKET_SIZE> client(ipstack);
-    LOG("Ethernet Initialized\n"); 
-    
+    LOG("Ethernet Initialized\n");
+
     if (quickstartMode)
         getMac(ipstack.getEth(), id, sizeof(id));
-        
+
     attemptConnect(&client, &ipstack);
-    
-    if (connack_rc == MQTT_NOT_AUTHORIZED || connack_rc == MQTT_BAD_USERNAME_OR_PASSWORD)    
-    {
+
+    if (connack_rc == MQTT_NOT_AUTHORIZED || connack_rc == MQTT_BAD_USERNAME_OR_PASSWORD) {
         red();
         while (true)
             wait(1.0); // Permanent failures - don't retry
     }
-    
-    if (!quickstartMode) 
-    {
+
+    if (!quickstartMode) {
         int rc = 0;
         if ((rc = client.subscribe("iot-2/cmd/+/fmt/json", MQTT::QOS1, messageArrived)) != 0)
-            WARN("rc from MQTT subscribe is %d\n", rc); 
+            WARN("rc from MQTT subscribe is %d\n", rc);
     }
-    
+
     blink_interval = 0;
     int count = 0;
-    while (true)
-    {
-        if (++count == 100)
-        {               // Publish a message every second
-            if (publish(&client, &ipstack) != 0) 
+    while (true) {
+        if (true) {
+              client.yield(100);  // allow the MQTT client to receive messages
+            // Publish a message every second
+            /*if ( ! RfChip.PICC_IsNewCardPresent()) {
+                wait_ms(100);
+                continue;
+            }
+
+            if ( ! RfChip.PICC_ReadCardSerial()) {
+                wait_ms(100);
+                continue;
+            }*/
+
+            //LedGreen = 0;
+            // Print Card UID
+            //intf("Card UID: ");
+            //char* RFID_str = (char*) malloc (2*RfChip.uid.size + 1);
+           /* char* RFID_ptr = RFID_str;
+            for (uint8_t i = 0; i < RfChip.uid.size; i++) {
+                printf("%2X", RfChip.uid.uidByte[i]);
+                RFID_ptr += sprintf(RFID_ptr, "%02X", RfChip.uid.uidByte[i]);
+            }*/
+            
+            //sprintf(RFID_str,"%02X%02X%02X%02X",RfChip.uid.uidByte[0],RfChip.uid.uidByte[1],RfChip.uid.uidByte[2],RfChip.uid.uidByte[3]);
+            /*
+            sprintf(RFID_ptr,"\n\t");
+            *(RFID_ptr + 1) = '\0';
+            //printf("badge no : %s\n", RFID_str);
+            printf("\n");
+            //RFID2 = RFID_str;
+            */
+            // Print Card type
+            //uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
+            //printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
+            
+            wait_ms(100);
+            
+            //if(New_RFID == true )
+            //{
+                if (publish(&client, &ipstack) != 0)
                 attemptConnect(&client, &ipstack);   // if we have lost the connection
-            count = 0;
+                count = 0;
+            
+                /*if (blink_interval == 1)
+                {
+                        if (  RfChip.PICC_IsNewCardPresent()) {led2.write(1);}
+                        else
+                            {led2.write(0);}
+                }
+                else 
+                    {led2.write(0);}*/
+                //}
+            
+           // client.yield(100);  // allow the MQTT client to receive messages
+
+            //LedGreen = 1;
+
+            //Partie RFID
+            //
+            // Look for new cards
+
+
+            // Select one of the cards
         }
-        
-        if (blink_interval == 0)
-            led2 = LED2_OFF;
-        else if (count % blink_interval == 0)
-            led2 = !led2;
-        client.yield(10);  // allow the MQTT client to receive messages
     }
 }
+
+