Está en la página 1de 8

Controlar dispositivos electrónicos a

través de mensajes de texto – SIM800L


y Arduino

En este nuevo tutorial de El Taller De TD realizaremos un


pequeño proyecto que nos permitirá controlar cualquier
dispositivo electrónico a través de mensajes de texto, todo esto
utilizando el modulo SIM800L y Arduino.

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!

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


Recursos Extra:
 Documentación e información sobre el modulo SIM800L.

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.

RELACIONADO – Radar gráfico con Arduino y Processing


Para esto sacaremos un cable del positivo del Step Down y lo llevaremos al pin VCC del módulo, y con respecto al
negativo sacaremos un cable del puerto de este tipo del módulo Step down y lo conectaremos con el GND del
módulo y también con el GND de Arduino. Puede que esta explicación haya sonado confusa, por eso te dejo todos
los diagramas del circuito aca:

Cuando coloquemos la SIM en el modulo tendríamos que notar que luego de unos minutos este logró obtener señal,
de esto nos damos cuenta cuando el led indicador del SIM800L comienza a titilar cada aproximadamente 5
segundos, si no es así es por que el modulo no logro conseguir señal todavía, aunque si el problema persiste te invito
a dejar un comentario en esta entrada para que te ayudemos a solucionarlo.
Si llegas a tener alguna duda en esta parte te recomiendo que veas el tutorial de vídeo, ya que si
alimentas mal el modulo podrías daniarlo completamente.

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.

Puedes copiar y utilizar el código de ejemplo desde acá:

#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.
void setup() {
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.
}
void loop() {
//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

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.

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

¡Gracias!

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

Acordate que si tenes alguna duda o problema no dudes en dejar un comentario, y tambien pasar por mi 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

====================== ======================= ====================

#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.
void setup() {
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.
}
void loop() {
//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);

}
=============== ======================= ==============

También podría gustarte