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: 3113

Responder esta

Respostas a este tópico

diga pra nós qual shield vc tem. Qual modelo, qual fabricante? Vc tem o datasheet dele?

explique como vc fez pra concluir que está sem comunicação com o shield.

O shield que eu tenho é esse da imagem:

http://mlb-s1-p.mlstatic.com/modulo-shield-gsm-gprs-sim-900-arduino...

Eu testei varios programas para enviar msg, mas ele nao recebe nada na porta serial.... coloco o numero do meu telefone mas nao sei o que ta acontecendo que n ta funcionando

Testei o codigo abaixo que achei no site do arduino e nao funcionou: se tiver como testar agradeço

/*
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);

}

vamos fazer um teste inicial básico que nada tem a ver com envio ou recebimento de sms.

Esse teste inicial serve apenas pra descobrir se teu shield irá funcionar futuramente ou não. 

O sketch abaixo vai te permitir enviar comandos AT pro shield:


#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); //RX, TX para Uno

void setup()
{

mySerial.begin(9600); // baud rate do GSM Shield (aqui precisamos descobrir qual o baud rate que o fabricante configurou como padrão, então comece com 9600 e vá aumentando caso não funcione

 
Serial.begin(9600); // baud rate do serial monitor
Serial.println("ajuste o serial monitor em CARRIAGE RETURN");
}

void loop()
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}

Estou assumindo que vc esteja usando o arduino uno.

Se estiver usando outro arduino, avise porque talvez precise modificar as portas rx/tx

Outra coisa: estou assumindo que esse seu shield veio de fábrica pra aceitar rx/tx nas portas 2/3. Por isso é importante vc ter o datasheet ou pelo menos saber quem fabricou o shield, pois já vi shields que tinham rx/tx nas portas 7/8 Se for outra porta

Como funciona o teste:

- Envie o sketch pro seu arduino. 

- abra o serial monitor da sua IDE

- coloque em carriage return e 9600 bauds

- feche o serial monitor e abra novamente

- digite AT e pressione enter

- o objetivo é vc receber como resposta do shield um OK

- se receber OK, está tudo certo com as portas rx/tx e configuração de velocidade (baud) de comunicação com o shield

- se não receber nada, ou receber caracteres estranhos, altere no sketch aquela linha mySerial.begin(9600) , mudando o 9600 por velocidades maiores (19200, 38400, 57600). Precisa ir tentando outras velocidades até achar. Eu já vi shields que vieram de fábrica com 9600 ou 19200 bauds no máximo.

- se mesmo assim não receber nada, vc precisa descobrir em quais portas são realizadas o rx/tx desse teu shield (buscar na net o fornecedor a partir de pistas descobertas olhando o próprio shield e a partir daí descobrir o datasheet)

Testei o programa, mas quando eu digito o comando AT e enter, ele nao aparece na minha porta serial, ele simplesmente some da linha digitavel.

A velocidade dos 9600 esta correta

Ele apenas dava essa msg:"ajuste o serial monitor em CARRIAGE RETURN

Andei procurando as caracteristicas do meu shield e olha o que encontrei :

Características

  • Baseado no módulo SIM900 de SIMCOM
  • Quad-band 850/900/1800/1900 MHz-iria funcionar em redes GSM em todos os países em todo o mundo.
  • Controle através de comandos AT-comandos padrão: GSM 07,07 e 07,05 | aprimorados Comandos: SIMCom comandos AT.
  • Short Message Service-para que você possa enviar pequenas quantidades de dados através da rede (ASCII ou hexadecimal cru).
  • Incorporado TCP/UDP pilha-permite fazer upload de dados para um servidor web.
  • Alto-falante e fones de ouvido-para que você possa enviar sinais DTMF ou jogar gravação como uma máquina de atendimento.
  • Titular do cartão SIM e GSM Antena-presente onboard.
  • 12 GPIOs, 2 PWMs e um ADC (todos os 2,8 Volt Logic)-para aumentar o seu Arduino.
  • Baixo consumo de energia-1.5mA (modo de suspensão)
  • Industrial faixa de temperatura de-40 ° C a + 85 ° C

Essas características que vc informou não ajudam em nada a elucidação do seu problema. Vc precisa tentar descobrir em quais portas são feitas a comunicação rx/tx e também qual a velocidade em bauds que veio configurada de fábrica.

A velocidade eu te expliquei como vc faz pra tentar descobrir. Mas as portas, se não for na porta 2 e 3, talvez seja na porta 7 e 8, mas pra ter certeza precisa olhar o datasheet ou o site do fabricante

Encontrei o site do frabricante, segue abaixo:

http://sandboxelectronics.com/?p=253

sobre rx/tx encontrei o seguinte:

NOTE: By default, the serial communication is done via the SW serial port (D2, D3) and the RI is connected to D7 via a jumper. To use the HW serial port (D0, D1), two jumpers should be changed so that they connect the SIM900 TX pin to D0 and SIM900 RX pin to D1. If the Ringing Indicator feature is not needed, the jumper could be removed from the header denoted “RI”.

Aqui se encontra o datasheet do shield

http://sandboxelectronics.com/files/SLD-000012/SIM900_AT.pdf

O que eu to achando estranho,é que na hora que eu digito AT e dou enter, o AT some da linha digitavel,... e  so fica no monitor serial a mensagem: ajuste o serial monitor em CARRIAGE RETURN

Esse datasheet que vc informou é irrelevante por enquanto, pois se trata de um datasheet do chip SIM900 apenas, e não do shield. Mas ali no site do fabricante que vc encontrou, há um arquivo exemplo sendo disponibilizado. Aceite usar os arquivos disponibilizados pelo fabricante, pois provavelmente o fabricante já fez as modificações necessárias nas bibliotecas e nos sketchs para fazer funcionar com o shield fabricado por eles.

Bom, pelo menos sabemos que teu shield usa as portas 2 e 3 para softserial, então o meu sketch não precisa ser modificado

pergunta 1: Vc está usando arduino uno, correto?

pergunta 2: Como vc está alimentando teu conjunto arduino+shield? apenas com a USB ou vc está usando a USB pra comunicação serial e também uma fonte externa pra alimentar o conjunto? Lembre-se que vc precisa usar fonte externa, pois esse shield não dá conta de funcionar apenas com a corrente fornecida pela USB (o próprio fabricante avisa sobre isso em vários locais)

Opaaa agora deu certo, estava lendo que tem que conectar uma fonte externa e funcionou o OK... agora escrevi AT e recebi OK

agora vai, fera! Dá uma olhada no post anterior meu, pois eu editei, especialmente na parte que falo sobre códigos exemplos disponibilizados no site pelo fabricante

Opa, qual post anterior, tem como passar o link do post ?

o post anterior a que me refiro é o que postei logo antes de vc ter dito que recebeu o OK, ali onde eu coloquei pergunta1 e pergunta 2.

O fabricante colocou no site deles 3 arquivos pra download. O último deles é justamente o arquivo zip contendo códigos e bibliotecas exemplo. Baixe e use os exemplos dali

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço