Enviar Recibir SMS y llamar con el módulo SIM800L GSM y Arduino

Cómo funciona el módulo SIM800L GSM y Arduino

Ya sea que quieras escuchar lo que sucede en tu casa que está a kilómetros de distancia o activar el sistema de rociadores en tu jardín sólo con una llamada silenciosa; entonces el módulo GSM/GPRS SIM800L sirve como un sólido punto de lanzamiento para que empieces con la domótica y el Internet de las Cosas.

El módulo SIM800L GSM/GPRS es un módem GSM en miniatura, que puede ser integrado en un gran número de proyectos de IO. Puedes usar este módulo para lograr casi todo lo que un teléfono celular normal puede; mensajes de texto SMS, hacer o recibir llamadas telefónicas, conectarse a Internet a través de GPRS, TCP/IP, y más! Para colmo, el módulo soporta una red GSM/GPRS cuatribanda, lo que significa que funciona prácticamente en cualquier parte del mundo.

AZDelivery Modulo SIM800L GSM GPRS con Antena compatible con Arduino con E-Book incluido!
✔️ El voltaje de alimentación del módulo es 3.4 V ~ 4.4 V DC (recomendamos 4.1 V).

Descripción del hardware del módulo GSM/GPRS SIM800L

En el corazón del módulo hay un chip celular SIM800L GSM de SimCom. El voltaje de funcionamiento del chip es de 3,4V a 4,4V, lo que lo convierte en un candidato ideal para el suministro directo de baterías LiPo. Esto lo convierte en una buena opción para integrarlo en proyectos sin mucho espacio.

Todos los pines de datos necesarios del chip SIM800L GSM se abren a un 0.1″ cabeceras de paso. Esto incluye los pines necesarios para la comunicación con un microcontrolador sobre UART. El módulo soporta una tasa de baudios de 1200bps a 115200bps con detección automática de baudios.

El módulo necesita una antena externa para conectarse a una red. El módulo suele venir con una antena helicoidal y se suelda directamente al pin de la red en el PCB. El tablero también tiene un conector U.FL en caso de que quieras mantener la antena lejos del tablero.

Hay un socket SIM en la parte de atrás. Cualquier tarjeta SIM micro activada de 2G funcionaría perfectamente. La dirección correcta para insertar la tarjeta SIM está normalmente grabada en la superficie del enchufe de la SIM.

Este módulo mide sólo 1 pulgada² pero contiene una sorprendente cantidad de características en su pequeño marco. Algunas de ellas se enumeran a continuación:

  • Soporta la banda cuádruple: GSM850, EGSM900, DCS1800 y PCS1900
  • Conéctate a cualquier red global GSM con cualquier SIM 2G
  • Hacer y recibir llamadas de voz usando un altavoz externo 8Ω y un micrófono electret
  • Enviar y recibir mensajes SMS
  • Enviar y recibir datos GPRS (TCP/IP, HTTP, etc.)
  • Escanear y recibir emisiones de radio FM
  • Transmitir energía:
    • Clase 4 (2W) para GSM850
    • Clase 1 (1W) para el DCS1800
  • Conjunto de comandos AT basados en serie
  • Conectores FL para antenas celulares
  • Acepta la tarjeta micro SIM

Indicadores de estado de los LED

Hay un LED en la parte superior derecha del módulo celular SIM800L que indica el estado de tu red móvil. Parpadeará a varias velocidades para mostrar en qué estado se encuentra:

  • Parpadea cada 1s. El módulo está funcionando pero aún no se ha conectado a la red móvil. Luz de red LED parpadeante Conexión GPRS activa
  • Pestañeo cada 2s. La conexión de datos GPRS que solicitó está activa. LED de luz de red Parpadeo Conexión de red establecida.
  • Parpadea cada 3s. El módulo ha hecho contacto con la red móvil y puede enviar/recibir voz y SMS.

Selección de la antena

Se requiere una antena para usar el módulo para cualquier tipo de comunicación de voz o datos, así como algunos comandos SIM. Por lo tanto, la selección de una antena podría ser algo crucial. Hay dos maneras de agregar una antena a tu módulo SIM800L.

