не берёт трубку - m590

vicont73
Offline
Зарегистрирован: 09.02.2017

m590 не берёт трубку. на экране прог ардуино  высвечивается буква "К" с новой страки с каждым вызывным гудком с телефона. когда выключаешь вызов с телефона на экране прог ардуино появляется буквы "вю"

#include <SoftwareSerial.h>
SoftwareSerial mySerial(4, 5); // 
int ch = 0;
int led = 13;
String val = "";
 
void setup() {
  delay(2000);  //время на инициализацию модуля
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
  Serial.begin(9600);  //скорость порта
  Serial.println("GSM tester v1.0");
  mySerial.begin(9600);
  mySerial.println("AT+CLIP=1");  //включаем АОН
  delay(100);
  mySerial.println("AT+CMGF=1");  //режим кодировки СМС - обычный (для англ.)
  delay(100);
}
 
void loop() {
  if (mySerial.available()) {  //если GSM модуль что-то послал нам, то
    while (mySerial.available()) {  //сохраняем входную строку в переменную val
      ch = mySerial.read();
      val += char(ch);
      delay(10);
    }
    if (val.indexOf("RING") > -1) {  //если звонок обнаружен, то проверяем номер
      if (val.indexOf("792085589ХХ") > -1) {  //если номер звонящего наш. Укажите свой номер без "+"
        Serial.println("--- MASTER RING DETECTED ---");
        mySerial.println("ATH0");  //разрываем связь
        digitalWrite(led, HIGH);  //включаем светодиод на 3 сек
        delay(3000);
        digitalWrite(led, LOW);  //выключаем реле
      }
    } else
      Serial.println(val);  //печатаем в монитор порта пришедшую строку
    val = "";
  }
  if (Serial.available()) {  //если в мониторе порта ввели что-то
    while (Serial.available()) {  //сохраняем строку в переменную val
      ch = Serial.read();
      val += char(ch);
      delay(10);
    }
    //mySerial.println(val);  //передача всех команд, набранных в мониторе порта в GSM модуль
    if (val.indexOf("sendsms") > -1) {  //если увидели команду отправки СМС
      sms(String("hello world"), String("+792085589ХХ"));  //отправляем СМС на номер +71234567890
    }
    val = "";  //очищаем
  }
}
 
void sms(String text, String phone)  //процедура отправки СМС
{
  Serial.println("SMS send started");
  mySerial.println("AT+CMGS=\"" + phone + "\"");
  delay(500);
  mySerial.print(text);
  delay(500);
  mySerial.print((char)26);
  delay(500);
  Serial.println("SMS send complete");
  delay(2000);
}
SerP_89
Offline
Зарегистрирован: 31.01.2017

ATA   - взять трубку в этом скетче его нет

access
Offline
Зарегистрирован: 10.05.2017

если буквы то скорость порта не правильная или не надежное соединение уарта,

vicont73
Offline
Зарегистрирован: 09.02.2017

после пляски с бубном выяснилось:

наверное с М590 не правильное определение номера!!!

в окне при совпадении номера трубку берёт но 13 пин не работает. перепрошил на 12 и все чётко светодиод гарит.

но номер совпадает очень редко из 10 1 влучшем случае.

номер бросает с подменой одной цифры и может подменять либую но чаще вторую или третью с конца

что делать ???

Logik
Offline
Зарегистрирован: 05.08.2014

//SoftwareSerial mySerial(4, 5); 

8)))

номер бросает с подменой одной цифры и может подменять либую но чаще вторую или третью с конца

))))

ПС. пасибки, фух,.. поржал ))