Tutorial Cómo Configurar el SIM800L en Modo Sleep y Controlar su Encendido y Apagado con Arduino

El módulo SIM800L es una herramienta increíblemente versátil para proyectos que requieren comunicación GSM/GPRS. Sin embargo, para optimizar el consumo energético en aplicaciones de larga duración o dispositivos alimentados por batería, es esencial aprovechar el modo Sleep que ofrece este módulo. Aprende a configurar el SIM800L en modo Sleep y cómo controlar su encendido y apagado de manera eficiente utilizando un Arduino y comandos AT como el AT+CSCLK=1. Además, se utiliza un divisor de tensión para poder utilizar un pin de 5V de Arduino sin comprometer la integridad del módulo, ya que el SIM800L opera con voltajes más bajos.

✅ Tutorial SIM800L Sleep Mode con Arduino


¿Qué es el Modo Sleep en el SIM800L?
El modo Sleep es una función integrada en el módulo SIM800L que permite reducir significativamente el consumo de energía cuando no se está utilizando activamente. Esto es especialmente útil en aplicaciones como dispositivos IoT, estaciones remotas o sistemas de monitoreo, donde la duración de la batería es un factor clave.

Cuando el SIM800L entra en modo Sleep, el consumo de energía se reduce a unos pocos miliamperios, preservando la energía hasta que el módulo reciba un comando o señal que lo reactive.


Materiales Necesarios
  • Un módulo SIM800L.
  • Una placa Arduino (UNO, Nano o similar).
  • Resistencias para el divisor de tensión (ej. 10kΩ y 20kΩ).
  • Fuente de alimentación estable para el SIM800L (idealmente 3.7V-4.2V).
  • Cables de conexión y una protoboard.

✅ Solución a Problema con la SIM800L Cuando No Conecta


Paso 1: Conexión del SIM800L al Arduino El módulo SIM800L requiere un voltaje de operación de 3.7V-4.2V, lo que significa que no puede conectarse directamente a un pin de 5V de Arduino. Por ello, es fundamental utilizar un divisor de tensión para reducir el voltaje de las señales del Arduino. 1. Fuente de alimentación: Conecta una batería LiPo de 3.7V o utiliza un regulador de voltaje para alimentar el SIM800L. 2. Divisor de tensión: - Conecta una resistencia de 10kΩ entre el pin TX del Arduino y el pin RX del SIM800L. - Conecta una resistencia de 20kΩ entre el pin RX del SIM800L y tierra. - Este divisor reducirá el voltaje de 5V del Arduino a un nivel seguro para el módulo. 3. Conexiones básicas: - RX del SIM800L → Pin digital del Arduino (usando divisor de tensión). - TX del SIM800L → Pin RX del Arduino. - GND del SIM800L → GND del Arduino. - Alimentación del SIM800L → Fuente externa de 3.7V. Paso 2: Configuración del Modo Sleep El comando AT AT+CSCLK=1 activa el modo Sleep en el SIM800L. Este comando instruye al módulo para que entre en un estado de bajo consumo cuando no esté en uso. 1. Código básico en Arduino: #include <SoftwareSerial.h> SoftwareSerial SIM800L(10, 11); // RX, TX void setup() { Serial.begin(9600); SIM800L.begin(9600); // Enviar comando para activar modo Sleep SIM800L.println("AT+CSCLK=1"); delay(100); Serial.println("Modo Sleep activado."); } void loop() { // Mantener la comunicación activa si es necesario } 2. Prueba del modo Sleep: - Una vez cargado el código, verifica el funcionamiento observando el consumo de energía del módulo. Debería disminuir considerablemente. - El módulo puede despertarse automáticamente al recibir un comando AT o mediante un cambio en el pin de control. Paso 3: Encendido y Apagado Controlado desde Arduino Para encender o apagar el módulo SIM800L desde un pin digital del Arduino, puedes utilizar un transistor MOSFET o un relé para controlar la alimentación del módulo. Implementación con un Transistor MOSFET 1. Conecta el pin digital del Arduino a la puerta del transistor MOSFET. 2. La fuente del transistor se conecta a GND y el drenaje a la línea de alimentación del módulo. 3. Usa una resistencia pull-down de 10kΩ entre la puerta y tierra para evitar activaciones no deseadas.
Código para Control ON/OFF #define SIM_POWER_PIN 7 void setup() { pinMode(SIM_POWER_PIN, OUTPUT); digitalWrite(SIM_POWER_PIN, LOW); // Inicialmente apagado } void loop() { // Encender el módulo digitalWrite(SIM_POWER_PIN, HIGH); delay(5000); // Encender por 5 segundos // Apagar el módulo digitalWrite(SIM_POWER_PIN, LOW); delay(5000); // Apagar por 5 segundos } Consejos para un Funcionamiento Óptimo - Fuente de alimentación adecuada: Asegúrate de usar una fuente estable, ya que picos de voltaje pueden dañar el módulo. - Uso de condensadores: Agregar condensadores entre los pines de alimentación puede ayudar a estabilizar la energía y evitar reinicios inesperados. - Control térmico: Si el módulo se calienta demasiado, verifica las conexiones y reduce el tiempo de uso intensivo. Aplicaciones del Modo Sleep en Proyectos IoT
  • Sistemas de monitoreo remoto con baterías.
  • Dispositivos de rastreo GPS.
  • Automatización del hogar con comunicación GSM.