La primera es una antena GSM helicoidal que normalmente viene con el módulo y se suelda directamente al pin NET en el PCB. Esta antena es muy útil para proyectos que necesitan ahorrar espacio pero que tienen dificultades para obtener conectividad, especialmente si su proyecto está en el interior.

SIM800L GSM - Enviar Recibir SMS y llamar con el módulo SIM800L GSM y ArduinoLa segunda es cualquier antena GSM de 3dBi junto con un adaptador de U.FL a SMA que se puede obtener en línea por menos de $3. Puedes acoplar esta antena a un pequeño conector u.fl ubicado en la esquina superior izquierda del módulo. Este tipo de antena tiene un mejor rendimiento y permite poner su módulo dentro de una caja de metal – siempre y cuando la antena esté afuera.

SIM800L GSM con antena - Enviar Recibir SMS y llamar con el módulo SIM800L GSM y Arduino

Suministro de energía para el módulo SIM800L

Una de las partes más importantes para hacer funcionar el módulo SIM800L es suministrarle suficiente energía.

Dependiendo del estado en que se encuentre, el SIM800L puede ser un dispositivo relativamente ávido de energía. El consumo máximo de corriente del módulo es de alrededor de 2A durante la ráfaga de transmisión. Por lo general, no consume tanto, pero puede requerir alrededor de 216mA durante las llamadas telefónicas o 80mA durante las transmisiones de la red. Este cuadro de la hoja de datos resume lo que puedes esperar:

Modos Frecuencia Consumo actual
Apagar. 60 uA
Modo de descanso… 1 mA
Preparado 18 mA
Llama a GSM850 199 mA
EGSM900 216 mA
DCS1800 146 mA
PCS1900 131 mA
GPRS 453 mA
Ráfaga de transmisión 2 A

Como el módulo SIM800L no viene con regulador de voltaje incorporado, se requiere una fuente de alimentación externa ajustada a un voltaje entre 3.4V y 4.4V (Ideal 4.1V). La fuente de alimentación también debe ser capaz de suministrar 2A de corriente de sobrecarga, de lo contrario el módulo seguirá apagándose. Aquí hay algunas opciones que puede considerar para alimentar correctamente su módulo GSM.

Batería de Li-Po de 3.7v (Recomendado)

Una de las cosas interesantes de las baterías de Li-Po es que su voltaje está generalmente en el rango de 3.7V – 4.2V, perfecto para el módulo SIM800L. Cualquier batería de iones de litio/polímeros de 1200mAh o más grande es la mejor, ya que puede proporcionar el rango de voltaje correcto incluso durante los picos de 2 Amperios.

3.7v Li Po Batería - Enviar Recibir SMS y llamar con el módulo SIM800L GSM y ArduinoConvertidor Buck DC-DC

Cualquier convertidor de 2A DC-DC como el LM2596 funcionaría. Son mucho más eficientes que un regulador de voltaje de línea como el LM317 o el LM338.

DC DC Buck Converter - Enviar Recibir SMS y llamar con el módulo SIM800L GSM y ArduinoDebes tener mucho cuidado de no desconectar la GND antes del VCC y siempre conectar la GND antes del VCC. De lo contrario, el módulo puede usar los pines seriales de bajo voltaje como tierra y puede ser destruido instantáneamente.

SIM800L GSMPinout

El módulo SIM800L tiene un total de 12 pines que lo conectan al mundo exterior. Las conexiones son las siguientes:

