Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

¿Quieres aprender a enviar y recibir SMS y llamadas con tu Arduino? ¡Entonces estás en el lugar correcto! En este artículo, te mostraremos cómo usar el módulo GSM A6 para comunicarte a través de mensajes de texto y llamadas telefónicas. Sigue leyendo para descubrir cómo integrar esta tecnología en tus proyectos de electrónica y comunicación. ¡Empecemos!

Ya sea que desee escuchar lo que sucede en su casa a kilómetros de usted o simplemente activar el sistema de rociadores en su jardín con una llamada silenciosa; ¡Entonces el módulo A6 GSM/GPRS sirve como un sólido punto de partida para comenzar con IoT!

El módulo A6 GSM/GPRS es un módem GSM en miniatura que se puede integrar en una variedad de proyectos de IoT. Con este módulo podrás lograr casi todo lo que puede hacer un teléfono móvil normal. Mensajes de texto SMS, hacer o recibir llamadas, conexión a Internet vía GPRS, TCP/IP y más. Además, el módulo admite redes GSM/GPRS de cuatro bandas, lo que significa que funciona prácticamente en cualquier parte del mundo.

Descripción general del hardware del módulo A6 GSM/GPRS

El corazón del módulo es el chip celular A6 GSM de Ai-Thinker (fabricante de módulos WiFi ESP8266). Se comunica con un microcontrolador a través de UART y soporta velocidad en baudios de 1200bps A 115200 bps con detección automática de baudios. Todos los pines de datos necesarios del chip GSM A6 se dividen en cabezales de pines con un paso de 0,1 pulgadas.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

Para cualquier tipo de comunicación de voz o datos, así como algunos comandos SIM, el módulo requiere una antena externa. Por eso suele venir con uno pequeño. Antena de pato con ganancia de 2 dBi y una impedancia de 50Ω que proporciona una excelente cobertura incluso si tu proyecto se desarrolla en interiores.

Hay un Botón de encendido Está destinado a encender y apagar el módulo manualmente. Sin embargo, también puedes hacer esto mediante programación. El estado del módulo se indica mediante un LED en la parte superior derecha del módulo.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

Aunque el módulo puede seguir funcionando 5VEl voltaje de funcionamiento del chip es: 3,3 V a 4,2 V. Para mantener de forma segura el voltaje de suministro a 4,1 V, el módulo está equipado con un regulador de conmutación reductor de alta frecuencia Monolithic Power Systems MP1584 que puede manejar corrientes de carga de hasta 3 A.

El módulo también se puede alimentar a través de un Puerto micro USB. Simplemente puede tomar el cargador de su teléfono celular (clasificado para 5 V, 2 A) y encender el módulo. ¡Cuan genial es eso!

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

¡Hay una toma SIM en la parte posterior! Todo activado, Tarjeta micro SIM 2G Funcionaría perfectamente. Puede tomar algún tiempo acostumbrarse a la forma en que funciona la ranura para tarjeta SIM. Para desbloquear el pestillo, empuje la parte superior del conjunto hacia el puerto micro USB y luego levántelo. Inserte la tarjeta SIM en la parte inferior de la ranura con la muesca de la tarjeta SIM orientada hacia el puerto micro USB. Luego doble el brazo hacia el cuerpo del eje y empújelo suavemente hacia la posición «BLOQUEO».

El chip celular A6 GSM mide menos que el tamaño de un sello postal, pero incluye una sorprendente cantidad de funcionalidades en su pequeño marco. Algunos de ellos se enumeran a continuación:

  • Soporta cuatribanda: GSM850, EGSM900, DCS1800 y PCS1900
  • Conéctese a cualquier red GSM global con cualquier tarjeta SIM 2G
  • Realice y reciba llamadas de voz a través de un altavoz externo de 8 Ω y un micrófono electret
  • Posibilidad de conectar un micrófono y unos auriculares TRRS de 4 pines
  • Enviar y recibir llamadas de voz y mensajes SMS
  • GPRS clase 10 con una velocidad de descarga de 85,6 Kbps y una velocidad de carga de 42,8 Kbps
  • Consume menos de 3 mA en modo de espera
  • Nivel de puerto UART de 8 V – Compatible con Arduino, Raspberry Pi
  • Poder de transmision:
    • Clase 4 (2W) para GSM850/EGSM900
    • Clase 1 (1W) para DCS1800/PCS1900
  • Admite conjunto de comandos AT serie
  • Acepta tarjeta Micro SIM

