Controlar Dispositivos Electrónicos a Través De Mensajes De Texto - SIM800L Y Arduino

Introduction: Controlar Dispositivos Electrónicos a Través De Mensajes De Texto - SIM800L Y Arduino

About: Hago locuras mezcladas con ciencia y tecnologia.

El día de hoy vamos a construir un pequeño proyecto que nos servirá para controlar cualquier tipo de dispositivo electrónico, desde lamparas hasta televisores, a través de mensajes de texto. Todo esto lo vamos a realizar con algunos materiales y componentes electrónicos que necesitaremos, entre ellos el modulo SIM800L, que sera el principal protagonista de este tutorial. Ahora, comencemos!

Step 1: Vídeo Explicativo En Youtube

Si en algún momento del tutorial llegas a tener un problema o queres buscar una explicación hablada, entra al vídeo explicativo que hice para mi canal de Youtube. ¡Ahora si vamos a lo bueno!

Step 2: Materiales

  • Arduino UNO
  • Un módulo SIM800L
  • Una batería de 12v
  • Un step down o reductor de voltaje
  • Algunos cables
  • Un tester o multímetro
  • Una tarjeta SIM

Links de utilidad:

Step 3: Conexiones

Ahora comencemos con la explicación del dispositivo que vamos a hacer. Primero que nada el módulo SIM800L es un módulo GSM/GPRS que trabaja con frecuencias que van desde de 850 a 1900 MHz. Este módulo funciona como un teléfono celular y nos permitirá añadir voz, mensajes de texto y conexión a internet a nuestro proyecto, todo esto concentrado en un tamaño ultra compacto no mucho mayor que una moneda.

Obviamente para hacer todo esto necesitaremos de una tarjeta SIM, te recomiendo que le cargues algo de crédito ya que es necesario si queremos que nos envíe algo.

Por otro lado el módulo Step-Down nos va a servir como dispositivo reductor de voltaje, ya que para alimentar el módulo es recomendable hacerlo desde una fuente externa a Arduino y por eso usaremos la batería de 9 volts.

Todo esto lo utilizaremos para realizar un dispositivo que cuando reciba una instrucción específica a través de un mensaje de texto este realice otra acción, como por ejemplo prender una lámpara o activar una alarma.

Ahora que ya sabes a grandes rasgos cómo funciona el módulo con el que vamos a trabajar, ya podemos empezar con las conexiones.

Bien para empezar a hacer las conexiones vamos a comenzar conectando el módulo y el Arduino entre si, conectamos el pin digital 8 del Arduino al RX del módulo y el pin digital 9 al TX, estas dos conexiones nos servirán para realizar la comunicación posteriormente. Ahora vamos a darle energía al módulo, esta es una parte muy delicada ya que si le damos demasiado voltaje podríamos quemarlo por eso necesitaremos el step down. Vamos a tomar la batería y le conectamos los pines de entrada del Step-Down, en la salida del mismo conectamos el tester para ver que voltaje hay de salida.

Según la documentación oficial el módulo debe recibir un voltaje entre 3.3 y 4.4 volts, además de un amperaje continuo de 2 amperes.

Podes encontrar la documentación completa al comienzo de esta entrada. Luego de unas pruebas recomiendo que ajustes el step down para que la salida sea de 4.3V, de esta manera podríamos alimentar el módulo correctamente. Ahora conectemos el modulo a la fuente de alimentación.

Step 4: Programación

Muy bien, si todo salio bien ya tenes tu módulo conectado correctamente y ya podemos empezar con el código en el IDE de Arduino!

Para comenzar a programar incluimos la librería SoftwareSerial, la cual nos servirá para realizar una segunda comunicación serial entre nuestro Arduino y el módulo SIM800L, esto lo utilizaremos para luego poder pasar los datos de uno a otro y poder visualizarlos en el monitor serial.

Seguido de esto crearemos el objeto SIM800L y le pasaremos como parámetro el número de los pines TX y RX que elegimos, en nuestro caso los digitales 8 y 9. Luego en la función de setup iniciaremos las dos comunicaciones seriales e imprimiremos dos comandos AT que necesitaremos para que el módulo trabaje correctamente.