SIM800L GSM Pinout - Enviar Recibir SMS y llamar con el módulo SIM800L GSM y Arduino

  • NET es un pin donde puedes soldar la antena helicoidal que se proporciona junto con el módulo.
  • El VCC suministra la energía para el módulo. Puede ser de 3,4 a 4,4 voltios. Recuerda que si lo conectas a la clavija de 5V probablemente destruirás tu módulo. Ni siquiera funciona con 3,3 V. Una fuente de energía externa como la batería Li-Po o los convertidores DC-DC de 3.7V 2A funcionarían.
  • RST (Reset) es un pin de reajuste duro. Si tienes el módulo en un mal espacio, tira de esta clavija a baja altura durante 100ms para realizar un hard reset.
  • La clavija RxD (Receptor) se utiliza para la comunicación en serie.
  • La clavija TxD (Transmisor) se utiliza para la comunicación en serie.
  • GND es el ing de tierra y necesita ser conectada a la clavija GND en el Arduino.
  • La clavija RING actúa como un indicador de anillo. Es básicamente el pin de “interrupción” de salida del módulo. Es por defecto alto y pulsará bajo durante 120ms cuando se reciba una llamada. También puede ser configurado para pulsar cuando se recibe un SMS.
  • El pin DTR activa/desactiva el modo de espera. Si lo pones en HIGH, el módulo entrará en modo de suspensión, deshabilitando la comunicación en serie. Tirando de ella en LOW se despertará el módulo.
  • MIC± es una entrada de micrófono diferencial. Las dos clavijas del micrófono pueden conectarse directamente a estas clavijas.
  • SPK± es una interfaz de altavoz diferencial. Los dos pines de un altavoz pueden conectarse directamente a estos dos pines.

Cableado, Conectando el módulo GSM SIM800L a Arduino UNO

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

Comienza soldando/conectando la antena, inserta la tarjeta Micro SIM completamente activada en el enchufe. Ahora, conecte el pin Tx del módulo al pin digital nº 3 de Arduino ya que usaremos el software de serie para hablar con el módulo.

No podemos conectar directamente la clavija Rx del módulo a la clavija digital de Arduino ya que Arduino Uno utiliza 5V GPIO mientras que el módulo SIM800L utiliza una lógica de nivel de 3,3V y NO es tolerante a los 5V. Esto significa que la señal Tx que viene del Arduino Uno debe ser bajada a 3.3V para no dañar el módulo SIM800L. Hay varias maneras de hacer esto, pero la más fácil es usar un simple divisor de resistencia. Una resistencia de 10K entre SIM800L Rx y Arduino D2, y 20K entre SIM800L Rx y GND funcionaría bien.

Ahora nos quedamos con los pines que se usan para suministrar energía al módulo. Como tiene múltiples opciones para alimentar el módulo, hemos proporcionado dos esquemas de ejemplo. Uno usa una batería de Li-Po de 1200mAh y el otro usa un convertidor DC-DC LM2596.

conexion SIM800L GSM Arduino Uno - Enviar Recibir SMS y llamar con el módulo SIM800L GSM y Arduino

En caso de que estés usando el convertidor LM2596 para encender el módulo, recuerda que debes compartir toda la tierra del circuito.

Una vez que tengas todo conectado, estás listo para empezar.

Código Arduino. Probando los comandos AT

Para enviar los comandos AT y comunicarse con el módulo SIM800L, usaremos el monitor serial. El siguiente esquema permitirá a Arduino comunicarse con el módulo SIM800L en el monitor de serie. Antes de proceder con el desglose detallado del código, conecta tu Arduino al PC, compila el siguiente código y cárgalo en el Arduino.

Una vez que abras un monitor en serie, asegúrate de que la opción ‘Both NL & CR’ esté seleccionada.

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L 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 SIM800L
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 código comienza incluyendo una biblioteca SoftwareSerial.h e inicializándola con los pines de Arduino a los que se conecta el Tx y Rx del módulo SIM800L.

#include <SoftwareSerial.h>

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

En la función de configuración: inicializamos un enlace de comunicación en serie entre Arduino, Arduino IDE y el módulo SIM800L a una velocidad de 9600 baudios.

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

