Go Down

Topic: Leer datos de una web con SIM900 (Read 357 times) previous topic - next topic

tahore

Hola muy buneas, estoy teniendo un problema con mi proyecto. Con ardino UNO y SIM900

Voy a esplicar que es lo que necesito,... la sim900 accede a un sitio web el cual puede tener diferentes valores <1> <2> ... y ya despues segun el valor que lea arduino activa una salida u otra.

La cosa esta en que puedo acceder a la pagina sin problema pero, el motitor serie no ofrece ningun resultado en pantalla...

No es un modulo shield lo tengo conectado con cables entre los pines 7,8.

Tal que así

(aunque la alimentación la ago externa y no por el arduino)


Este es el codigo que tengo echo
Code: [Select]
#include <SoftwareSerial.h>;
SoftwareSerial SIM900(7, 8); // Configura el puerto serial para el SIM GSM
char incoming_char=0;

void setup() {
  SIM900.begin(19200); //Configura velocidad serial para el SIM
  Serial.begin(19200);
  Serial.print("OK");
  delay(5000);
  Serial.print("OK");
  delay(20000);
  SIM900.print("AT+CGDCONT=1,\"IP\",\"inet.es\"");// Establece parametros PDP
  SIM900.print((char)13);
  delay(2000);
  SIM900.print("AT+CSTT=\"inet.es\",\"\",\"\""); //Seteo de APN usuario y password
  SIM900.print((char)13);
  delay(2000);
  SIM900.print("AT+CIICR");// Inicia la conexión
  SIM900.print((char)13);
  delay(20000);
  SIM900.print("AT+CIFSR");
  SIM900.print((char)13);
  delay(2000);
 
 
 
}


void loop() {
delay(5000);


SIM900.print("AT+CIPSTART=\"TCP\",\"X.XX.XX.X\",\"80\"");// Inicia conexion TCP o UDP
SIM900.print((char)13);
delay(5000);
SIM900.print("AT+CIPSEND");// Envias Datos TCP o UDP
SIM900.print((char)13);
delay(2000);
SIM900.print("GET /arduino.php HTTP/1.1");// //Archivo donde se enviara el dato y el parametro a enviar
SIM900.print((char)13);
SIM900.print((char)10);
SIM900.print("Host: X.XX.XX.X");//
SIM900.print((char)13);
SIM900.print((char)10);
SIM900.print((char)10);
SIM900.print((char)13);
SIM900.print((char)10);
SIM900.print((char)26);
delay(10000);
SIM900.print("AT+CIPCLOSE");// Cierra la conexión TCP o UDP
SIM900.print((char)13);
delay(2000);
SIM900.print("AT+CIPSHUT"); //Cierra el contesto PDP de GPRS

SIM900.print((char)13);
delay(5000);
}


El codigo funciona, puede usarse para enviar datos pero no para leerlo.

No se si el problema es que se envian por el serial los datos y como se han enviado el SIM900 no devuelve la respuesta y se la queda internamente.


He probado a poner:
Code: [Select]

incoming_char=SIM900.read();
Serial.print(incoming_char);


Pero devuelve un ¿

Si me pudieran ayudar. Gracias por adelantado.

surbyte

Parece que no compartes GND con Arduino y el SIM. Si no compartes GND no va a funcionar.
Lo raro es que dices que funciona.

Veamos
Con esos delays es imposible que se lea algo.

Usa esta líbrería y verás que fácil te resulta todo.
http://www.gsmlib.org/

Go Up