Arduino Leonardo + GSM TC35

alekse1111
Offline
Зарегистрирован: 02.03.2013

Здравствуйте, уважаемые товарищи. Скажу сразу, я новичок.  Подсоединил контакты arduino к TC35(rx-tx, tx-rx, gnd-gnd ). отсылаю команду AT а в ответ тишина. Как то огорчило. 

 

int led = 13;
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT); 
Serial.begin(9600);  
}
 
// the loop routine runs over and over again forever:
void loop() {
 
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(200);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(200);               // wait for a second
 
   delay(5000);
 Serial.println("AT\r");
}
alekse1111
Offline
Зарегистрирован: 02.03.2013

Что я делаю не так?

maksim
Offline
Зарегистрирован: 12.02.2012

А с чего вы взяли что в ответ "тишина"? В каком месте вашего кода вы "слушаете" ответ? 

alekse1111
Offline
Зарегистрирован: 02.03.2013

Поправьте пожалуйста, совсем запутался уже. Пробовал вот этот код. 

 


#include <SoftwareSerial.h>  
char gsm_char=0;      //Stores character from the gsmSerial
 
SoftwareSerial gsmSerial(0,1);  //со стороны ардуины(rx,tx 0 1) со стороны модема соответсвенно наоборот. земли соеденил
 
void setup()
{
  //Initialize serial ports for communication.
  Serial.begin(9600);
  gsmSerial.begin(9600);
  Serial.println("Starting TC35 and debug Communication...");
}
 
void loop() {
  //If a character comes in from the cellular module...
  if(gsmSerial.available() > 0){
    gsm_char=gsmSerial.read();    //Store the char in gsm_char.
    Serial.print(gsm_char);  //Print it to debug serial
  }
  //Read serial input
  if(Serial.available() > 0){
    gsm_char=Serial.read();  //Store char in gsm_char (Not really from the gsm, just saving some memory)
    //Evaluate input.
    if(gsm_char=='t'){
      gsmSerial.print("AT\r");  //Send test command
    } else if(gsm_char=='p'){
      gsmSerial.print("AT+CPIN=1111\r");  //Enter pin, hardcoded
    } else if(gsm_char=='g'){
      gsmSerial.print("AT+CMGF=1\r"); //Set text mode.
    } else if(gsm_char=='s'){
      //Send sms!
      gsmSerial.print("AT+CMGS=23885**\r"); //AT command to send SMS
      delay(100);
      gsmSerial.print("Test 1"); //Print the message
      delay(10);
      gsmSerial.print("\x1A"); //Send it ascii SUB
    }
  }
}

Смс не отправляет...не понимаю что то я. Помогите с советом

maksim
Offline
Зарегистрирован: 12.02.2012
maksim
Offline
Зарегистрирован: 12.02.2012

Во первых у леонардо два serial'а это USB-Serial и Serial на 0 и 1 выводах, так что софтовый сериал не нужен.
Во вторых вы уверены что у шилда скорость по умолчанию 9600 ?

char gsm_char=0;      //Stores character from the gsmSerial

void setup()
{
  //Initialize serial ports for communication.
  Serial.begin(9600);
  Serial1.begin(9600);
  Serial.println("Starting TC35 and debug Communication...");
}

void loop() {
  //If a character comes in from the cellular module...
  if(Serial1.available()){
    gsm_char = Serial1.read();    //Store the char in gsm_char.
    Serial.print(gsm_char);  //Print it to debug serial
  }
  //Read serial input
  if(Serial.available()){
    gsm_char = Serial.read();  //Store char in gsm_char (Not really from the gsm, just saving some memory)
    //Evaluate input.
    if(gsm_char == 't'){
      Serial1.println("AT");  //Send test command
    } 
    else if(gsm_char == 'p'){
      Serial1.println("AT+CPIN=1111");  //Enter pin, hardcoded
    } 
    else if(gsm_char == 'g'){
      Serial1.println("AT+CMGF=1"); //Set text mode.
    } 
    else if(gsm_char == 's'){
      //Send sms!
      Serial1.println("AT+CMGS=23885**"); //AT command to send SMS
      delay(100);
      Serial1.println("Test 1"); //Print the message
      delay(10);
      Serial1.println('\x1A'); //Send it ascii SUB
    }
  }
}

 