//Begin serial communication with Arduino and SIM800L
mySerial.begin(9600);

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

  • AT – Es el comando AT más básico. También inicializa el Auto-baud’er. Si funciona, deberías ver el eco de los caracteres AT y luego OK, diciéndote que está bien y que te está entendiendo correctamente. Puedes enviar algunos comandos para consultar el módulo y obtener información sobre él, como por ejemplo
  • AT+CSQ – Comprueba la “fuerza de la señal” – el primer # es la fuerza en dB, debería ser mayor que alrededor de 5. Más alto es mejor. Por supuesto que depende de tu antena y de tu ubicación.
  • AT+CCID – Obtener el número de la tarjeta SIM – esto prueba que la tarjeta SIM se encuentra bien y puede verificar que el número está escrito en la tarjeta.
  • AT+CREG? Comprueba que estás registrado en la red. El segundo número debe ser 1 o 5. 1 indica que estás registrado en la red doméstica y 5 indica que estás en la red de roaming. Aparte de estos dos números indica que no estás 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 de bucle del código, llamamos a la función personalizada llamada updateSerial() que espera continuamente cualquier entrada del monitor serie y la envía al módulo SIM800L a través del pin D2 (Rx del módulo). También lee continuamente el pin D3 (Tx del módulo) si el módulo SIM800L tiene alguna respuesta.

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ías ver abajo la salida en el monitor serie.

conexion SIM800L GSM serial monitor - Enviar Recibir SMS y llamar con el módulo SIM800L GSM y ArduinoAhora eres libre de enviar cualquier comando a través de un monitor en serie como el que se muestra a continuación, que ofrece más información sobre la conexión de red y el estado de la batería:

  • ATI – Obtener el nombre del módulo y la revisión
  • ¿AT+COPS? – Comprueba que estás conectado a la red, en este caso BSNL
  • AT+COPS=? – Devuelve la lista de operadores presentes en la red.
  • AT+CBC – devolverá el estado de la batería lipo. El segundo número es el % lleno (en este caso es el 93%) y el tercer número es el voltaje actual en mV (en este caso, 3.877 V)

conexion a la red SIM800 GSM - Enviar Recibir SMS y llamar con el módulo SIM800L GSM y Arduino

Código de Arduino para enviar SMS

Pasemos a las cosas interesantes. Programemos nuestro Arduino para que envíe un SMS a cualquier número de teléfono que desee. Antes de probar el boceto, tienes que introducir el número de teléfono. Busca la cadena ZZxxxxxxxxxx y sustituye ZZ por el código del condado y xxxxxxxxxx por el número de teléfono de 10 dígitos.

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L 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 SIM800L
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 código es casi igual al anterior, excepto por el fragmento de código. Una vez que se establece la conexión, enviamos los comandos AT de abajo:

  • AT+CMGF=1 – Selecciona el formato del mensaje SMS como texto. El formato por defecto es Unidad de Datos de Protocolo (PDU)
  • AT+CMGS=+ZZxxxxxxxxxx – Envía un SMS al número de teléfono especificado. El mensaje de texto introducido seguido de un carácter “Ctrl+z” se trata como un SMS. “Ctrl+z” es en realidad un 26º carácter no impreso descrito como “sustituto” en la tabla ASCII. Por lo tanto, necesitamos enviar 26DEC (1AHEX) una vez que 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 se mantiene vacío ya que queremos enviar un SMS sólo una vez. Si deseas enviar un SMS una vez más, sólo tienes que pulsar la tecla RESET en tu Arduino. Y entonces enviará al mensaje al número de teléfono designado.

Código de Arduino para Lectura de SMS

Ahora programemos nuestro Arduino para leer los mensajes entrantes. Este sketch es muy útil cuando se necesita activar una acción cuando se recibe un SMS específico. Por ejemplo, cuando el Arduino recibe un SMS, puedes darle instrucciones para activar o desactivar un relé.

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L 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 SIM800L
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 código es similar al anterior, excepto por el fragmento de código de abajo. Una vez que se establece la conexión, enviamos abajo los comandos AT:

  • AT+CMGF=1 – Selecciona el formato del mensaje SMS como texto. El formato por defecto es Unidad de Datos de Protocolo (PDU)
  • AT+CNMI=1,2,0,0,0 – especifica cómo se deben manejar los mensajes SMS recién llegados. De esta manera, puede indicar al módulo SIM800L que reenvíe los mensajes SMS recién llegados directamente al PC o que los guarde en el almacenamiento de mensajes y luego notifique al PC sobre su ubicación en el almacenamiento de mensajes.

