0

SIM800 module and a standard Arduino, I have a function to communicate by software serial with the module:

 String SIM800_send(String Incomming){
      SoftwareSerial SIM800(SIM800_TX_PIN,SIM800_RX_PIN); 
  SIM800.begin(9600);  
 delay(300);   
SIM800.println(Incomming);  
delay(100); 
 String result = "";
   while (SIM800.available()) {
  char letter = SIM800.read();
   result = result +  String(letter);  
 }

It appears to work fine in the serial monitor, and a simple "AT" command returns OK:

However I can not get this to work:

  String modreturn = SIM800_send("AT");

  Serial.print(modreturn);

  if (modreturn == "OK"){
     Serial.print("Modem Comms OK");
    }else{
    Serial.println("Modem Not Healthy");
     }

In the serial monitor I am seeing an echo of AT and OK , it's beyond me why the comparison does't work, what am I doing wrong here?

Serial monitor shows:

-> AT
-> OK
-> Modem Not Healthy

My modem is always "Not Healthy" even though I can see the OK reply from the SIM800.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.