Asignación de pines del módulo GSM A6

El módulo GSM A6 tiene un total de 24 pines que lo conectan con el mundo exterior. Las conexiones son las siguientes:

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

VCC suministra energía al módulo. Conéctelo a cualquier fuente de alimentación externa de 5 V y 2 A.

Tierra es el pin de tierra y debe conectarse al pin GND del Arduino.

MIC± Es una entrada de micrófono diferencial. Los dos pines del micrófono se pueden conectar directamente a estos pines.

MIC2_P El pin se utiliza para conectar a un micrófono TRRS de 4 pines.

REC± Es una interfaz de altavoz diferencial. Los dos pines de un altavoz de 8Ω se pueden conectar directamente a estos dos pines.

U_TxD (transmisor) El pin se utiliza para la comunicación en serie.

U_RxD (receptor) El pin se utiliza para la comunicación en serie.

GPIO1 se utiliza para controlar el módulo para ingresar al modo de ahorro de energía.

U_RTS (solicitud de envío) El pin de control de flujo UART permite que el receptor y el transmisor se informen mutuamente sobre su estado.

U_CTS (Envío gratuito) El pin de control de flujo UART permite que el receptor y el transmisor se informen mutuamente sobre su estado.

EAR_R Se utiliza para conectar a un auricular TRRS de 4 pines.

CONTAR Se utiliza para conectar a un auricular TRRS de 4 pines.

UART DEL HOST HST_RXD es un UART de depuración utilizado para descargar, calibrar, rastrear, etc. No es compatible con el comando AT. Esta interfaz solo se utiliza durante la depuración.

HST_TXD UART es un UART de depuración utilizado para descargar, calibrar, rastrear, etc. No es compatible con el comando AT. Esta interfaz solo se utiliza durante la depuración.

Primero (restablecer) es un pin de restablecimiento completo. Si realmente tiene el módulo en una mala ubicación, baje este pin durante 100 ms para realizar un reinicio completo.

CAROLINA DEL NORTE No conectado

PWR El pin se utiliza para encender/apagar el módulo mediante programación. Para hacer esto, debe colocarlo en ALTO por un momento (menos de 500 ms aproximadamente).

Cableado: conecte el módulo GSM A6 a Arduino UNO

Ahora que sabemos todo sobre el módulo, ¡podemos empezar a conectarlo a nuestro Arduino!

Primero, conecte los pines U_TxD y U_RxD del módulo a los pines digitales 3 y 2 del Arduino, ya que los usaremos. Número de serie del programa para hablar con el módulo.

Conecte el pin VCC del módulo a una fuente de alimentación externa de 5 V 2 A. No intente conectar este pin a la fuente de alimentación de 5 V del Arduino ya que el módulo no funcionará debido a la falta de alimentación. Ahora conecte toda la tierra del circuito.

Finalmente, conecta la antena e inserta la tarjeta micro SIM completamente activada en el zócalo.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino
Cableado del módulo GPRS GSM A6 a Arduino UNO mediante fuente de alimentación externa

También puede alimentar el módulo mediante un adaptador de pared de 5 V 2 A. Sin embargo, asegúrese de que el pin GND del Arduino esté conectado al pin GND del módulo.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino
Cableado del módulo A6 GSM GPRS a Arduino UNO mediante fuente de alimentación USB

Una vez que tengas todo conectado, simplemente presiona el botón de encendido durante aproximadamente 2 segundos y ¡listo!

Advertencia:

Debes tener mucho cuidado de no desconectar GND antes que VCC y conectar siempre GND antes que VCC. De lo contrario, el módulo puede utilizar los pines serie de bajo voltaje como tierra y destruirse instantáneamente.

Código Arduino: prueba de comandos AT

Para enviar comandos AT y comunicarnos con el módulo A6, utilizamos el monitor serie. El siguiente boceto permite que Arduino se comunique con el módulo A6 a través de un monitor en serie. Antes de pasar al desglose detallado del código, conecte su Arduino a la PC, compile el siguiente código y cárguelo en el Arduino.

Una vez que abra un monitor en serie, ¡Asegúrese de que la opción «Tanto NL como CR» esté seleccionada!

