Controlar un LED con módulo SIM800L
Controlar un LED utilizando el módulo SIM800L, a través de una aplicación móvil.
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