Hola buenos dias.
Tengo un arduino uno y un thiker A6. El A6 hace una llamada a un numero y necesito identificar por medio de arduino cuando es contestada para a partir de ahi reproducir un audio.
Gracias
Este es el manual (A6 AT commands) que no se si lo tienes, de tenerlo deberías haberlo subido
Mira la pagina 46.
No me queda claro si te das cuenta si la llalmada se ha realizado.
Si que no se realizó, y todo lo demás.
Hola Surbyte. Muchisimas gracias. Eso mismo es lo que necesito pero la verdad q estoy tan mareado que no se como pasarlo a un Sketch. Yo lo que necesito es que cuando el estado este en 4 haga algo en especial como reproducir un audio.
La posible solución consiste en enviar al A6 lo siguiente
haces una petición AT+cpas=? y deberías recibir algo entre 0 y 5
Prueba a ver?
Hola de nuevo Surbyte. Si, lo hice desde el monitor serial y me responde perfectamente. Osea que desde el monitor serial funciona perfecto. Lo que no entiendo es como programarlo en un Sketch para automatizarlo. Ya tengo el skech para que llame pero me falta que cuando llamo desde el A6 y respondan del otro lado, Arduino identifique cuando la llamada fue atendida para que desde ahi Arduino pueda seguir haciendo lo que debe
Estabamos en lo correcto mira esto que encontré
Tienes toda la secuencia ahi.
Haces la llamada ATDnúmero
recibes OK
consultas con
AT+CPAS Responde con 3 o sea llamando o RINGING
Vuelves a preguntar
AT+CPAS responde 4 el telefono llamado ha respondido la llamada.
Acá pones tu mensaje y cortas con ATH
Hasta ahi lo re entiendo pero como lo meto en un sketch para subirlo a arduino y que lo identifique solo?
Quise guardarlo en una variable para hacer una comparacion y cuando sea igual a "4" que continue con lo deseado pero no he podido
¿Por qué no subes el código que tienes y lo revisamos para ver como implementarlo?
Saludos
Como lo metes en un código? Del mismo modo que le solicitas cosas al A6, por ejemplo para llamar a alguien.
En algun lugar el pones "ATD" + numero, pues luego de hacerlo envias "AT+CPAS?" y esperas las respuetas.
Hola Gatul. el codigo es re sensillo. Declaro serial monitor y mySerial mnitor para el A6, mando un comando AT para q llame a un numero ya guardado y queda a la espera de que atiandan la llamada para enviar un audio. Gracias
Y como automatizo para q al recibir un estado en "4" del CPAS haga algo en espeifico, es para que arduino haga todo solo y no tener que estar yo en la pc observando el monitor serial
Eso es algo que copiaste para poner comandos via Monitor serie y esperar la respueta.
Eso mismo lo debes hacer en un sketch.
Busca como se hacen cosas con A6 u otro chip similar y por asociacion podras encarar este programa.
Estoy tratando de hacer una comparacion. Por ejemplo declarar una variable string que cuando el CPAS contesta, la respuesta se guarde y luego si es igual a la respuesta deseada continue. Pero no se si es por el salto de linea o por que que no me lo compara nunca
Entiendo que cuando uno comienza hay muchas cosas para aprender pero se comienza por cosas mas simples y no por algo tan complejo como un módulo A6 por citar este caso.
Aprende a buscar en Google de este modo : Arduino A6 code y mira lo que aparece.
Entre las opciones salió este link
que tiene este código
#include <SoftwareSerial.h>
//Create software serial object to communicate with A6
SoftwareSerial mySerial(3, 2); //A6 Tx & Rx is connected to Arduino #3 & #2
void setup()
{
//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
Serial.begin(9600);
//Begin serial communication with Arduino and A6
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
updateSerial();
mySerial.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
updateSerial();
mySerial.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
updateSerial();
mySerial.println("AT+CREG?"); //Check whether it has registered in the network
updateSerial();
}
void loop()
Es para otra cosa, enviar y recibir códigos SMS pero lo puedes usar para tu problema.
Ya tienes cómo se hace ahora adáptalo a tu necesidad.
Hola Surbyte. Ese sketch lo estoy usando en parte del programa. Creo que ya logre solucionarlo. Yo trataba de comparar lo que me arrojaba el monitor serial, pero el problema es que al querer comparar, no le agregaba a la comparacion el \r\n. Cuando lo termine te aviso. Desde ya mil gracias por ahora tanto a vos como a gatul.
@virago111111 así sea el ejemplo "blink", cuando te pedimos que subas tu código, lo que corresponde es que lo subas (de hecho lo dice en las normas del foro).
¿Cómo podemos decirte como implementar algo sin ver el código? ¿Adivinamos?
Sinceramente y con todo respeto, no entiendo a quienes vienen a pedir ayuda pero en el fondo parece que no se quieren dejar ayudar.
Saludos
Hola Gatul. Mil disculpas, la verdad q soy nuevo en el foro y no estoy muy acostumbrado. Desde ya te re agradezco por tu ayuda y te pido disculpas de nuevo.
Te paso el codigo:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); //A6
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}
void loop() {
updateSerial();
}
void hacerLlamada() {
mySerial.print("ATD");//Comando AT para iniciar una llamada
mySerial.print("15518536");//Número de telefono al cual queremos llamar
mySerial.println(";");//El ";" indica llamada de voz y no llamada de datos ej:(FAX)
Serial.println("Llamando...");//Leyenda que indica que se inicio el llamado
}
void updateSerial()
{
delay(500);
while (Serial.available()){
mySerial.write(Serial.read());
}
while(mySerial.available()){
Serial.write(mySerial.read());
}
}
Lo que necesito es y no logro es que cuando el GSM llama a mi telefono y yo lo atiendo, en ese justo momento que yo lo atiendo, que arduino me lo identifique para a partir de ahi enviar un sonido. Por explicarlo de alguna manera como que cuando yo atiendo, arduino me diga Hola. no pretendo el codigo para hacer hablar a arduino, solo que arduino sepa que yo atendi la llamada.
Si, entiendo, quieres hacer algo parecido a un "preatendedor".
Lo vemos.
Saludos
Gracias Gatul!!! Yo mientras sigo probando jaja