Buenas, estoy con un proyecto de medición de un sensor y tengo que mandar los datos a un servidor en Internet. Tras varias investigaciones he conseguido una shield (GPRS Shield for Arduino UNO) que usa el SIM900 de SimCom; mi problema viene cuando meto la SIM y veo que el led NetLight no deja de parpadear rápido, indicandome que no tiene acceso a red (Si lo tuviera lo haría cada 2 sg aprox)...
He probado casi de todo y casi de todas las páginas, pero me temo que nada de nada (sin conexión no consigo ni hacer una simple llamada)...
La conexiones son las de las de la imagen adjunta
el codigo es bastante simple, pero me conformo con saber por qué no se conecta a la red móvil...:
Código:
#include <SoftwareSerial.h>;
SoftwareSerial SIM900(7, 8 ); // Configura el puerto serial para el SIM GSM
char incoming_char=0; //Variable que guarda los caracteres que envia el SIM GSM
int salir = 0;
void setup()
{
Serial.begin(19200); //Configura velocidad serial para el Arduino
SIM900.begin(19200); //Configura velocidad serial para el SIM
Serial.println("AT + CPIN = \"4567\"");
SIM900.println("AT + CPIN = \"4567\"");
delay(25000); //Retardo para que encuentra a una RED
Serial.println("OK"); //Mensaje OK en el arduino, para saber que todo va bien.
}
void llamar()
// Función que permite llamar a un celular local
{
SIM900.println("ATD 678676867;"); //Celular
delay(100);
SIM900.println();
delay(30000); // wait for 30 seconds...
SIM900.println("ATH"); // Cuelta el telefono
delay(1000);
}
void mensaje_sms()
//Funcion para mandar mensaje de texto
{
SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
delay(100);
SIM900.println("AT+CMGS=\"678676867\""); // recipient's mobile number, in international format
delay(100);
SIM900.println("Saludos desde HetPro"); // message to send
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26 //Comando de finalizacion
delay(100);
SIM900.println();
delay(5000); // Tiempo para que se envie el mensaje
Serial.println("SMS sent successfully");
}
void espera_mensaje()
{
salir = 1;
while(salir==1)
{
if(SIM900.available()>0)
{
incoming_char=SIM900.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
salir = 0;
}
}
}
void modo_recibe_mensaje()
{
//Configura el modo texto para enviar o recibir mensajes
SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(1000);
}
void loop()
{
llamar(); //Llama
mensaje_sms(); //Envia mensaje
modo_recibe_mensaje();
for(;;)
{
if(SIM900.available()>0)
{
incoming_char=SIM900.read(); //Get the character from the cellular serial port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
}
if(Serial.available()>0)
{
if(Serial.read() == 'A') break;
}
}
Serial.println("OK-2");
delay(100);
SIM900.println();
delay(30000);
while(1); // Espérate por tiempo indefinido
}
FINALMENTE...
El cargador que estaba usando no daba la potencia necesaria... No usar cargadores de moviles! son muy inestables!. Gracias a los que leisteis al menos el post...