Gracias Fm
Es muy sencillo y generico pues no empleo libreria alguna y las ordenes no son complicadas, he intentado estructurarlas lo mas facil posible pensando que puede ayudar a entender un poco el manejo del modem con comandos AT a los nuevos.
Un saludo.
Como he comentado antes, algunos ejemplos de codigo que he empleado para leer lo que el wavecom me dice, para quien pueda serle util:
// ????????????????????????????????????????????????
// ? FUNCION Resetea Modem Envia: ATZ
// ? Responde: ATZ.._OK._
// ????????????????????????????????????????????????
void ResetModem(){
Envia("ATZ"); // Hacemos un reset del modem
LeeSerie();
if ((Texto.substring(0,3) == ("ATZ")) && (Texto.substring(6,8) == ("OK"))) {
lcd.print("Reset OK");
}
}
// ????????????????????????????????????????????????
// ? FUNCION Quita el Eco Envia: ATE0
// ? Responde: ATE0.._OK._
// ????????????????????????????????????????????????
void QuitaEco(){
Envia("ATE0"); // Desabilita el eco
LeeSerie();
if ((Texto.substring(0,4) == ("ATE0")) && (Texto.substring(7,9) == ("OK"))) {
lcd.print("Quitado el eco");
}
}
// ????????????????????????????????????????????????
// ? FUNCION Introduce Pin Envia: AT+CPIN=1234
// ????????????????????????????????????????????????
void CargaPin(){
String Pin_Texto = "AT+CPIN=";
Envia(Pin_Texto+Pin_Numero); // Decimos que el pin es igual a 1234 "AT+CPIN=1234"
delay(1000);
}
// ????????????????????????????????????????????????
// ? FUNCION Comprueba Pin Envia: AT+CPIN?
// ? Responde: ..+CPIN: SIM PIN
// ? Responde: ..OK....+CPIN READY
// ????????????????????????????????????????????????
void VerificaPin(){
Envia("AT+CPIN?");
LeeSerie();
if (Texto.substring(2,7) == ("ERROR")) {
lcd.print("Error en Sim");
}
else if (Texto.substring(2,16) == ("+CPIN: SIM PIN")) {
lcd.print("Sim ok-Falta Pin");
}
else if (Texto.substring(2,4) == ("OK")) {
lcd.print("Pin Cargado");
}
}
Hay que tener presente que cuando "hablamos" con un momem GSM nos puede dar mas respuestas que las que yo he puesto, estas son mero ejemplo de jugar con el para las pruebas que hice, pero hay que leerse el manual de este y comprobar los codigos AT, una respuesta puede ser larga o corta dependiendo si hemos desabilitado el eco p.ej. o no.