✅Conexiones SIM800L (LM2596) y Arduino





✔️Opción 2 para alimentar Arduino y SIM800L



✔️ Conexión para medir corriente en modo Sleep de SIM800L con Arduino




Código Arduino para controlar el modulo SIM800L en modo Sleep y comunicación Serial entre SIM800L y Arduino IDE:

#include <SoftwareSerial.h> SoftwareSerial SIM800L(7, 8); //RX || TX void setup() { Serial.begin(9600); //Establecemos la comunicación serial del monitor arduino SIM800L.begin(9600); //Establecemos la comunicación serial del SIM900 pinMode(9,OUTPUT); digitalWrite(9,LOW); delay(10000); SIM800L.println("AT+CSCLK=1"); delay(1000); showDataSerial(); } void loop() { //ON-OFF SIM800L***** Serial.println("SIM800L [OFF]"); digitalWrite(9,HIGH); delay(5000); digitalWrite(9,LOW); Serial.println("SIM800L [ON]"); delay(100); SIM800L.println("AT"); showDataSerial(); delay(1000); delay(5000); } void showDataSerial() { while(SIM800L.available()!=0) Serial.write(SIM800L.read()); }


Datasheet SIM800L: https://img.filipeflop.com/files/download/Datasheet_SIM800L.pdf


✔️ Tutorial Error SIM800L AT+CMGS ERROR Al Querer ENVIAR SMS ⚡


AT+CMGS ERROR en SIM800L cuando se quiere enviar SMS (Mensaje de Texto) con los comandos AT desde un Arduino. AT+CMGF=1 AT+CNMI=2,2,0,0,0 AT+CMGS=\"##########\" (char)26

✔️Te puede interesar (Actualizar Firmware SIM900): https://alex7tutoriales.blogspot.com/2021/06/actualizar-firmware-sim900.html


Al implementar este modo, no solo prolongas la duración de la batería, sino que también garantizas la eficiencia energética del proyecto. Configurar el modo Sleep en el SIM800L y controlar su encendido y apagado con Arduino es una forma eficaz de optimizar el consumo de energía en proyectos de comunicación GSM. Implementar estas funciones es un proceso sencillo y seguro que asegura la longevidad de tus dispositivos y la funcionalidad del sistema.

Como siempre, espero que estos videos e información les sea muy útil, no olvides suscribirte a mi canal en YouTube. Saludos 😎

Alex7 Tutoriales

Tutoriales que en algún momento te pueden ser útiles.... Suscribete!

Publicar un comentario

Artículo Anterior Artículo Siguiente