Ahora que ya terminamos de configurar nuestro código toca programar el software que necesitamos. En nuestro caso, y para este ejemplo, realizaremos un programa que al recibir la palabra “ON” por mensaje de texto encienda un led en el pin digital número 13, y si recibe cualquier otra cosa que este se apague.

Bien, comenzaremos creando un if que utilizaremos para comprobar que la segunda comunicación serial esté disponible, luego dentro de ese if crearemos una variable de tipo String y le asignaremos el valor que lea del mensaje entrante. De esta manera la variable valor ya tendrá guardado el sms que llego al modulo.

Más abajo crearemos otro if para comprobar si el mensaje tiene la palabra “ON” ,y si esto es así que prenda el led que está conectado en el pin 13. Además si el mensaje no tiene la palabra “ON” apagará el LED. Sumado a esto agregaremos un par de mensajes para que escriba en el monitor serial en forma de mensajes de confirmacion.

De esta manera ya tendríamos el código terminado, si programamos todo bien al ejecutarlo, y al abrir el monitor serial, ya podríamos utilizarlo.

ElTallerDeTD.ino

#include<SoftwareSerial.h>//Incluimos la libreria Software Serial
//Creado por youtube/ElTallerDeTD
//eltallerdetd@gmail.com
SoftwareSerial SIM800L(8,9); //Instanciamos el objeto SIM800L y le pasamos los parametros de los pines TX y RX
String valor; //Declaramos la variable de tipo String valor.
voidsetup() {
pinMode(13, OUTPUT); //Declarar el pin 13 como salida.
Serial.begin(9600); //Inicializamos la primera comunicacion Serial.
SIM800L.begin(9600); //Inicializamos la segunda comunicacion Serial.
SIM800L.println("AT+CMGF=1"); //Vamos utilizar los SMS.
delay(100); //Delay de 0.1 sec
SIM800L.println("AT+CNMI=1,2,0,0,0"); //Configurar el SIM800L p/ que muestre msm por com. serie.
}
voidloop() {
//Lograr que nos muestre lo que nos llega de mensaje por el monitor serial.
if(SIM800L.available()){
valor = SIM800L.readString(); //Guardar en la var valor el sms que recibe el Arduino
//Serial.println("Nuevo SMS: "+ valor); //Imprime ese SMS en el monitor Serial
}
if(valor.indexOf("ON")>=0){ //Si la var valor tiene la palabra ON hace esto:
digitalWrite(13, HIGH); //Se enciende el pin 13.
Serial.println("El Led se encendio"); //Immprime el mensaje
delay(15000);
}else{
digitalWrite(13, LOW); //Se apaga el pin 13.
Serial.println("El Led se apago"); //Immprime el mensaje
delay(15000);
}
}
view rawElTallerDeTD.ino hosted with ❤ by GitHub

Step 5: ¡Hora De Pruebas!

Ahora que ya tenemos todo preparado llega la hora de probar nuestro proyecto, enviamos un mensaje de texto con la palabra "ON" hacía el número que tiene asignado el módulo y esperamos, si luego de unos segundos el led se prende y en el monitor serial aparece la frase “El Led se encendió” , ¡Felicitaciones! ya tienes el dispositivo de automatización por mensaje de texto funcionando!

Si en cambio enviamos otra cosa el led se debería apagar y el monitor serial nos mostrará otro mensaje.

Step 6: ¡Gracias!

Este proyecto es solo un inicio, las cosas que puedes crear con este modulo son demasiadas para escribirlas aca :D .

Acordate que si tenes alguna duda o problema no dudes en dejar un comentario, y tambien pasar pormi canal de Youtube donde encontraras mas informacion y mucho mas en forma de video.

Muchas gracias por ver el vídeo, y acordate, ¡crear es maravilloso!

Contacto: eltallerdetd@gmail.com

No olvides seguirme en las redes sociales como @eltallerdetd

Visita mi otro Instructable > Radar Gráfico Con Arduino Y Processing

Share

    Recommendations

    • Metalworking Contest

      Metalworking Contest
    • Water Contest

      Water Contest
    • Tiny Home Contest

      Tiny Home Contest

    Discussions