alekse1111
Offline
Зарегистрирован: 02.03.2013

Меня для начало интересует правильно ли я подключил ардуину и gsm модем tc35. Из примеров в интернете скорость по умолчанию 9600

 

alekse1111
Offline
Зарегистрирован: 02.03.2013

Кто нить ответит?

rinx
Offline
Зарегистрирован: 30.01.2012

Добрый день.

Я не так давно подключал tc35 к Arduino Uno.

схема подключения и исходники тут:

https://code.google.com/p/arduino-send-temperature-sms-siemens-tc35/downloads/list

пруфлинк и демовидео тут:

http://www.youtube.com/watch?v=OPby43DyUqQ

Надеюсь, будет полезно.

Bakh
Offline
Зарегистрирован: 19.08.2013

ВСем привет! очень нужна Ваша помощь.. Работаю на проэктом Control LEDs via sms...использовала Arduino Uno и Siemens TC35. В интернете очень много инфы но я не могу найти рабочий код для примера...пыталась следовать данному тьюториулу (похожий проект) http://tronixstuff.com/2011/01/31/tutorial-arduino-and-gsm-cellular-%E2%80%93-part-two/ но все равно не идет.. помогите пожалйста, не могу понять в чем ошибка...

maksim
Offline
Зарегистрирован: 12.02.2012

Так какая ошибка то?

Bakh
Offline
Зарегистрирован: 19.08.2013

нет, вообще не реагирует... т.е как отправляю смс с тел на Arduino, сириал монитор ничего не показывает, ну и LEDs молчат...

rinx
Offline
Зарегистрирован: 30.01.2012

0. А вы можете отправить СМС используя Siemens TC35 на любой другой телефон? Эта функция работает?

1. Вы нажимаете кнопку включения на самом GSM модуле Siemens TC35 после того, как Arduno включится? В моём случае - модуль не работал, пока вручную не нажмёшь кпопку включения на нём. Видимо, производитель придумал эту "защиту от дурака".

2. Выложите, пожалуйста вашу схему - как у вас соединены Arduino, Siemens TC35 и то, как подведено питание. Так же просьба выложить листинг кода. Очень сложно диагностировать проблему на телепатическом уровне.

Bakh
Offline
Зарегистрирован: 19.08.2013

Tx (TC35) подключен к пин 2 Arduino Uno;

Rx (TC35) подключен к пин 3  Arduino Uno;

Ground (TC35) к Ground Arduino Uno;

Vcc (TC35)- 5V Arduino Uno соответственно.. Пробовала множество кодов , что бы с помощью смс вкл и выкл LED..  сейчас работаю над этим кодом :

#include <SoftwareSerial.h> 
char inchar; // Will hold the incoming character from the Serial Port.
SoftwareSerial cell(2,3); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin.
int numring=0;
int comring=3; 
int onoff=0; // 0 = off, 1 = on
 
void setup()
{
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT); // LEDs - off = red, on = green
  digitalWrite(12, HIGH);
  digitalWrite(13, LOW);
  //Initialize serial port for communication.
  cell.begin(9600);
}
 
void doSomething()
{
  if (onoff==0)
  {
    onoff=1;
    digitalWrite(12, HIGH);
    digitalWrite(13, LOW);
  } 
  else
    if (onoff==1)
    {
      onoff=0;
      digitalWrite(12, LOW);
      digitalWrite(13, HIGH);
    }
}
 
void loop() 
{
  //If a character comes in from the cellular module...
  if(cell.available() >0)
  {
    inchar=cell.read(); 
    if (inchar=='R')
    {
      delay(10);
      inchar=cell.read(); 
      if (inchar=='I')
      {
        delay(10);
        inchar=cell.read();
        if (inchar=='N')
        {
          delay(10);
          inchar=cell.read(); 
          if (inchar=='G')
          {
            delay(10);
            // So the phone (our GSM shield) has 'rung' once, i.e. if it were a real phone
            // it would have sounded 'ring-ring'
            numring++;
            if (numring==comring)
            {
              numring=0; // reset ring counter
              doSomething();
            }
          }
        }
      }
    }
  }
}

