Serial.available дает данные, входные данные не приходят

gsm

Дорогие друзья Я написал код для идентификации звонящего и отправки ответного SMS им с помощью sim 800L и pro mini. Моя программа состоит в том, чтобы идентифицировать номер вызывающего абонента, но непрерывно отправлять SMS в бесконечном цикле. Я не понимаю, в чем причина, пожалуйста, помогите мне, заранее спасибо. Код прилагается

#include <SoftwareSerial.h>
SoftwareSerial Serial1(4,3); 
String a;
String CellNumtemp;
String CellNum;

void setup()
{
  Serial.begin(9600); 
  Serial1.begin(9600);
  Serial1.println("AT");
  delay(1000);
  Serial1.println("AT+CSMP=17,167,0,0");
  delay(1000);
  Serial1.println("AT+CLIP=1");
  delay(1000);
   }

void loop(){
   if (Serial1.available() > 0){
   String a = Serial1.readString();
   String  CellNumtemp = a.substring(a.indexOf("+91"));
    CellNum = CellNumtemp.substring(0,13);
     Serial1.println("ATH");
     delay(500);
     Serial.println(CellNum);
     delay(500);
    if (a.indexOf("+91") >= 0){
        sendSMS();
       }
     }
  CellNum = "\0";
}

void sendSMS(){  // Функция, которая отправляет SMS
     Serial1.println("AT+CMGF=1\r"); 
     delay(1000);
     Serial1.print("AT+CMGS=");
     Serial1.print("\"");
     Serial1.print(CellNum);
     Serial1.print("\"");
     Serial1.println("\r"); //для отправки SMS
     delay(1000);
     Serial1.println("Рад видеть ваш звонок. Я хороший"); 
      delay(1000);
     Serial1.println((char)26);
     delay(1000);
     Serial1.println();
     delay(5000); 
     Serial1.flush();
     delay(2000);
    }

, 👍1

Обсуждение

что вы видите на последовательном мониторе? ... используйте больше инструкций Serial.println для отладки кода ... отображение значений переменных, чтобы увидеть, являются ли значения тем, что вы ожидаете, @jsotola