Boa noite gente, encontrei no forum já varios programas com o SIM 900, ja testei alguns mas n tive resultado satisfatorio pq nao estou conseguindo comunicaçao com meu shield....

Queria apenas enviar uma msg do meu celular para o arduino, e a palavra ou numero que eu enviar para o arduino teria que aparecer na porta serial dele...

Alguem tem como me ajudar a fazer essa comunicaçao e fazer esse programa

Obrigado

Exibições: 3115

Responder esta

Respostas a este tópico

poxa cara, voltamos à estaca zero. Achei que vc já tivesse entendido como fazer o seu shield responder aos comandos AT. 

Essa mensagem "ajuste o serial monitor em CARRIAGE RETURN" eu acrescentei ela no sketch de propósito para chamar sua atenção e configurar corretamente no serial monitor.

Faça as checagens novamente:

* ligue a fonte externa

* pressione os botões do shield pra luz azul ficar piscando a cada 3 segundos

* coloque o serial monitor em modo carriage return e 9600 bauds

 

Ele nao esta respondendo ao comando AT, passei a sketch de novo pra ele, coloquei uma fonte externa e tambem desliguei e liguei o shield novamente.... esta com a luz azul piscando

não sei mais como ajudar, amigo.

Bah obrigado pela atençao, mas n sei o que esta acontecendo, ele nao esta respondendo...

Eu comprei ele da china, mas é os mesmos vendidos aqui no brasil

Amigo o shield que eu tenho é o do link abaixo:

http://pt.aliexpress.com/item/GSM-GPRS-Shield-For-Arduino/733792647...

Por acaso não preciso mecher nos jumpers que tem perto das conexoes de microfone e fone de ouvido ?? La diz Rx e Tx 

Ola amigo, consegui de novo fazer funcionar meu shield, ontem eu tinha testado ele com 9600 e hoje tive que mudar pra 2400 para funcionar, dai tive a resposta OK quando digitei AT

Realizei todos aqueles testes que tu me mando fazer, abaixo podes ver o resultado:

ajuste o serial monitor em CARRIAGE RETURN
AT
OK
AT+COPS?
+COPS: 0

OK
AT+CSPN?
+CSPN: "VIVO", 0

OK
AT+CMGF=1
OK
AT+CMGL="ALL"
ERROR

Troquei o chip meu amigo e agora deu certo....

Acredito que era um chip meio antigo e por isso nao estava funcinando agora deu tudo aquelo que tu descreveu... simulando em 2400....

Fiz um teste com um exemplo, eu colocando o numero do meu telefone e o shield enviou uma msg para meu celular....

Mas eu quero enviar uma msg do meu celular para o shield e visualizar com o monitor serial, isso nao conseguiu eu mandei e ele nao recebeu

vc não precisa mexer nos jumpers não, porque já obteve resposta aos comandos AT, e isso significa que seu arduino já está se comunicando com o shield pelas portas 2 e 3 usando software serial

Vc precisaria mexer nos jumpers ou jumpear outras portas caso estivesse usando o arduino leonardo ou o arduino mega por exemplo, mas pelo jeito não é esse o seu caso

vc disse que trocou o chip e funcionou, mas funcionou com qual comando? vc precisa fazer funcionar o comando AT+CMGL="ALL" pois é esse comando que exibe os torpedos recebidos

Simmm o comando AT+CMGL="ALL" exibiu todos os torpedos deu certo, mas como falei agora quero enviar uma msg do meu celular para o shield e o conteudo aparecer no monitor serial

Esse é a programaçao que tem de exemplo no site da Arduino para receber msg... eu testei mas nao consegui, coloquei 2400 no lugar de 9600... mas nao recebi as msg.... sera que preciso digitar algo a mais na msg para acionar o comando 

/*
SMS receiver

 This sketch, for the Arduino GSM shield, waits for SMS messages 
 and displays them through the Serial port. 

 Circuit:
 * GSM shield 

 created 25 Feb 2012
 by Javier Zorzano / TD

 This example is in the public domain.
*/


// libraries
#include <GSM.h>

// PIN Number
#define PINNUMBER ""

// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSM_SMS sms;

char remoteNumber[20];  // Holds the emitting number

void setup() 
{
  // initialize serial communications
  Serial.begin(9600); 

  Serial.println("SMS Messages Receiver");

  // connection state
  boolean notConnected = true;

  // Start GSM shield
  // If your SIM has PIN, pass it as a parameter of begin() in quotes
  while(notConnected)
  {
    if(gsmAccess.begin(PINNUMBER)==GSM_READY)
      notConnected = false;
    else
    {
      Serial.println("Not connected");
      delay(1000);
    }
  }

  Serial.println("GSM initialized");
  Serial.println("Waiting for messages");
}

void loop() 
{
  char c;

  // If there are any SMSs available()  
  if (sms.available())
  {
    Serial.println("Message received from:");

    // Get remote number
    sms.remoteNumber(remoteNumber, 20);
    Serial.println(remoteNumber);

    // This is just an example of message disposal    
    // Messages starting with # should be discarded
    if(sms.peek()=='#')
    {
      Serial.println("Discarded SMS");
      sms.flush();
    }

    // Read message bytes and print them
    while(c=sms.read())
      Serial.print(c);

    Serial.println("\nEND OF MESSAGE");

    // delete message from modem memory
    sms.flush();
    Serial.println("MESSAGE DELETED");
  }

  delay(1000);

}

uma coisa legal pra vc saber é o seguinte: ao ler um sms que vc acabou de receber, a mensagem continua ocupando aquela posição na fila de mensagens recebidas (isso é verdade apenas se o autor do sms enviou a mensagem de forma padrão, mas ele poderia ter te enviado por outros métodos e a mensagem por exemplo se auto-expirar, mas na maioria das vezes a forma padrão é a mensagem ficar armazenada até que o receptor do sms a apague)

isso é especialmente importante saber porque pra vc iniciar os testes, convém vc apagar todos os sms recebidos até então. O comando para apagar é AT+CMGD=X onde vc substitui o X pelo número da posição do sms, e essa posição vc vê através daquele comando que te ensinei, o AT+CMGL="ALL"

Se vc não tomar o cuidado de apagar, os novos torpedos ocuparão as últimas vagas e talvez vc pense que as mensagens não estão chegando no shield.

Então se vc se acostumar com a prática de apagar sempre o torpedo assim que for lido, o próximo torpedo que chegar ocupará a vaga 1. Portanto, leia o torpedo que chegou e apague imediatamente porque isso facilitará o gerenciamento de torpedos recebidos.

Deu certo o teste com o codigo para deletar as msg, ate agora refazendo os teste foi possivel visualizar as msg que enviei pro shield mas nao apareceu no monitor serial... o que sera que esta havendo de errado ??

Tens como dar uma olhada no codigo acima que lhe enviei no post acima, se por acaso estou fazendo algo de errado??? Aquele PIN eu deixo assim, como esta ate pq meu chip nao tem PIN cadastrado

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço