Arduino+sim900A

Deceldecel
Offline
Зарегистрирован: 23.06.2018

В програмировании я 0. Ребята нужна помощь я думаю кто разберется. Перерыл весь интернет. Есть в наличии sim900A (ATK-SIM900A-17). Саму GSM я перепрошил все работает сигналы принимает. Но вот схему подключения и сетчи для управления хотя бы одним сигналом най ти не смог. Те что есть GSM в сети и их схемы подключения не как не подходят к моей выше указанной АТК. Помогите со схемой подключения, и скетчем, и может с программами которые нужны для управления. Хотя бы одним элементом. Все что есть на этом сайте программы мне пока не нужны хотя они хороши.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Помощь можно получить только в двух случаях:

1. Вы что-то делаете сами, выкладываете схему и скетч и пишете, чего хотите добиться, и что конкретно у Вас не получается.

2. Идете в раздел "Ищу исполнителя" и заказываете скетч и схему за деньги.

Deceldecel
Offline
Зарегистрирован: 23.06.2018

Нашел скетч залил в ардуину. Все соеденил как нужно. Но пишет ошибку.

01 #include <SoftwareSerial.h>
02 SoftwareSerial mySerial(2, 3); // RX, TX
03 int ch = 0;
04 int led = 13;
05 String val = "";
06  
07 void setup() {
08   delay(2000);  //время на инициализацию модуля
09   pinMode(led, OUTPUT);
10   digitalWrite(led, LOW);
11   Serial.begin(9200);  //скорость порта
12   Serial.println("GSM tester v17.0");
13   mySerial.begin(9200);
14   mySerial.println("AT+CLIP=1");  //включаем АОН
15   delay(100);
16   mySerial.println("AT+CMGF=1");  //режим кодировки СМС - обычный (для англ.)
17   delay(100);
18   mySerial.println("AT+CSCS=\"GSM\"");  //режим кодировки текста
19   delay(100);
20   mySerial.println("AT+CMGL=ALL");
21   delay(100);
22   pinMode(4, INPUT);
23   }
24  
25 void loop() {
26   if (mySerial.available()) {  //если GSM модуль что-то послал нам, то
27     while (mySerial.available()) {  //сохраняем входную строку в переменную val
28       ch = mySerial.read();
29       val += char(ch);
30       delay(10);
31       }
32     if (val.indexOf("RING") > -1) {  //если звонок обнаружен, то проверяем номер
33       if (val.indexOf("7ХХХХХХХХХХ") > -1) {  //если номер звонящего наш. Укажите свой номер без "+"
34         Serial.println("--- MASTER RING DETECTED ---");
35         mySerial.println("ATH0");  //разрываем связь
36         }
37     else
38       Serial.println(val);  //печатаем в монитор порта пришедшую строку
39     val = "";
40   }
41          
42     if (digitalRead(4)==1) {  //если увидели команду отправки СМС
43       sms(String("hello world"), String("+7ХХХХХХХХХХ"));  //отправляем СМС на номер +71234567890
44     }
45     val = "";  //очищаем
46  }
47  
48 void sms(String text, String phone)  //процедура отправки СМС
49 {
50   Serial.println("SMS send started");
51   mySerial.println("AT+CMGS=\"" + phone + "\"");
52   delay(500);
53   mySerial.print(text);
54   delay(500);
55   mySerial.print((char)26);
56   delay(500);
57   Serial.println("SMS send complete");
58   delay(2000);
59 }

 

Но пишет

GSM tester v17.0

AT+CLIP=1

AT+CMGF=1
AT+CSCS="GSM"
AT+CMGL=ALL
 
ERROR
 
 Где искать ошибку. 
andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Переключить режим чтения смс в текстовый режим или вместо all написать 4
Или all в кавычки заключить

Deceldecel
Offline
Зарегистрирован: 23.06.2018
GSM tester v17.0
AT+CLIP=1
AT+CMGF=1
AT+CSCS="GSM"
AT+CMGL="ALL"
ERROR
 
Не чего не меняется. Может где еще посмотреть.
 
#include <SoftwareSerial.h>
 
SoftwareSerial mySerial( 2 , 3 ); // RX ,TX 
 
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 v17.0");
 
  mySerial.begin(9600);
 
  mySerial.println("AT+CLIP=1");  //включаем АОН
 
  delay(100);
 
  mySerial.println("AT+CMGF=1");  //режим кодировки СМС - обычный (для англ.)
 
  delay(100);
 
  mySerial.println("AT+CSCS=\"GSM\"");  //режим кодировки текста
 
 delay(100);
 
  mySerial.println("AT+CMGL=\"ALL\"");
 
  delay(100);
 
  pinMode(4, INPUT);
 
  }
 
 
 
void loop() {
 
  if (mySerial.available()) {  //если GSM модуль что-то послал нам, то
 
    while (mySerial.available()) {  //сохраняем входную строку в переменную val
 
      ch = mySerial.read();
 
      val += char(ch);
 
      delay(10);
 
      }
 
    if (val.indexOf("+CMT") > -1) {  //если звонок обнаружен, то проверяем номер
 
      if (val.indexOf("+3750296099821") > -1) {  //если номер звонящего наш. Укажите свой номер без "+"
 
        Serial.println("--- MASTER RING DETECTED ---");
 
        mySerial.println("ATH0");  //разрываем связь
 
        }
 
   } else
 
      Serial.println(val);  //печатаем в монитор порта пришедшую строку
 
    val = "";
 
  }
 
          
 
    if (digitalRead(4)==1) {  //если увидели команду отправки СМС
 
      sms(String("hello world"), String("+3750296099821"));  //отправляем СМС на номер ++375296099821
 
    }
 
    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);
 
}

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Вы издеваетесь? Три причины я озвучил, просто не помню синтаксис, а даташит лень читать, и тексты скетчей все на работе.

Все три варианта попробовали? Кавычки добавьте.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Исправить 20 строку по образу 18 ой кавычки нарисовать.

Deceldecel
Offline
Зарегистрирован: 23.06.2018

Все это по кругу. И так и ковычки, и без ковычек, и даже 4 брал в ковычки. И нашел обшибку место 9600 было 9200, я даже этот скетч со скоростью 115 с чемто так которая бы в этом скетче пробовал все бестолку. 

b707
Offline
Зарегистрирован: 26.05.2017

Deceldecel пишет:

В програмировании я 0.

Вот именно что ноль. И помочь тебе нельзя. Изучай программирование с самого начала, возьми пример с миганием диодом. За GSM взялся рано, если не бросишь - через годик до модемов доберешься. Пока не начнешь что-то понимать сам - ничего не выйдет. А тупо подбирать "ковычки - не ковычки" бестолку.

Deceldecel
Offline
Зарегистрирован: 23.06.2018

со светодиодом я разобрался. Уже.

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

Странно, неужели с sim900 так сильно команды от sim800 отличаются......

b707
Offline
Зарегистрирован: 26.05.2017

Deceldecel пишет:

со светодиодом я разобрался. Уже.

если считаешь , что готов к модему - найди в гугле описание его АТ-команд и разберись, где нужны кавычки, а где нет.

И не пиши ерунды "в гугле не нашел". - значит и не искал.

Deceldecel
Offline
Зарегистрирован: 23.06.2018
AT+CMGL="REC UNREAD" +CMGL: 4,"REC UNREAD","+790XXXXXXXX","","13/09/24,23:02:22+24"
Test2.
OK