#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()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

El boceto comienza con la inserción de un SoftwareSerial.h Biblioteca e inicialización con los pines Arduino a los que se conectan Tx y Rx del módulo A6.

#include <SoftwareSerial.h>

//Create software serial object to communicate with A6
SoftwareSerial mySerial(3, 2); //A6 Tx & Rx is connected to Arduino #3 & #2

En la función de configuración, inicializamos una conexión de comunicación en serie entre Arduino, Arduino IDE y el módulo A6 con una velocidad de 9600 baudios.

//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and A6
  mySerial.begin(9600);

Ahora que hemos establecido una conexión básica, intentaremos comunicarnos con el módulo A6 enviando comandos AT.

EN – Es el comando AT más simple. También inicializa el auto-baud'er. Si está funcionando, deberías ver el eco de los caracteres AT y luego «OK», que te indica que está bien y te entiende correctamente. Luego puede enviar algunos comandos para consultar el módulo y obtener información sobre él, como por ejemplo:

EN+CSQ – Verifique la “Intensidad de la señal”: el primer # es la intensidad de dB, debe ser superior a aproximadamente 5. Más alto es mejor. ¡Por supuesto que depende de tu antena y tu ubicación!

AT+CCID – Obtener el número de la tarjeta SIM: esto prueba si la tarjeta SIM está bien y puede verificar si el número está en la tarjeta.

¿AT+CREG? Comprueba si estás registrado en la red. El segundo # debe ser 1 o 5. 1 indica que estás registrado en la red local y 5 indica que estás registrado en la red de roaming. Los números distintos de estos dos indican que no está registrado en ninguna red.

  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();

En la parte del bucle del código, llamamos a una función definida por el usuario. actualizarSerial() que espera continuamente la entrada del monitor serie y la envía al módulo A6 a través del pin D2 (Rx del módulo). También lee continuamente el pin D3 (Tx del módulo) cuando el módulo A6 tiene respuestas.

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

Debería ver el siguiente resultado en el monitor serie.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

Ahora puede enviar comandos arbitrarios a través del monitor serie como se describe a continuación, que contiene más información sobre la conexión de red:

ATI – Obtener el nombre del módulo y la revisión.

¿AT+policías? – Comprueba a qué red estás conectado, en este caso 40466 (BSNL)

¿AT+COPS=? – Devuelve la lista de operadores presentes en la red.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

Código Arduino – Enviar SMS

Vayamos a lo interesante. Programemos nuestro Arduino para que envíe un SMS a cualquier número de teléfono que queramos. Antes de probar el boceto, debes ingresar el número de teléfono. Busque la cadena ZZxxxxxxxxxx y reemplace ZZ con el código de país y xxxxxxxxxx con el número de teléfono de 10 dígitos.

