Controlar un LED con módulo SIM800L

Controlar un LED utilizando el módulo SIM800L, a través de una aplicación móvil.

...
Posteado por Caamal el 01-06-2024 a las 11:58
Categoria: Arduino
Realizado por: Caamal Balan Carlos Daniel, Catzin Concha Víctor Alberto, Eduardo Antonio Bermúdez Alejandro

Presentación.

Este proyecto se enfoca en desarrollar una aplicación móvil para controlar el encendido, apagado y estado un LED a través de un módulo SIM800L. La comunicación se realiza de manera eficiente mediante tres botones que la aplicación tiene, siempre y cuando la tarjeta SIM que va insertado dentro del módulo SIM800L tenga acceso a datos móviles, lo que garantiza el éxito de la operación solicitada desde la aplicación, además de ver el estado en la que se encuentra dicho LED una vez realizada la acción.

Funcionamiento.

Insertando una tarjeta SIM en el módulo SIM800L, se puede controlar el encendido y apagado de un LED mediante una aplicación móvil. Al presionar el botón verde en la aplicación, se envía una solicitud al módulo Arduino para encender el LED y mediante otro botón, se puede visualizar si el LED está encendido o apagado. Para apagar el LED, se oprime el botón de color rojo, que envía una solicitud al módulo Arduino para realizar la acción. Mientras ambas acciones se ejecutan, el Arduino envía un mensaje de texto al número de teléfono donde se ha instalado la aplicación para confirmar dichas acciones.

Realización.

Materiales necesarios para el ensamblado del proyecto:

  • 1 Módulo SIM800L.
  • 1 Tarjeta SIM
  • 1 LED
  • 1 Capacitor
  • Cables
  • Protoboard
  • 1 Arduino UNO

El circuito queda de la siguiente manera: 

 

Conexión: 

GSM SIM800L

Arduino Uno

VCC

5V

GND

GND (Capacitor)

GND

GND

TX

10

RX

11

LED +

13

LED -

GND

 

El resultado queda de la siguiente manera:

Programación.

#include <Sim800l.h> //Libreria Sims800L

#include <SoftwareSerial.h>

 

Sim800l Sim800l;

char* text; //Variable que guardara el contenido del mensaje

char* number; //Variable que almacenara el numero

String textSms, numberSms; //Variables del numero y del SMS

uint8_t LED1 = 13; //Conexion del LED en el pin 13

bool error;

void setup()

{

  Serial.begin(9600);

  pinMode(LED1, OUTPUT);

  Sim800l.begin();

  Serial.print("Limpiando SMS antiguos...");

  Sim800l.dateNet();

  Serial.println(" Apagados!");

  Serial.println(" Guardando comandos por SMS...");

}

void loop()

{

  //Lee  el SMS y da el valor de  1

  textSms = Sim800l.readSms(1);

  //Verifica si el SMS recibido es valido

  if (textSms.indexOf("OK") != -1)

  {

    //Verifica si el sms esta vacio

    if (textSms.length() > 7)

    {

      //Nos retorna el numero del que envia el SMS

      numberSms = Sim800l.getNumberSms(1);

      //Muestra el numero del que envia el SMS en la serial

      Serial.println(numberSms);

      //Convierte el sms a minuscula

      textSms.toUpperCase();

      //Verifica si el sms contiene la palabra ON

      if (textSms.indexOf("ON") != -1)

      {

        //Convierte el numero del que envia el SMS a char y luego lo almacena en una variable para usarla luego

        number=numberSms.c_str();

        //Le asigna un contenido a la variable, esto es lo que se mandara al numero

        text= "El led encendio ";

       //Envia un SMS al numero que envio la palabra ON y le manda el mensaje de la variable Text

        Sim800l.sendSms(number,text);

        //Manda en la serial que el LED ha encendido

        Serial.println("Led Encendido");

        digitalWrite(LED1, 1);

      }

      //Si recibe Off apaga el LED

      else if (textSms.indexOf("OFF") != -1)

      {

        //Convierte el numero del que envia el SMS a char y luego lo almacena en una variable para usarla luego

        number=numberSms.c_str();

        //Le asigna un contenido a la variable, esto es lo que se mandara al numero

        text= "El led se apago ";

       //Envia un SMS al numero que envio la palabra ON y le manda el mensaje de la variable Text

        Sim800l.sendSms(number,text);

        //Manda en la serial que el LED ha encendido

        Serial.println("Led apagado");

       digitalWrite(LED1, 0);

      }

      Sim800l.delAllSms();

    }

  }

}