пока без успешно...((

В моем проекте я тестирую 2 вида беспроводной передачи данных:RF и GSM. GSM оказался капризнее...

Я могу отправлять смс с Arduino, когда TC35 подключен к микроконтроллеру , а наоборот, когда отправляю смс с телефона на Аrduino, ничего не происходит... помогите пожалйста... очень отчаялась..

Life23
Offline
Зарегистрирован: 10.08.2013

2Bakh

Читай мою ветку http://arduino.ru/forum/programmirovanie/pomogite-novichku-dopisat-kod  - много полезного.

shafray
Offline
Зарегистрирован: 30.09.2013

У меня такая же проблема. Подключил TC-35 к leonardo (10,11 пины) и он молчит не риагирует на комманды. Кто что может подсказать? Может модем не рабочить, хотя когда на нем нажимаеш кнопку карточка появляется в сети.

Вот мой код

#include <SoftwareSerial.h> 
SoftwareSerial gsmSerial(10,11);

void setup()
{
  Serial.begin(9600);
  gsmSerial.begin(9600);
}

void loop() // run over and over
{
  if (gsmSerial.available())
    Serial.write(gsmSerial.read());
  if (Serial.available())
    gsmSerial.write(Serial.read());
}

 

shafray
Offline
Зарегистрирован: 30.09.2013

Уточнение сегодня добился того что могу звонить и писать смс с ардуино но все равно не вижу ответов от gsm модуля. Кто что подскажет???

shafray
Offline
Зарегистрирован: 30.09.2013

Я так понял никто в этом не шарит?

maksim
Offline
Зарегистрирован: 12.02.2012

Нет, не правильно поняли. Это означает что никому нет до вас дела и никто не хочет выяснять что вы там делаете неправильно, задавая вам наводящие вопросы, если вы сами не в состоянии подробно описать что делаете. И вам лично, так как не хотите внимательно читать эту ветку, еще раз повторю у Leonardo (прочитайте описание платы) два аппартных UARTa (Serial), поэтому использовать программный UART - это индусский подход.

shafray
Offline
Зарегистрирован: 30.09.2013

Подключил модуль через порты 0,1 и толку никакого, как и раньше ответа от модуля я не вижу. Подскажите куда копать.

maksim
Offline
Зарегистрирован: 12.02.2012

То есть в одну сторону в сериал данные идут, а в другую нет, правильно? Или данные идут в обе стороны, но не получается принимать звонки и СМС ? Если первое, то берете мультиметр и мериете напряжение относительно земли на линии TX-модуля -> RX-дуины.

shafray
Offline
Зарегистрирован: 30.09.2013

Первое. Замерял напряжение RX- дуины и землей, в простое 0,05 В во врямя входящего звонка прыжок до 0,5 и потом в районе 0,2 В. При исходящем звонке 0,2-0,5 В

maksim
Offline
Зарегистрирован: 12.02.2012

Ищите непропай/неконтакт, у вас отсутствует соединение TX-модуля -> RX-дуины.

shafray
Offline
Зарегистрирован: 30.09.2013

Спасибо maksim что помог, нашел проблему и теперь модуль отвечает :)

galymzhan91
Offline
Зарегистрирован: 10.05.2014

здравствуйте максим! у меня arduino uno и  gsm module "wavecom wmod2" я все подключил, через терминал АТ команды принимает смс отправляет,  а с ардуино не реагирует. Как можно проверить или вывести на терминал ардуино ответные данные с модуля? там тоже rx, tx

BIOlinq
BIOlinq аватар
Offline
Зарегистрирован: 28.01.2014

Используйте Software Serial для подключения GSM части, родная библитека Arduino GSM так умеет.

 

galymzhan91
Offline
Зарегистрирован: 10.05.2014

http://www.instructables.com/id/Version-20-Arduino-Controlled-Car-Tracki...

я сделал все как на этом проекте, но у меня смску не отправляет

shafray
Offline
Зарегистрирован: 30.09.2013

Добрый день.

Подскажите что может быть с tc35 он не регирует на комманды, но от него приходит ответ (RING) при звонке на него, до какого-то момента он реарировал на комманды.

Что могло произойти? Может я спалил вход? если да то как это проверить/ починить?