#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+CMGF=1"); // Configuring TEXT mode
  updateSerial();
  mySerial.println("AT+CMGS="+ZZxxxxxxxxxx"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
  updateSerial();
  mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //text content
  updateSerial();
  mySerial.write(26);
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

El boceto es casi el mismo que antes excepto por el siguiente fragmento de código. Una vez conectado, enviamos los siguientes comandos AT:

AT+CMGF=1 – Selecciona el formato del mensaje SMS como texto. El formato predeterminado es PAGrotocol Den un Ud.liendre (PDU)

AT+CMGS=+ZZxxxxxxxxxx – Envía un SMS al número de teléfono especificado. El mensaje de texto ingresado seguido de un carácter “Ctrl+z” se trata como un SMS. “Ctrl+z” es en realidad un 26Th carácter no imprimible descrito como «sustituto». tabla ASCII. Entonces tenemos que enviar 26DIC (1AMALEFICIO) tan pronto como enviemos un mensaje.

  mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
  updateSerial();
  mySerial.println("AT+CMGS="+ZZxxxxxxxxxx"");//change ZZ with country code and xxxxxxxxxxx with phone number to sms
  updateSerial();
  mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //text content
  updateSerial();
  mySerial.write(26);

El bucle permanece vacío porque sólo queremos enviar SMS una vez. Si deseas enviar un mensaje de texto nuevamente, simplemente presiona el botón RESET en tu Arduino. La siguiente captura de pantalla muestra los SMS enviados por el módulo GSM A6.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino
Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

Código Arduino – Leer SMS

Ahora programemos nuestro Arduino para leer los mensajes entrantes. Este boceto es muy útil cuando necesitas activar una acción al recibir un SMS específico. Por ejemplo, cuando Arduino recibe un SMS, puedes indicarle que encienda o apague un relé. ¡Tienes la idea!

#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+CMGF=1"); // Configuring TEXT mode
  updateSerial();
  mySerial.println("AT+CNMI=1,2,0,0,0"); // Decides how newly arrived SMS messages should be handled
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

El boceto es similar al anterior excepto por el siguiente fragmento de código. Una vez conectado, enviamos los siguientes comandos AT:

AT+CMGF=1 – Selecciona el formato del mensaje SMS como texto. El formato predeterminado es PAGrotocol Den un Ud.liendre (PDU)

AT+CNMI=1,2,0,0,0 – determina cómo se deben manejar los mensajes SMS recién llegados. Esto le permite indicarle al módulo A6 que reenvíe los mensajes SMS recién recibidos directamente a la PC o que los almacene en la memoria de mensajes y luego informe a la PC de sus ubicaciones en la memoria de mensajes.

Su respuesta comienza con +CMT: Todos los campos de la respuesta están separados por comas, siendo el primer campo el número de teléfono. El segundo campo es el nombre de la persona que envía el SMS. El tercer campo es una marca de tiempo, mientras que el cuarto campo es el mensaje real.

  mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
  updateSerial();
  mySerial.println("AT+CNMI=1,2,0,0,0"); // Decides how newly arrived SMS messages should be handled
  updateSerial();

Tenga en cuenta que Esta vez NO dejamos la función de bucle en blanco. mientras comprobamos si hay mensajes SMS recién llegados. Una vez que envíe el SMS al módulo GSM A6, verá el siguiente resultado en el monitor serie.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino
Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

Ampliación del tamaño del búfer serie del software Arduino

Si tu mensaje es lo suficientemente largo, como el nuestro, probablemente lo recibirás con algunos caracteres faltantes. Esto no se debe a un código defectuoso. Su búfer de recepción SoftwareSerial se llena y elimina caracteres. No estás leyendo del búfer lo suficientemente rápido.

La solución más sencilla para esto es aumentar el tamaño del búfer SoftwareSerial desde su tamaño predeterminado de 64 bytes. 512 bytes (o más pequeño, dependiendo de lo que funcione para usted).

En una PC con Windows, vaya a C:Program Files (x86) -> Arduino -> Hardware -> Arduino -> avr -> Bibliotecas -> SoftwareSerial (-> src para versiones más recientes de Arduino IDE). Abra SoftwareSerial.h y cámbielo por la línea:

// RX buffer size
#define _SS_MAX_RX_BUFF 64

A

// RX buffer size
#define _SS_MAX_RX_BUFF 512

Guarde el archivo y vuelva a intentar el boceto.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino
Ampliación del tamaño del búfer serie del software Arduino

Código Arduino – Hacer una llamada

Ahora programemos nuestro Arduino para realizar llamadas. Este boceto es muy útil si desea que su Arduino realice una llamada de emergencia/SOS en caso de una emergencia, como un aumento de temperatura o un robo en su casa. ¡Tienes la idea!

Antes de probar el boceto, debes ingresar el número de teléfono. Busque la cadena ZZxxxxxxxxxx y reemplace ZZ con el código del país y xxxxxxxxxx con el número de teléfono de 10 dígitos.

#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, i t will back to OK
  updateSerial();
  
  mySerial.println("ATD+ZZxxxxxxxxxx"); //  change ZZ with country code and xxxxxxxxxxx with phone number to dial
  updateSerial();
  delay(20000); // wait for 20 seconds...
  mySerial.println("ATH"); //hang up
  updateSerial();
}

