- Materiales necesarios:
- Módulo GSM Fly Scale SIM900:
- Módulo de voz ISD1820:
- Diagrama de circuito y explicación:
- Programando su Arduino:
- Trabajando:
En el mundo moderno de hoy, todos dependemos de los teléfonos móviles como nuestro principal medio de comunicación inalámbrica. Pero, todos hemos enfrentado situaciones durante las cuales es posible que no podamos responder a nuestras llamadas, estas llamadas pueden ser una llamada personal importante o una llamada de negocios que cambia la vida y podría haber perdido esa oportunidad ya que no pudo responder eso. llame en ese momento en particular.
Este proyecto tiene como objetivo resolver este problema mediante la creación de un contestador automático de llamadas utilizando el módulo Arduino y GSM. La próxima vez que cambie a un nuevo número de teléfono o salga para un largo viaje de peregrinación o disfrute de unas merecidas vacaciones, simplemente use esta máquina para grabar su voz indicando el motivo de la ausencia y todas sus llamadas serán respondidas automáticamente por esta máquina y su se reproducirá la voz grabada. Esto también se puede utilizar para que sus números comerciales respondan a las llamadas de sus clientes fuera del horario de oficina. Suena interesante, ¿verdad? Así que vamos a construirlo…
Materiales necesarios:
El proyecto puede parecer un poco complicado, pero es realmente fácil de construir, solo necesita los siguientes componentes
- Arduino Uno
- Módulo GSM - Flyscale SIM 900
- Módulo de voz ISD 1820
- Adaptador de 12V para alimentar el módulo GSM
- Batería de 9V para alimentar Arduino
- Cables de conexión
Antes de continuar con el proyecto, familiaricémonos con el módulo GSM y el módulo de voz ISD 1820
Módulo GSM Fly Scale SIM900:
Los módulos GSM son fascinantes de usar, especialmente cuando nuestro proyecto requiere acceso remoto. Estos módulos podrían realizar todas las acciones que podría realizar nuestro teléfono móvil normal, como hacer / recibir una llamada, enviar / recibir un SMS, conectarse a Internet mediante GPRS, etc. También puede conectar un micrófono y un altavoz normales a este módulo y conversar en su llamadas móviles. Aquí hay algunos tutoriales sobre ellos usando diferentes microcontroladores:
- Llamada y mensaje usando Arduino y módulo GSM
- Llamar y enviar mensajes de texto usando Raspberry Pi y módulo GSM
- Interfaz del módulo GSM con el microcontrolador PIC: realizar y recibir llamadas
Como se muestra en la imagen de abajo, el módulo GSM viene con un adaptador USART que se puede conectar directamente a la computadora usando un módulo MAX232 o los pines Tx y Rx se pueden usar para conectarlo a un microcontrolador. También puede notar los otros pines como MIC +, MIC-, SP +, SP- etc.donde se puede conectar un micrófono o un altavoz. El módulo puede ser alimentado por un adaptador de 12V a través de un conector de barril de CC normal.
Inserte su tarjeta SIM en la ranura del módulo y enciéndalo, debería notar que un LED de encendido se enciende. Ahora espere un minuto más o menos, y debería ver un LED rojo (o de cualquier otro color) parpadeando una vez cada 3 segundos. Esto significa que su Módulo pudo establecer conexión con su tarjeta SIM. Ahora puede proceder a conectar su módulo con el teléfono o cualquier microcontrolador.
Módulo de voz ISD1820:
El módulo de voz ISD 1820 es realmente un módulo genial que podría darle vida a sus proyectos con anuncios de voz. Este módulo es capaz de grabar un clip de audio durante 10 segundos y luego reproducirlo cuando sea necesario. El módulo en sí viene con un micrófono y un altavoz (8 ohmios 0,5 vatios) y debería verse como el que se muestra a continuación.
El módulo funciona con + 5V y se puede alimentar usando los palos de té de la izquierda. También tiene tres botones en la parte inferior que son Rec. botón, PlayE. botón y PlayL. botón respectivamente. Puede grabar su voz presionando el botón Rec. y reprodúzcalo usando el botón PlayE. PlayL reproducirá la voz mientras mantenga presionado el botón. Al interactuar con una MCU, podemos usar los pines de la izquierda. Estos pines son tolerables de 3V-5V y, por lo tanto, pueden ser impulsados directamente por Arduino / ESP8266. En nuestro proyecto estamos controlando el pin PLAYE usando el pin D8 de nuestro módulo Arduino. Para que podamos reproducir la voz grabada cuando el módulo GSM detecta y recibe una llamada.
Diagrama de circuito y explicación:
El diagrama de circuito completo de este proyecto de contestador automático automático de llamadas de voz se muestra arriba. Como puede ver, las conexiones son realmente simples. Alimentamos el módulo GSM con un adaptador de 12V 1A y Arduino con batería de 9V, el módulo de voz ISD es alimentado por el pin + 5V del Arduino. Como sabemos, podemos grabar cualquier cosa en nuestro módulo de voz presionando el botón rec y esto se reproducirá cuando se presione PE, este audio debe enviarse al micrófono del módulo GSM. Entonces conectamos el pin de altavoz del módulo de voz al pin de micrófono del módulo GSM.
Aquí, el módulo Arduino y GSM se conecta en serie, el pin Tx de Arduino está conectado al pin 9 y el pin Rx está conectado al pin 10. Esto ayudará al Arduino a escuchar el módulo GSM. Cuando llega una llamada al módulo GSM, Arduino la escuchará y le pedirá al módulo GSM que conteste la llamada. El Arduino se asegura de que la llamada esté activa y luego reproduce el mensaje de voz grabado en el módulo de voz haciendo que el pin 8 (Conectado al PE del módulo de voz) esté alto durante 200ms.
Programando su Arduino:
Sabemos por el párrafo anterior cuál es el papel de Arduino aquí; ahora echemos un vistazo al código que hace lo mismo. El código completo de Arduino del proyecto se encuentra en la parte inferior de esta página, además aquí he vertido el código en pequeños archivos basura para explicarlo.
Antes de continuar con la instalación de la biblioteca GSM, haga clic en este enlace de la biblioteca GSM de Github para descargar la biblioteca utilizada en este proyecto. Obtendrá un archivo zip que debe agregar a su biblioteca Arduino mediante Sketch -> Incluir Librarey -> Agregar archivo.Zip .
Las primeras tres líneas del código que se muestra a continuación se utilizan para incluir la biblioteca en nuestro código. Usamos la biblioteca serial y la biblioteca de cables porque no estamos usando los pines Rx y Tx predeterminados del Arduino para comunicarnos con el módulo GSM.
#incluir
Nos permiten la comunicación en serie en los pines 9 y 10 utilizando la siguiente línea. Esto es posible gracias a la biblioteca de serie de software que incluimos anteriormente.
SoftwareSerial gprs (9,10); // TX, RX
Dentro de nuestra función de configuración , inicializamos el monitor en serie a 9600 baudios y el módulo GSM también se inicializa con 9600 baudios. El pin 8 que activa la voz se declara como pin de salida.
configuración vacía () {Serial.begin (9600); // El monitor en serie funciona a una velocidad de 9600 baudios para depurar sim900_init (& gprs, 9600); // El módulo GSM funciona en pinMode de 9600 baudios (8, SALIDA); // pin para activar Voice Serial.println ("Arduino - Automatic Voice Machine"); }
A continuación, tenemos que crear una función que pueda leer y comprender lo que dice el módulo GSM a través de su puerto serie. Si usamos una línea de lectura serial simple como "gprs.read ()" para leer el mensaje, los obtendremos en forma de valores decimales ASCII, esto no tendrá sentido para nosotros.
Entonces, la siguiente función se usa para convertir estos valores decimales en cadenas utilizando objetos de cadena y luego concatenarlos para formar una cadena. El valor de cadena final se almacena en la variable Fdata , que es de tipo cadena y se puede utilizar para comparar con cualquier valor de cadena.
void check_Incoming () {if (gprs.available ()) // Si GSM está diciendo algo {Incomingch = gprs.read (); // Escúchalo y almacena en esta variable if (Incomingch == 10 - Incomingch == 13) // Si dice espacio (10) o Newline (13) significa que ha completado una palabra {Serial.println (data); Fdata = datos; datos = ""; } // Imprime la palabra y borra la variable para empezar de cero else {String newchar = String (char (Incomingch)); // convierte el char en una cadena usando objetos de cadena data = data + newchar; // Después de convertir a cadena, haz una concatenación de cadenas}}}
Las siguientes líneas se utilizan para la depuración, con estas líneas del depurador puede enviar cualquier comando AT desde el monitor serial de Arduino a GSM y también ver cuáles son las respuestas en el monitor serial.
if (Serial.available ()) {// Se usa para depurar gprs.write (Serial.read ()); // Se usa para depurar} // Se usa para depurar
Como se dijo anteriormente, Arduino debe verificar si el módulo GSM está recibiendo llamadas. Esto se puede hacer haciendo que el Arduino busque “ RING ” porque el módulo GSM emitirá RING en caso de una llamada de acuerdo con la lista de comandos AT. Cuando encuentre una llamada esperará 5 segundos y enviará el comando “ ATA ” al módulo GSM, esto hará que el módulo GSM responda la llamada y luego de contestar responderá con “OK”. El Arduino nuevamente espera el reconocimiento " OK " y luego activa el Pin 8 en alto durante 200ms para reproducir la voz grabada desde el módulo de voz.
if (Fdata == "RING") // Si el módulo GSM dice RING {delay (5000); // Espere 5 segundos para crear un retardo de 3 timbres. gprs.write ("ATA \ r \ n"); // Responde la llamada Serial.println ("Colocado Recibido"); // Se usa para depurar while (Fdata! = "OK") // Hasta que la llamada se responda correctamente {check_Incoming (); // Lea lo que dice el modo GSM Serial.println ("Reproduciendo mensaje grabado"); // Se usa para depurar // Reproduce el retraso del mensaje de voz grabado (500); escritura digital (8, ALTA); // Ir alto retraso (200); // esperar 200 mseg digitalWrite (8, LOW); // Baja}
Trabajando:
Una vez que su código y hardware estén listos, es hora de divertirse. Encienda ambos módulos y presione el botón REC en el módulo de voz y grabe un mensaje. Este mensaje solo puede tener una duración de 10 segundos.
Ahora programe su Arduino usando el código dado a continuación e inserte el automóvil SIM en el módulo GSM, debe esperar al menos 2 minutos ahora para que el módulo GSM pueda establecer conexión con su proveedor de servicios de red. Una vez hecho esto, debería ver un LED de color rojo parpadeando una vez cada 3 segundos, esto indica que su SIM está lista para recibir llamadas. Ahora puede intentar llamar a esta tarjeta SIM desde cualquier número y debería escuchar el mensaje grabado después de tres timbres continuos. El funcionamiento completo del proyecto se muestra en el video a continuación.
Tadaaaaaa !!! Ahora tiene su propio contestador automático de llamadas de voz y simplemente utilícelo cuando sea necesario y sorprenda a sus amigos y familiares con él.
Espero que hayas disfrutado del proyecto y hayas creado algo similar. Si tuviste algún problema, publícalo en la sección de comentarios y te ayudaré.