Utilización.

  • Una vez realizadas todas las conexiones necesarias, insertamos la tarjeta SIM (con saldo suficiente para realizar dichas acciones) al móduloSIM800L, conectamos el Arduino a nuestra PC, y esperamos a que se conecte a la red.
  • Sabremos que está conectado a la red cuando el led del módulo SIM800L parpadee en un intervalo de aproximadamente 5 segundos.
  • Descarga la app e instalalo en el siguiente link: https://drive.google.com/drive/folders/1JodiDmStGmFoKvx0zjc4XGJuYpe-IXwi?usp=sharing
  • Ingresamos a nuestra aplicación creada y para enviar el mensaje de texto oprimimos el botón de color verde, unos segundos después el LED encenderá y recibiremos un mensaje de confirmación notificándonos que el LED está encendido, además el botón de estado nos dirá un mensaje “Se envió el mensaje, el led este prendido”.

  • Luego oprimimos el botón de color rojo y unos segundos después el LED se apagará y recibiremos un mensaje que el LED esta apagado, además el botón de estado nos dirá un mensaje “Se envió el mensaje, el led esta prendido”.

  • Para confirmar dichas acciones tambien se envia un mensaje de texto al número donde esta instalado la aplicación. 

???????

  • De esta manera tenemos el correcto funcionamiento de nuestro proyecto. 

Conclusiones.

Carlos: En conclusión, el proyecto de controlar un LED desde una aplicación móvil con módulo SIM800L es interesante. Ya que es un ejemplo práctico de integración entre tecnologías de comunicación móvil con el Internet de las cosas (IoT). Este proyecto muestra cómo se puede utilizar un módulo de comunicación para recibir comandos y controlar dispositivos remotamente, facilitando aplicaciones como la automatización del hogar y sistemas de seguridad.

Víctor: En conclusión, El proyecto de encender un LED a través de una aplicación utilizando un módulo GSM combina la simplicidad de la electrónica básica con la conectividad móvil. Al permitir el control remoto del LED, ofrece una solución práctica y versátil para una variedad de aplicaciones domésticas e industriales. Además, la integración de tecnologías como GSM amplía las posibilidades de control a larga distancia, lo que lo hace ideal para aplicaciones de monitoreo y automatización. Sin embargo, es crucial considerar la seguridad y la privacidad al implementar este tipo de sistema, garantizando que solo los usuarios autorizados puedan acceder al control del LED.

Bermúdez: En conclusión, este proyecto enseña cómo integrar y programar un módulo GSM con Arduino para recibir comandos por SMS y controlar un dispositivo como un LED, proporcionando una base sólida en comunicación móvil, control remoto y programación en Arduino.

Referencias.

  • Enviar Recibir SMS y llamar con el módulo SIM800L GSM y Arduino. (2014a, enero 3). Descubreararduino.com. Recuperado 1 de junio de 2024, de https://descubrearduino.com/sim800l-gsm/

  • Electronics. (2020, 7 febrero). Electronic. Recuperado 1 de junio de 2024, de https://www.taloselectronics.com/blogs/tutoriales/como-mandar-sms-desde-arduino-y-sim800l

Para comentar debes acceder Acceder

Comentarios


No hay comentarios en este post