collapse

* Posts Recentes

LLM Crawlers por jm_araujo
[Ontem às 21:57]


Emulador NES em ESP32 por dropes
[30 de Abril de 2024, 15:09]


Circuito Microfone que funcione por almamater
[27 de Abril de 2024, 17:14]


Arame de Estendal por almamater
[18 de Abril de 2024, 16:16]


O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]

Autor Tópico: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.  (Lida 75252 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #75 em: 13 de Agosto de 2012, 17:52 »
Pedro eu ontem tinha tentado o baudrate mas nao tinha dado por isso devia ser das ligacoes.. olha tentei agora outra vez so fazer AT e passado uns 10segundos diz ERROR.
Tenta em 9600 para ver o que acontece.

Sim quando ligo para o telemovel recebo RING no serial monitor
Isso é bom sinal.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #76 em: 13 de Agosto de 2012, 17:57 »
o que nao e bom sinal é ele nao dar OK no AT, nao sei porque. sera que tenho que ligar o pino DATA a massa???

aqui neste site ele usa um nokia c75 tá certo que nao e igual:
https://sites.google.com/site/carlosoliveiraprojects/home/arduino/gsm-and-arduino

mas ele diz:

 > Vbatt - Power Charging (used for charging).
 > Gnd - GND  (main ground).
 > Tx   connected to arduino RX (using a resistor to limit current ).
 > Rx  connected to arduino TX (using a voltage devider from 5v to ~2,75v).
 > CTS  need to be connected to ground in order to work

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #77 em: 13 de Agosto de 2012, 18:02 »
É uma questão de exprimentares. Pelo menos já estás mais perto.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #78 em: 13 de Agosto de 2012, 18:22 »
Infelizmente tambem nao , o problema nao devia ser dai...

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #79 em: 13 de Agosto de 2012, 18:41 »
Código: [Seleccione]
/*
HARDWARE SETUP
13 -Led pin Debug 13 (used for status)
*/

#define ledPin 13 //Used for DEBUG

void setup() 
{
  pinMode(ledPin,OUTPUT); // LED DEBUG
  //Serial -------------------------------------------------
  // Open serial communications and wait for port to open:
  Serial.begin(19200);  // DEBUG
  Serial3.begin(19200);
  Serial3.println("AT");
}

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


Olá, experimenta este código e vê se ainda recebes a mensagem de erro. Faz o upload e abre o serial monitor. Não tens de enviar nada, vê só a mensagem que recebes.

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #80 em: 13 de Agosto de 2012, 18:50 »
rglove
Acho melhor pôr um delay antes de enviar a mensagem para dar tempo para abrir o serial monitor.
Fica assim:
Código: [Seleccione]
/*
HARDWARE SETUP
13 -Led pin Debug 13 (used for status)
*/

#define ledPin 13 //Used for DEBUG

void setup() 
{
  pinMode(ledPin,OUTPUT); // LED DEBUG
  //Serial -------------------------------------------------
  // Open serial communications and wait for port to open:
  Serial.begin(19200);  // DEBUG
  Serial3.begin(19200);
  delay(2000);
  Serial3.println("AT");
}

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


Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #81 em: 13 de Agosto de 2012, 19:04 »
Sim sim, fizeste bem

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #82 em: 13 de Agosto de 2012, 19:13 »
 ;D ;D ;D ;D ;D     F U N C I O N A      ;D ;D ;D ;D ;D ;D ;D


agora para o comando AT+CMGF? tambem tenho o por no codigo?
« Última modificação: 13 de Agosto de 2012, 19:21 por r16 »

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #83 em: 13 de Agosto de 2012, 19:35 »
Então eu vou-te enviar outro código para poderes enviar as coisas pelo serial monitor.

Aqui vai:

Código: [Seleccione]
/*
HARDWARE SETUP
13 -Led pin Debug 13 (used for status)
*/

#define ledPin 13 //Used for DEBUG
char info[200];
int index = 0;
char inChar;

void setup() 
{
  pinMode(ledPin,OUTPUT); // LED DEBUG
  Serial.begin(19200);  // DEBUG
  Serial3.begin(19200);
}

void loop() // run over and over
{
  if (Serial.available()>0) {
    while (1) {
      inChar = Serial.read();
      info[index] = inChar;
      index++;
      delay(2);
      if (Serial.available() <= 0) {
        Serial3.println(String(info));
        index = 0;
        memset( &info, 0, sizeof(info) );
        break;
      }
    }
  }
  if (Serial3.available()) Serial.write(Serial3.read());
}


Experimenta este código. Com este podes enviar os comandos pelo serial monitor. Não sei se vai funcionar porque não o testei

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #84 em: 13 de Agosto de 2012, 19:52 »
Então eu vou-te enviar outro código para poderes enviar as coisas pelo serial monitor.

Aqui vai:

Código: [Seleccione]
/*
HARDWARE SETUP
13 -Led pin Debug 13 (used for status)
*/

#define ledPin 13 //Used for DEBUG
char info[200];
int index = 0;
char inChar;

void setup() 
{
  pinMode(ledPin,OUTPUT); // LED DEBUG
  Serial.begin(19200);  // DEBUG
  Serial3.begin(19200);
}

void loop() // run over and over
{
  if (Serial.available()>0) {
    while (1) {
      inChar = Serial.read();
      info[index] = inChar;
      index++;
      delay(2);
      if (Serial.available() <= 0) {
        Serial3.println(String(info));
        index = 0;
        memset( &info, 0, sizeof(info) );
        break;
      }
    }
  }
  if (Serial3.available()) Serial.write(Serial3.read());
}


Experimenta este código. Com este podes enviar os comandos pelo serial monitor. Não sei se vai funcionar porque não o testei

funciona lindamente, agora podemos passar para o assunto mais a serio da uma olhada neste codigo:

Código: [Seleccione]
//GSM Remote control  V 3.0
//Created by Antonis G. Kanaris, January 27, 2012.

#include <PulsesIR_Toyotomi.h>

PulsesIR_Toyotomi pulsesIR_Toyotomi(13);//Pin 13 Ir led pin
 
 //int IRledPin=13; //IR Led pin
 int indicatorPin=5; //Indicator Led pin
 String readString;
 String admin="xxxxxxxxxx"; //admin number pdu code example 30123456 -> 03214365

 //read http://www.dreamfabric.com/sms/

 char c;
 
 void delsms(){
    Serial.println("AT+CMGD=1");//Delete sms
    }
 void readsmsAT(){
   Serial.println("AT+CMGR=1");//Read sms AT command
   delay(3000);
   }
 
 
  void sendsms_temp(){//Return with sms temperature room degree celcius.
 
  int temp=int(analogRead(3)*0.488);//Read temperature sensor LM35
  //if (0<temp<99) {  }

  byte hightemp=byte(temp/10);//convert temp to pdu format
  byte lowtemp=byte(temp%10);
  byte lowtemp1=bitWrite(lowtemp,4,1);
  byte lowtemp2=bitWrite(lowtemp1,5,1);
  int lb1=bitRead(lowtemp,0);
  int newhightemp=bitWrite(hightemp,7,lb1);
  int newhightemp1=bitWrite(newhightemp,4,1);
  int newhightemp2=bitWrite(newhightemp1,5,1);
  int newlowtemp2=lowtemp2>>1;
   
   Serial.println("AT+CMGF=0");//Start send sms with temperature to pdu format
   delay(3000);
   Serial.println("AT+CMGS=16");//Maybe for you is 15 or 17 read http://www.dreamfabric.com/sms/
   delay(3000);
   Serial.print("0011000C91xxxxxxxxxxxx10000AA02");//pdu sms temp to admin,

//read http://www.dreamfabric.com/sms/
 

    Serial.print(newhightemp2,HEX);
   Serial.print(newlowtemp2,HEX);
   delay(3000);
   Serial.write(26);//Ctrl-z
   delay(20000);
  }
 
   void setup() {
         
  //pinMode(IRledPin,OUTPUT);
  pinMode(indicatorPin,OUTPUT);
  delay(12000);//first time connect cable arduino with phone...
  Serial.begin(9600);
  delay(3000);
  Serial.println("AT+CPMS=\"ME\",\"SM\"");//Set memory phone
  delay(3000);
  Serial.println("ATE=0");//Echo off
  delay(3000);
 
}

   void loop()
  {
       readString=0;//format readString...
       readsmsAT();
     
      // read phone reply if available
    while(Serial.available() > 0)
            {
                c=Serial.read(),BYTE;
                readString+=c;
            }
               delay(1000);
               
               Serial.println(readString);//serial monitor display sms pdu format
               
               delay(3000);
              if (readString.indexOf(admin)>0 && readString.indexOf("36F770C")>0)// admin number and     //pdu on1
              {
                 //digitalWrite(indicatorPin, HIGH);//only for test
                 pulsesIR_Toyotomi.SendACCodeOn();//AC Toyotomi on
                 delay(5000);
                 //sendsms_temp();//send sms to admin temperature room
                 //digitalWrite(indicatorPin, LOW);//only for test
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("44FA33106")>0)// admin number and //pdu OFF1
              {
                 
                 pulsesIR_Toyotomi.SendACCodeOff();//AC Toyotomi off
                 delay(3000);
                 
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("364791E")>0)// admin number and   //pdu dry
              {
               
                 pulsesIR_Toyotomi.SendACCode_modeDry();//AC Toyotomi Dry
                 delay(3000);
               
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("4E3F79B0D")>0)// admin number and //pdu cool
              {
               
                 pulsesIR_Toyotomi.SendACCode_modeCool();//AC Toyotomi cool
                 delay(3000);
               
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("4C13AFD0D")>0)// admin number and //pdu Auto
              {
               
                 pulsesIR_Toyotomi.SendACCode_modeAuto();//AC Toyotomi mode Auto
                 delay(3000);
               
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("3C6B01B")>0)// admin number and //pdu Fan
              {
                 
                 pulsesIR_Toyotomi.SendACCode_modeFan();//AC Toyotomi mode Fan
                 delay(3000);
               
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("4E872980E")>0)// admin number and //pdu heat
              {
               
                 pulsesIR_Toyotomi.SendACCode_modeHeat();//AC Toyotomi Heat
                 delay(3000);

              }
              if (readString.indexOf(admin)>0 && readString.indexOf("7C6B01BC47EDF01")>0)// admin //number and pdu Fan low
              {
             
                 pulsesIR_Toyotomi.SendACCode_modeFanspeedLow();//AC Toyotomi Fan speed low
                 delay(3000);
               
              }
            if (readString.indexOf(admin)>0 && readString.indexOf("AC6B01BD42E93D3F536")>0)// //admin number and pdu Fan medium
              {
               
                 pulsesIR_Toyotomi.SendACCode_modeFanspeedMedium();//AC Toyotomi Fan speed //medium
                 delay(3000);
             
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("8C6B01B844E9FD1")>0)// admin //number and pdu Fan high
              {
 
                 pulsesIR_Toyotomi.SendACCode_modeFanspeedHigh();//AC Toyotomi Fan speed high
                 delay(3000);

              }
              if (readString.indexOf(admin)>0 && readString.indexOf("8C6B01B14AED3DF")>0)// admin //number and pdu Fan auto
              {
                 pulsesIR_Toyotomi.SendACCode_modeFanspeedAuto();//AC Toyotomi Fan speed Auto
                 delay(3000);
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("7D4721B0E9AC100")>0)// admin //number and pdu Temp 30
              {

                 pulsesIR_Toyotomi.SendACCode_Temp_30();//AC Toyotomi Temp 30
                 delay(3000);

              }
              if (readString.indexOf(admin)>0 && readString.indexOf("7D4721B0E92D500")>0)// admin //number and pdu Temp 25
              {

                 pulsesIR_Toyotomi.SendACCode_Temp_25();//AC Toyotomi Temp 25
                 delay(3000);
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("7D4721B0E92C100")>0)// admin //number and pdu Temp 20
              {
                 pulsesIR_Toyotomi.SendACCode_Temp_20();//AC Toyotomi Temp 20
                 delay(3000);
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("7D4721B0E8AD900")>0)// admin //number and pdu Temp 16
              {
                 pulsesIR_Toyotomi.SendACCode_Temp_16();//AC Toyotomi Temp 16
                 delay(3000);
              }
              if (readString.indexOf(admin)>0 && readString.indexOf("F4721B0E")>0)// admin number and //pdu temp
              {
                 sendsms_temp();
                 delay(3000);
               }
              if (readString.length()>40)//delete sms if sms received
              {
              delsms();
          }
              delay(10000);//delay start loop again for check new sms...

  }

o que pretendia daqui era fazer uma modificacao, para quando eu mandasse uma mensagem do meu telemovel a dizer LIGAR LUZ codificado em pdu, como ele ai fez... que ligasse por exemplo o pino14, e depois ao fazer isso, que me enviasse uma mensagem para mim a dizer. luz ligada.

consegues intrepretar o codigo

toma o site do pdu encoder:
http://twit88.com/home/utility/sms-pdu-encode-decode

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #85 em: 13 de Agosto de 2012, 19:58 »
Já tentaste enviar uma mensagem para o telemóvel para ver o que recebes no PC?

Offline rglove

  • Mini Robot
  • *
  • Mensagens: 527
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #86 em: 13 de Agosto de 2012, 20:17 »
Hmm, mas com esse telemóvel a sms tem de estar codificada em PDU? E para enviar também a tens de enviar codificada?

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #87 em: 13 de Agosto de 2012, 20:18 »
Já tentaste enviar uma mensagem para o telemóvel para ver o que recebes no PC?

sim ja mas nao recebo nada, eu acho que tem que se ter o codigo que pus acima... so que tenho pouco conhecimento de codigo, e nao tou a perceber bem como isso se faz.

Offline r16

  • Mini Robot
  • *
  • Mensagens: 339
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #88 em: 13 de Agosto de 2012, 20:19 »
Hmm, mas com esse telemóvel a sms tem de estar codificada em PDU? E para enviar também a tens de enviar codificada?

sim com esse codigo que te mostrei da para entender que sim.

ou entao usar este :
https://sites.google.com/site/carlosoliveiraprojects/home/arduino/gsm-and-arduino

Offline Pedrock

  • Mini Robot
  • *
  • Mensagens: 279
Re: Ajuda Siemens C35i, como o ligar ao arduino, comandos AT.
« Responder #89 em: 13 de Agosto de 2012, 20:26 »
É suposto receberes alguma coisa.