Su respuesta comienza con +CMT: Todos los campos de la respuesta están separados por comas y el primer campo es 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();

Ten en cuenta que esta vez NO hemos mantenido la función de bucle vacía, ya que estamos buscando mensajes SMS recién llegados. Una vez que envíe el SMS al módulo GSM SIM800L, verá la salida en el monitor serial.

Si tu mensaje es lo suficientemente largo como el nuestro, entonces probablemente lo recibirás con algunos caracteres que faltan. Esto no se debe a un código defectuoso. El búfer de recepción de SoftwareSerial se está llenando y descartando caracteres. No estás leyendo lo suficientemente rápido del buffer.

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

En un PC con Windows, ve a C:\Ficheros de programa (x86) -> Arduino -> hardware -> Arduino -> avr -> bibliotecas -> SoftwareSerial (-> src para la nueva versión del IDE de Arduino) Abre SoftwareSerial.h y cambie la línea:

// RX buffer size
#define _SS_MAX_RX_BUFF 64

a

// RX buffer size
#define _SS_MAX_RX_BUFF 256

Guarda el archivo y vuelve a ejecutar el código.

Código de Arduino para hacer una llamada

Ahora programemos a nuestro Arduino para que haga la llamada. Este sketch es muy útil cuando quieres que tu Arduino haga una llamada de SOS/estrés en caso de emergencia como que se exceda la temperatura o alguien entre en tu casa.

Antes de probar el código, tienes que introducir el número de teléfono. Busca la cadena ZZxxxxxxxxxx y sustituye ZZ por el código del condado y xxxxxxxxxx por el número de teléfono de 10 dígitos.

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L 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 SIM800L
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 comandos AT:

  • ATD+ +ZZxxxxxxxxxx; – Marca un número determinado. El modificador de punto y coma (;) al final separa la cadena de marcado en múltiples comandos de marcado. Todos los comandos excepto el último deben terminar con el modificador punto y coma (;).
  • 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();

Código de Arduino para recibir la llamada

Recibir una llamada no requiere ningún código especial, sólo tienes que seguir escuchando el módulo SIM800L. Sin embargo, puede que encuentres este esquema muy útil, cuando necesites desencadenar una acción cuando se reciba una llamada de un número de teléfono específico.

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 2); //SIM800L 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 SIM800L
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
}
}

La llamada entrante suele indicarse con un “ANILLO” en el monitor de serie seguido del número de teléfono y el identificador de llamadas. Para aceptar o colgar una llamada se utilizan los siguientes comandos AT:

ATA – Acepta la llamada entrante.

ATH – Cuelga la llamada. Al colgar la llamada envía NO CARRIER en el monitor serial indicando que la llamada no pudo conectarse.

Esto se mostrara en el monitor serial como una llamada recibida por el módulo SIM800L GSM.

Comprar el módulo SIM800L GSM

AZDelivery Modulo SIM800L GSM GPRS con Antena compatible con Arduino con E-Book incluido!
  • ✔️ El módulo AZDelivery SIM 800L GPRS / GSM tiene un rendimiento de banda cuádruple a 850/900/1800/1900MHz. También se puede conectar a cualquier red GSM global con una SIM 2G.
  • ✔️ Además ofrece conectividad GPRS Class12 Multi-Slot con una velocidad máxima de 85.6kbps (Download / Upload).
  • ✔️ El voltaje de alimentación del módulo es 3.4 V ~ 4.4 V DC (recomendamos 4.1 V).
  • ✔️ Con su pequeño tamaño de 23 mm x 35 mm x 5,6 mm, el práctico módulo se utiliza en innumerables de sus proyectos, incluso si el espacio disponible es limitado.
  • ✔️ ¡Bienvenido a la familia AZDelivery! Aquí encontrará productos de alta calidad para sus proyectos con Arduino y Raspberry Pi. Nos complace ofrecerle una serie de ejemplos de aplicación,...

Cómo Controlar dispositivos electrónicos remotamente vía SMS con Arduino y SIM800L

Última actualización el 2020-10-14 / Enlaces de afiliados / Imágenes de la API para Afiliados

Pin It on Pinterest

Shares