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
Tags:
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
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por