سلام دوستان من یک کد رو برای کنترل رله با جی اس ام گرفتم که توی کد سیم 800ال استفاده شده من میخام بجاش gsm a6 استفاده کنم ودر سریال مانیتور پارامترهای اولیه رو چک میکنه و اخرش مینویسه Initialized Successfully اما وقتی پیام load1on رو برای روشن کردن رله میفرستیم اس ام اس رو دریافت و روی سریال مینویسه اما رله رو روشن نمی کنه وتایید روشن شدن هم بر نمی گردونه ممنون میشم راهنمایی کنید چه تغییری در کد نیاز هست بدم تا بجای سیم 800 بتونم a6(AI THINKER استفاده کنم ممنون میشم راهنمایی بفرمایید؟
کد PHP:
#include <EEPROM.h>
#include <SoftwareSerial.h> //Create software serial object to communicate with SIM800L
SoftwareSerial GSM(89);   //SIM800L Tx & Rx is connected to Arduino #8 & #9

String phone_no1 "+923378655465"//change +92 with country code and 3378655465 with phone number to sms
String phone_no2 "Enter Number2"

String        RxString  ""// Will hold the incoming String  from the GSM shield
char          RxChar    ' ';
int           Counter   0;
String        GSM_Nr    "";
String        GSM_Msg   "";

#define Relay1 2 // Load1 Pin Out
#define Relay2 3 // Load2 Pin Out
#define Relay3 4 // Load3 Pin Out
#define Relay4 5 // Load4 Pin Out

int load1load2load3load4;

void setup(){ // put your setup code here, to run once

pinMode(Relay1OUTPUT); digitalWrite(Relay11); 
pinMode(Relay2OUTPUT); digitalWrite(Relay21); 
pinMode(Relay3OUTPUT); digitalWrite(Relay31); 
pinMode(Relay4OUTPUT); digitalWrite(Relay41); 

Serial.begin(9600);//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)  
GSM.begin(9600);   //Begin serial communication with Arduino and SIM800L

Serial.println("Initializing....");
initModule("AT","OK",1000);                //Scan for GSM Module
initModule("AT+CPIN?","READY",1000);       //this command is used to check whether SIM card is inserted in GSM Module or not
initModule("AT+CMGF=1","OK",1000);         //Set SMS mode to ASCII
initModule("AT+CNMI=2,2,0,0,0","OK",1000); //Set device to read SMS if available and print to serial
Serial.println("Initialized Successfully"); 

load1 EEPROM.read(1);
load2 EEPROM.read(2);
load3 EEPROM.read(3);
load4 EEPROM.read(4);

relays();

delay(100);
}

void loop(){

  
// scan for data from software serial port
  //-----------------------------------------------
  
RxString "";
  
Counter 0;
  while(
GSM.available()){
    
delay(1);  // short delay to give time for new data to be placed in buffer
    // get new character
    
RxChar char(GSM.read());
    
//add first 200 character to string
    
if (Counter 200) {
      
RxString.concat(RxChar);
      
Counter Counter 1;
    }
  }

  
// Is there a new SMS?
  //-----------------------------------------------
  
if (Received(F("CMT:")) ) GetSMS();

if(
GSM_Nr==phone_no1 || GSM_Nr==phone_no2){

if(
GSM_Msg=="load1on") {load1=0sendSMS(GSM_Nr,"Ok Load 1 is On");}
if(
GSM_Msg=="load1off"){load1=1sendSMS(GSM_Nr,"Ok Load 1 is Off");}

if(
GSM_Msg=="load2on") {load2=0sendSMS(GSM_Nr,"Ok Load 2 is On");}
if(
GSM_Msg=="load2off"){load2=1sendSMS(GSM_Nr,"Ok Load 2 is Off");}

if(
GSM_Msg=="load3on") {load3=0sendSMS(GSM_Nr,"Ok Load 3 is On");}
if(
GSM_Msg=="load3off"){load3=1sendSMS(GSM_Nr,"Ok Load 3 is Off");}

if(
GSM_Msg=="load4on") {load4=0sendSMS(GSM_Nr,"Ok Load 4 is On");}
if(
GSM_Msg=="load4off"){load4=1sendSMS(GSM_Nr,"Ok Load 4 is Off");}

if(
GSM_Msg=="allon") {load1=0load2=0load3=0load4=0sendSMS(GSM_Nr,"Ok All Load is On");}
if(
GSM_Msg=="alloff"){load1=1load2=1load3=1load4=1sendSMS(GSM_Nr,"Ok All Load is Off");}

if(
GSM_Msg=="loadstatus"){
String loadst "";

if(
load1==0){loadst="Load1 On\r\n";}
        else{
loadst="Load1 Off\r\n";}

if(
load2==0){loadst=loadst "Load2 On\r\n";}
        else{
loadst=loadst "Load2 Off\r\n";}

if(
load3==0){loadst=loadst "Load3 On\r\n";}
        else{
loadst=loadst "Load3 Off\r\n";}

if(
load4==0){loadst=loadst "Load4 On";}
        else{
loadst=loadst "Load4 Off";}

sendSMS(GSM_Nr,loadst);
}

eeprom_write();
relays();
}


GSM_Nr="";
GSM_Msg="";
}

void eeprom_write(){
EEPROM.write(1,load1);
EEPROM.write(2,load2);
EEPROM.write(3,load3);
EEPROM.write(4,load4);  
}

void relays(){  
digitalWrite(Relay1load1); 
digitalWrite(Relay2load2); 
digitalWrite(Relay3load3); 
digitalWrite(Relay4load4); 
}

// Send SMS 
void sendSMS(String numberString msg){
GSM.print("AT+CMGS=\"");GSM.print(number);GSM.println("\"\r\n"); //AT+CMGS=”Mobile Number” <ENTER> - Assigning recipient’s mobile number
delay(500);
GSM.println(msg); // Message contents
delay(500);
GSM.write(byte(26)); //Ctrl+Z  send message command (26 in decimal).
delay(5000);  
}

// Get SMS Content
void GetSMS() {
  
//Get SMS number
  //================================================
  
GSM_Nr  RxString;
  
//get number
  
int t1 GSM_Nr.indexOf('"');
  
GSM_Nr.remove(0,t1 1);
  
t1 GSM_Nr.indexOf('"');
  
GSM_Nr.remove(t1);

  
// Get SMS message
  //================================================
  
GSM_Msg RxString;
  
t1 GSM_Msg.indexOf('"');
  
GSM_Msg.remove(0,t1 1);
  
t1 GSM_Msg.indexOf('"');
  
GSM_Msg.remove(0,t1 1);
  
t1 GSM_Msg.indexOf('"');
  
GSM_Msg.remove(0,t1 1);
  
t1 GSM_Msg.indexOf('"');
  
GSM_Msg.remove(0,t1 1);
  
t1 GSM_Msg.indexOf('"');
  
GSM_Msg.remove(0,t1 1);
  
t1 GSM_Msg.indexOf('"');
  
GSM_Msg.remove(0,t1 1);
  
GSM_Msg.remove(0,1);
  
GSM_Msg.trim();

Serial.print("Number:"); Serial.println(GSM_Nr);
Serial.print("SMS:"); Serial.println(GSM_Msg);
}

// Search for specific characters inside RxString 
boolean Received(String S) {
  if (
RxString.indexOf(S) >= 0) return true; else return false;
}


// Init GSM Module 
void initModule(String cmdchar *resint t){
while(
1){
    
Serial.println(cmd);
    
GSM.println(cmd);
    
delay(100);
    while(
GSM.available()>0){
       if(
GSM.find(res)){
        
Serial.println(res);
        
delay(t);
        return;
       }else{
Serial.println("Error");}}
    
delay(t);
  }