Controllo accessi RFID e MySQL

Salve ragazzi , è da un paio di settimane che lavoro a questo progetto . Vorrei creare questo sistema di controllo accessi tramite autenticazione rfid. Il tutto è correlato di database dove viene cercato se il codice rfid è presente consente l'accesso , mentre se non è presente non consente l'accesso .
Fino a qualche giorno fa tutto "funzionava" fino alla connessione del database. Al passaggio del tag rfid non effettuava la query ,dandomi un errore di sql syntax. Adesso dopo 5 giorni mi rimetto a testare e non si collega più al DB, senza aver cambiato nulla (IP del server uguale).
Potete aiutarmi a capire il perchè? Ho usato arduino uno , RC522 e Ethshield .
vi posto il codice

Questo programma permette di collegarsi ad un DB MySQL per verificare se il codice della tessera magnetica è corretto
PINOUT:
  
RC522 MODULE    Uno/Nano    
SDA             D10 //sposto da 10 a 4
SCK             D13
MOSI            D11
MISO            D12
IRQ             N/A
GND             GND
RST             D9
3.3V            3.3V






#include "SPI.h"
#include "Ethernet.h"
#include "sha1.h"
#include "mysql.h"
#include "RFID.h"
/* Vengono definiti PIN del RFID reader*/
#define SDA_DIO 3  // 53 per Mega lo sposto a 4 perche interferenza SPI CON LA SHIELD
#define RESET_DIO 9
#define delayRead 1000 // Time of delay 1000
#define LEDGREEN 5 //13-->3
#define LEDRED 6   //12
  
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO); 
byte mac_addr[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server_addr(192,168,1,11);   //192.168.1.5 macchina virtuale
Connector my_conn;
char user[] = "bob"; //database in virtualmachine server2 con permessi
char password[] = "secret";
char QUERY_POP[50] = "SELECT * FROM auth.codice as AK Where AK.code='%s'";
char query[65];
  //as AK Where AK.char      QUERY_POP[50] = "Select * From Auth.Codes as AK Where AK.Code='%s'";
void setup() {

 
 Ethernet.begin(mac_addr);
 
 Serial.begin(9600);
 /* Abilita SPI*/
 SPI.begin(); 
 /* Viene inizilizzato RFID reader */
 RC522.init();
 pinMode(5,OUTPUT); //13 AL POSTO DI 4--->5
 while (!Serial);
 delay(1000);
 Serial.println("Connessione al Database Auth in corso ...");
 if (my_conn.mysql_connect(server_addr, 3306, user, password)){
Serial.println("Connesso al Database Auth!");
 } else {
 Serial.println("Connessione fallita al Database!");
 }
}
void loop() {
  
    //Serial.println("Comincia il loop()");

   /* Temporary loop counter */
  byte i;
  // Se viene letta una tessera
  if (RC522.isCard())
  {
    // Viene letto il suo codice 
    RC522.readCardSerial();
          Serial.println("DEBUG 1");

    String codiceLetto ="";
    Serial.println("Codice delle tessera letto:");
  
  Serial.println("DEBUG 2");
    // Viene caricato il codice della tessera, all'interno di una Stringa
    for(i = 0; i <= 4; i++)
    {
      codiceLetto+= String (RC522.serNum[i],HEX);
      codiceLetto.toUpperCase();
        Serial.println("DEBUG 2");

    }
    char charBuf[12];
    codiceLetto.toCharArray(charBuf, 12); 
    Serial.println(codiceLetto);
      Serial.println("DEBUG 3");

    if(isAuthorized(charBuf)){
      Serial.println("Tessera autorizzata");
      accendiLed(LEDGREEN);
    }else{
      Serial.println("Tessera non autorizzata");
      accendiLed(LEDRED);
    }
  delay(delayRead);  
  }
 }
  
// Controlla se un codice è autorizzato
boolean isAuthorized(char code[]){
   
sprintf(query, QUERY_POP,code);
        Serial.println("DEBUG 4");

my_conn.cmd_query(query);

      Serial.println("DEBUG QUERY AUTHORIZED");

my_conn.get_columns();
row_values *row = NULL;
 int number = 0;
 while (row = my_conn.get_next_row()) {
number++;
 my_conn.free_row_buffer();
 }
   
 my_conn.free_columns_buffer();
 if(number==0){
   return false;
 }else{
  return true; 
 }
}
 
// Questa funzione permette di accendere un LED per un determinato periodo
void accendiLed(int ledPin){
  digitalWrite(ledPin,HIGH);
  delay(delayRead);
  digitalWrite(ledPin,LOW);
}

Buonasera,
essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

gpb01:
Buonasera,
essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

Ha perfettamente ragione :slight_smile: cercavo la sezione per presentarmi e non avevo notato che fosse il Thread fissato in alto . Grazie per avermelo fatto notare .
Giuseppe