void loop()
{
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

Para realizar una llamada, se utilizan los siguientes comandos AT:

ATD+ZZxxxxxxxxxxx; – Marca un número específico.

ATH – Cuelga la llamada

  mySerial.println("ATD+ZZxxxxxxxxxx"); //  change ZZ with country code and xxxxxxxxxxx with phone number to dial
  updateSerial();
  delay(20000); // wait for 20 seconds...
  mySerial.println("ATH"); //hang up
  updateSerial();

La siguiente captura de pantalla muestra una llamada desde el módulo GSM A6.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino
Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

Código Arduino – llamada recibida

No se requiere ningún código especial para recibir una llamada; Sólo tienes que seguir escuchando el módulo A6. Aún así, este boceto puede resultarle muy útil si necesita activar una acción cuando una llamada proviene de un número de teléfono específico.

#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..."); 
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

Las llamadas entrantes generalmente se indican con «RING» en el monitor en serie seguido del número de teléfono y el identificador de llamadas. Para responder/finalizar una llamada, se utilizan los siguientes comandos AT:

EN UN – Acepta llamada entrante.

ATH – Cuelga la llamada. Al colgar la llamada, se muestra NO CARRIER en el monitor serial, indicando que no se pudo establecer la llamada.

La siguiente salida en el monitor serie muestra la llamada recibida por el módulo GSM A6.

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino
Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino

¡Inspírate con el módulo GSM/GPRS A6 para realizar una variedad de proyectos de IoT! Ya sea que desees escuchar lo que sucede en tu casa desde kilómetros de distancia o activar el sistema de riego en tu jardín con una llamada silenciosa; ¡entonces el módulo A6 GSM/GPRS es el punto de partida sólido para comenzar con IoT!

Resumen del Hardware del módulo GSM A6

En el corazón del módulo se encuentra el chip celular GSM A6 de Ai-Thinker (fabricante de módulos WiFi ESP8266). Se comunica con un microcontrolador a través de UART y admite velocidades de baudios desde 1200bps hasta 115200bps con detección de Auto-Baud. Todos los pines necesarios del chip GSM A6 están disponibles en encabezados de 0.1″.

El módulo necesita una antena externa para cualquier tipo de comunicación de voz o datos, así como algunos comandos SIM. Por lo general, viene con una pequeña antena de pato con una ganancia de 2 dBi y una impedancia de 50Ω que proporciona una gran cobertura incluso si tu proyecto está en interiores.

Hay un botón de encendido proporcionado para encender/apagar manualmente el módulo, aunque también se puede hacer programáticamente. El estado del módulo se indica mediante un LED en la parte superior derecha del módulo.

Preguntas frecuentes sobre el módulo GSM A6:

  1. ¿Cuáles son las características principales del módulo GSM A6?

    El módulo soporta quad-band (GSM850, EGSM900, DCS1800 y PCS1900), lo que significa que funciona prácticamente en cualquier parte del mundo. Además, permite enviar y recibir llamadas de voz y mensajes SMS, conectarse a Internet a través de GPRS, TCP/IP y más.

  2. ¿Cuál es el tamaño y la alimentación del módulo GSM A6?

    El chip A6 GSM tiene un tamaño inferior al de un sello postal pero incluye una cantidad sorprendente de funciones en su pequeño marco. Además, funciona con una tensión de 3.3V a 4.2V y puede ser alimentado mediante un conector micro USB.

  3. ¿Cómo se conecta el módulo GSM A6 a Arduino UNO?

    Para conectar el módulo A6 GSM a Arduino UNO, debes conectar los pines U_TxD y U_RxD del módulo a los pines digitales #3 y #2 en Arduino, usar un suministro de energía externo calificado de 5V 2A y asegurarte de conectar todas las tierras en el circuito. Finalmente, conecta la antena y coloca una tarjeta SIM activada en el zócalo del módulo.

  4. ¿Cómo programar el Arduino para enviar SMS con el módulo GSM A6?

    Para enviar SMS con el módulo GSM A6, puedes usar un sketch en Arduino que te permita enviar un mensaje de texto a cualquier número de teléfono. Solo necesitas ingresar el número de teléfono en el sketch y seguir las instrucciones para configurar la comunicación.

Esperamos que este artículo te haya proporcionado información útil sobre cómo enviar, recibir SMS y hacer llamadas con el módulo GSM A6 y Arduino. ¡Comienza a explorar las infinitas posibilidades de IoT con este potente módulo!

5 comentarios en «Envía, recibe SMS y llamadas con el módulo GSM A6 y Arduino»

  1. ¡Me encanta esta idea! Nunca pensé que se pudiera integrar el módulo GSM A6 con Arduino para enviar y recibir mensajes de texto y llamadas. Definitivamente voy a probarlo en mi próximo proyecto. 📱🤖 ¡Gracias por el tutorial! 👏

Deja un comentario