Сделал удобную отправку смс через Serial Monitor. Теперь задаем номер телефона и текст сообщения одной строкой.
На скриншоте:
1) Служебная метка sms
2) Номер мобильника в формате pdu
3) Текст сообщения
Синтаксис с запятыми обязательно соблюдать.

PHP код:
#include <NewSoftSerial.h>
#include <string.h>

NewSoftSerial mySerial(23);

#define num_to_char(number)   ((number) < 10 ?                           \
                                               
('0' + (number)) :        \
                                               ((
'A' 10) + (number)) )

#define first_four(byte)       (0x0F & (byte))
#define  last_four(byte)      ((0xF0 & (byte)) >> 4)
#define hexdump_a(byte)  num_to_char( last_four(byte))
#define hexdump_b(byte)  num_to_char(first_four(byte))

char inData[100];

char unitID_in[10];
char telnumb_in[14];
char textsms_in[100];
//String textsms_in;
void setup()  
{
  
Serial.begin(9600);
  
Serial.println("Go SMS Send");
  
mySerial.begin(9600);
}

void loop() 

 
int i=0
 
char buffer[100];
//если есть данные - читаем
  
if(Serial.available()){
     
delay(100);      
     
//загоняем прочитанное в буфер
     
while( Serial.available() && i99) {
        
buffer[i++] = Serial.read();
     }
     
//закрываем массив
     
buffer[i++]='\0';
  } 
//если буфер наполнен отправляем смс
  
if(i>0){ 
    
//разбераем буфер на части отделенные запятой
    
sscanf(buffer"%[^','],%[^','],%[^',']", &unitID_in, &telnumb_in, &textsms_in);
   
    if ((String)
unitID_in == "sms"){  //определяем команду отправки смс    
    //Serial.println(buffer); 
    
char *indata=textsms_in;
   
// Serial.println(textsms_in);
   // Serial.println(telnumb_in);
    
send_sms(indata);          
    
unitID_in [0] = '\0';
    
telnumb_in [0] = '\0';           
    }     
  }
}

void send_sms(char *data)
{
  
size_t data_lengthx;
  
char cl;
  
long i;
  
long n;
  
data_length strlen(data);
  
data_length 7;
  if (
0x07= (& ~0x07) + 0x08;
  
8
  
mySerial.println("AT+CMGF=0");
  
delay(50);
  
mySerial.print("AT+CMGS=");
  
delay(50);
  
mySerial.println(14);
  
delay(50);
 
//перевернутый номер тела 19731630470F2 изменить на свой этот кусок
  //mySerial.print("0011000B919731630470F20000AA"); 
  
mySerial.print("0011000B9");
  
delay(5);
  
mySerial.print(telnumb_in);
  
delay(5);
  
mySerial.print("0000AA");
  
hexdump_byte(data_length 0xFF);
  
0;
  
0;
  for (
0data_lengthx++)
  {
    if (
data[x] == '$')  data[x] = 0x02;
    
|= (data[x] & 0x7F) << l;
    
+= 7
    if (
>= 8)
    {
      
hexdump_byte(0xFF);
      
-= 8;
      
>>= 8;
    }
  } 
  if (
!= 0)
  {
    
hexdump_byte(0xFF);
  } 
  
mySerial.write(26);
}
void hexdump_byte(unsigned char byte)
{
  
mySerial.print(hexdump_a(byte), BYTE);
  
mySerial.print(hexdump_b(byte), BYTE);