modulo bluetooth + RFID card +servomotore [Risolto]

salve avrei bisogno di un aiuto su un progetto che sto sviluppando.
io vorrei fare in modo che se arriva un segnale bluetooth e il codice della carta magnetica corrisponde a quello inserito nello sketch, il servomotore deve girare di 90 gradi.
sono riuscito a costruirmi l’applicazione che fa girare il servo.
sono riuscito a far in modo che mi dica se la carta è corretta o meno.
il mio problema è mettere le cose assieme.
qui allego il codice

/* 
PINOUT:
RC522 MODULE    Uno/Nano    
SDA             D10
SCK             D13
MOSI            D11
MISO            D12
IRQ             N/A
GND             GND
RST             D9
3.3V            3.3V
*/
/*servomotore*/
#include <SoftwareSerial.h>
#include <Servo.h>
Servo myservo;
/*bluetooth*/
int bluetoothTx =2; // bluetooth tx to 10 pin
int bluetoothRx = 3; // bluetooth rx to 11 pin
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
/*rfid card*/
#include <SPI.h>
#include <RFID.h>
#define SDA_DIO 10  // 53 per Mega
#define RESET_DIO 9
#define delayRead 700 // Time of delay 
RFID RC522(SDA_DIO, RESET_DIO); 
 
String codiceAutorizzato = "C0449B7C63";

void setup()
{
  //setup servo
  myservo.attach(4);
  //setup bluetooth
  bluetooth.begin(9600);
  //setup RFID card
  Serial.begin(9600);
  SPI.begin(); 
  RC522.init();
  Serial.println("Setup");
}

void loop(){
  //solo bluetooth
  if(bluetooth.available()> 0 ){ // receive number from bluetooth
 
 
    int servopos = bluetooth.read();
    myservo.write(servopos); 

  }
  //solo rfit card
 byte i;

  if (RC522.isCard())
  {
    // Viene letto il suo codice 
    RC522.readCardSerial();
    String codiceLetto ="";
    Serial.println("Codice delle tessera letto:");

    for(i = 0; i <= 4; i++)
    {
      codiceLetto+= String (RC522.serNum[i],HEX);
      codiceLetto.toUpperCase();
    }
    Serial.println(codiceLetto);
    if(verificaCodice(codiceLetto)){
      Serial.println("accesso autorizzato");
    }else{
      Serial.println("accesso non autorizzato");
    }
  delay(delayRead);  
  }
}

boolean verificaCodice(String codiceLetto){
  if(codiceLetto.equals(codiceAutorizzato)){
    return true;
  }else{
    return false;
  }
}

basta che inserisci il codice del bt all'interno della if della rfid con il codice autorizzato

      if (verificaCodice(codiceLetto)) {
         Serial.println("accesso autorizzato");
         if (bluetooth.available() > 0 ) {
          ...
          ...

scusa è che non ho cominciato da molto ad utilizzare arduino :disappointed_relieved:

non ti devi scusare :slight_smile:
hai fatto una domanda e ti ho risposto
spero tu abbia capito come devi procedere :slight_smile:

certo in fatti ho risolto grazie ciao

/* 
PINOUT:
RC522 MODULE    Uno/Nano    
SDA             D10
SCK             D13
MOSI            D11
MISO            D12
IRQ             N/A
GND             GND
RST             D9
3.3V            3.3V
*/
/*servomotore*/
#include <SoftwareSerial.h>
#include <Servo.h>
Servo myservo;
/*bluetooth*/
int bluetoothTx =2; // bluetooth tx to 10 pin
int bluetoothRx = 3; // bluetooth rx to 11 pin
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
/*rfid card*/
#include <SPI.h>
#include <RFID.h>
#define SDA_DIO 10  // 53 per Mega
#define RESET_DIO 9
#define delayRead 1200 // Time of delay 
#define redled 5
#define greenled 6
RFID RC522(SDA_DIO, RESET_DIO); 
 
String codiceAutorizzato = "C0449B7C63";

void setup()
{
  //setup servo
  myservo.attach(4);
  //setup bluetooth
  bluetooth.begin(9600);
  //setup RFID card
  Serial.begin(9600);
  SPI.begin(); 
  RC522.init();
  Serial.println("Setup");
  pinMode(greenled,OUTPUT);
  pinMode(redled,OUTPUT); 
}

void loop(){
  //solo bluetooth

  
  //solo rfit card
 byte i;
if(RC522.isCard()) {
    // Viene letto il suo codice 
    RC522.readCardSerial();
    String codiceLetto ="";
    Serial.println("Codice d'accesso letto:");

    for(i = 0; i <= 4; i++){
      codiceLetto+= String (RC522.serNum[i],HEX);
      codiceLetto.toUpperCase();
    }
    Serial.println(codiceLetto);
    
    if(verificaCodice(codiceLetto)){
      Serial.println("accesso autorizzato");
    if(bluetooth.available()> 0 ){ // receive number from bluetooth
    int servopos = bluetooth.read();
    myservo.write(servopos); 
    digitalWrite(greenled,HIGH);
    digitalWrite(redled,LOW);
    }
    }else{
      Serial.println("accesso non autorizzato");
    digitalWrite(redled,HIGH);
    digitalWrite(greenled,LOW);
    }
  delay(delayRead);  
  }
}

boolean verificaCodice(String codiceLetto){
  if(codiceLetto.equals(codiceAutorizzato)){
    return true;
  }else{
    return false;
  }
}