Está en la página 1de 13

Enviar Recibir SMS y llamar

con el módulo SIM800L GSM y


Arduino
POR REDACCIÓN · PUBLICADA · ACTUALIZADO

Cómo funciona el módulo SIM800L


GSM y Arduino
Tabla de Contenidos

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.

5pcs SIM800L GPRS gsm Module PCB Antenna SIM Board Quad Band
【SIM800L】 Chip: SIM800L; Voltaje: 3.7-4.2V; 【COMPATABILIDAD】 China Mobile, China
Unicom y red de banda cuá druple global
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.
La 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.
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
Apagar.
Modo de descanso…
Preparado
GSM850
EGSM900
Llama a
DCS1800
PCS1900
GPRS
Ráfaga de transmisión

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.

Con
vertidor 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.

Debes 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:

 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.

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"); //

También podría gustarte