Explicamos cómo conectar
un módulo GPRS a una placa Arduino UNO para dotarla de conexión a la red
móvil. Este módulo nos permitirá enviar SMS desde Arduino, hacer y
recibir llamadas e incluso conectarnos a Internet. Explicamos todos los
requisitos hardware necesarios para este proyecto hardware de ejemplo.
- Requisitos para enviar SMS y hacer llamadas desde placa Arduino.
- Cómo conectar módulo GPRS a placa Arduino UNO.
- Considereciones importantes a tener en cuenta antes de enviar el programa a Arduino para usar el módulo GPRS.
- Programar Arduino para enviar SMS a móvil.
- Programar Arduino para hacer llamadas a móvil.
- Conclusión sobre el módulo GPRS y Arduino.
- Artículos relacionados.
- Créditos.
Requisitos para enviar SMS y hacer llamadas desde placa Arduino
En este proyecto hardware de ejemplo usaremos un
módulo GPRS específico para Arduino, nos permitirá disponer de un módem
GSM con tarjeta SIM de móvil, por lo que podremos realizar cualquier
operación como si de un módem GSM se tratase (hacer llamadas, recibir
llamadas, enviar SMS, recibir SMS, conectarnos a Internet, etc.) todo
ello con comandos AT (Hayes). En el siguiente artículo explicamos estos comandos más en profundidad y cómo usar un módem GSM:
Lo explicado en el artículo anterior será válido para este, salvando las distancias obvias entre VB.Net y Arduino.
Indicamos a continuación los requisitos hardware para
enviar SMS y hacer llamadas con nuestra placa Arduino de forma autónoma
(sin necesidad de cables ni conexión al PC):
- Módulo GPRS (unos 75 euros) , en nuestro caso hemos adquirido un GPRS Sagem Quadband Module for Arduino:
Para la conexión a la red móvil del módulo GPRS necesitaremos una tarjeta SIM normal (como la de los móviles) activa y disponible para enviar SMS y hacer llamadas.
- Placa Arduino UNO (unos 25 euros) :
- Como siempre, para cualquier proyecto con Arduino necesitaremos disponer de un cable USB de tipo A-B para conectar Arduino con el PC y necesitaremos el IDE de desarrollo y los drivers (si usamos Microsoft Windows 7, en Linux no son necesarios). En el siguiente artículo explicamos los primeros pasos para conectar Arduino con el PC:
Cómo conectar módulo GPRS a placa Arduino UNO
Prepararemos en primer lugar el módulo GPRS que
cuando lo adquirimos incorpora una antena externa que hay que conectar.
Por un lado el conector que va al microchip del módulo:
Conectaremos el chip con la antena al módulo GPRS como se muestra en la imagen:
Insertaremos también una tarjeta SIM activa, a ser
posible sin PIN para evitar tener que enviárselo por comando AT (aunque
se puede hacer):
A continuación conectaremos el módulo GPRS a la placa
Arduino, dicho módulo es específico para Arduino por lo que encajará en
los pines correspondientes sin problema, con un poco de presión:
El módulo GPRS quedará perfectamente anclado y conectado a la placa Arduino:
Todo el hardware conectado (antena externa, módulo GPRS y placa Arduino):
Considereciones importantes a tener en cuenta antes de enviar el programa a Arduino para usar el módulo GPRS
Hay que tener en cuenta que el módulo GPRS tiene "dos posiciones" para la conexión con Arduino:
1. Por un lado hay que indicarle al módulo GPRS cuándo está conectado al PC por el puerto USB (serie emulado), esto se hace colocando dos jumpers que incorpora en la parte superior de la siguiente forma:
2. Para probar el programa de envío de SMS, de llamadas o cualquier otra tarea que hayamos programado con Arduino y el módulo GPRS deberemos desconectarlo del USB del PC y alimentarlo externamente. Además, deberemos cambiar los jumpers mencionados anteriormente a esta nueva posición:Es muy importante tener esto en cuenta, cuando queramos enviar el programa a Arduino, los dos jumpers deben estar como se indica en la imagen anterior, si no es así el Upload (envío) del programa dará error.El error que nos mostrará el IDE de desarrollo de Arduino si no hemos colocado los jumpers correctamente será:avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
Programar Arduino para enviar SMS a móvil
A continuación mostramos el programa para enviar un
SMS desde Arduino usando un módulo GPRS, básicamente usa comandos AT
para realizar el proceso, como si de un módem GSM se tratase:
Verificaremos la sintaxis del programa, como siempre, pulsando en el botón "Verify" del IDE de Arduino, si todo es correcto nos lo indicará con el mensaje "Done compiling":/* * Programa para enviar un SMS usando un módulo GPRS con placa Arduino por AjpdSoft */ int pinLED = 13; int pinActivarGPRS = 2; // pin para activar el módulo GPRS int numeroSMSEnviar = 1; // numero de SMS a enviar int contador = 0; //para solo repetir una vez el loop //procedimiento para activar el módulo GPRS void activarModuloGPRS() { digitalWrite(pinActivarGPRS, HIGH); delay(2000); digitalWrite(pinActivarGPRS, LOW); } void setup() { pinMode(pinLED, OUTPUT); pinMode(pinActivarGPRS, OUTPUT); Serial.begin(19200); //velocidad de conexión con módulo GPRS activarModuloGPRS(); //activar el módulo GPRS delay(20000); //esperamos 20 segundos a que se active el módulo GPRS Serial.println("AT+CMGF=1"); //activamos el modo SMS } void loop() { while (contador < numeroSMSEnviar) { delay(1500); Serial.print("AT+CMGS="); // comando AT para enviar SMS Serial.print(34, BYTE); // enviar caracter " Serial.print("numero_movil"); // numero de movil receptor del SMS Serial.println(34, BYTE); // enviar caracter " delay(1500); Serial.print("Envio SMS desde Arduino AjpdSoft"); //texto del SMS delay(500); Serial.print(0x1A,BYTE); // final del SMS, comando 1A (hex) delay(10000); contador++; } if (contador == numeroSMSEnviar){ Serial.println("AT*PSCPOF"); // desactivar el módulo GPRS contador++; } }
Recordamos que para enviar el programa a Arduino necesitaremos colocar los jumpers del módulo GPRS como indicamos aquí. Una vez colocados los jumpers en su posición correcta pulsaremos en botón "Upload" del IDE de desarrollo de Arduino para enviar el programa, si todo es correcto y el programa ha sido enviado a la memoria Flash de Arduino nos lo indicará con el mensaje "Done uploading":
Para probar el programa y verificar que envía el SMS
correctamente al número de móvil indicado habrá que desconectar Arduino
del puerto USB, cambiar los jumpers como indicamos aquí y alimentar Arduino con un adaptador como mostramos en la imagen:
Una vez alimentado Arduino se iniciará el programa
y, tras unos 20 segundos (el tiempo de espera que hemos programado), nos
llegará el SMS al número de móvil indicado en el programa:
Programar Arduino para hacer llamadas a móvil
Al igual que hemos explicado cómo enviar SMS con Arduino
y el módulo GPRS, mostramos ahora el código para hacer una llamada
perdida desde Arduino a un móvil:
/* * Programa para realizar una llamada perdida a un movil usando un modulo GPRS con placa Arduino por AjpdSoft */ int pinLED = 13; int pinActivarGPRS = 2; // pin para activar el módulo GPRS int timesToSend = 1; // numero de llamadas a realizar int contador = 0; //para solo repetir una vez el loop void switchModule() { digitalWrite(pinActivarGPRS, HIGH); delay(2000); digitalWrite(pinActivarGPRS, LOW); } void setup() { pinMode(pinLED, OUTPUT); pinMode(pinActivarGPRS, OUTPUT); Serial.begin(19200); //velocidad de conexión con módulo GPRS switchModule(); //activamos el modo SMS delay(20000); //esperamos 20 segundos a que se active el módulo GPRS Serial.println("AT+CMGF=1"); // set the SMS mode to text } void loop() { while (contador < timesToSend) { delay(1500); Serial.println("ATD686073762;"); //numero al que realizaremos la llamada delay(12000); Serial.println("ATH"); //colgaremos y finalizaremos la llamada delay(5000); contador++; } if (contador == timesToSend) { Serial.println("AT*PSCPOF"); // desactivar el módulo GPRS contador++; } }
Realizando las mismas operaciones que hemos indicado para enviar el programa y para probarlo en el caso del SMS, si todo es correcto, Arduino realizará una llamada perdida al número de móvil indicado:
Conclusión sobre el módulo GPRS y Arduino
Con estas opciones probadas de envío de SMS y llamada
perdida y todas las posibles gracias al módem GSM (módulo GPRS) y los
comandos AT, podremos dotar a nuestro proyecto hardware con Arduino de
una potente herramienta para numerosas funcionalidades: por ejemplo, si
desarrollamos una estación meteorológica podremos avisar por SMS a uno o
varios números de móvil cuando se den unas determinadas condiciones
(temperatura más baja de un valor preestablecido, etc.). Podremos
conectarnos, desde Arduino, a cualquier página web y enviar parámetros,
podremos incluso hacer una llamada perdida a un móvil cuando se produzca
un determinado evento (así ahorramos el coste del SMS), podremos
navegar a una URL y obtener determinado código HTML.
Como hemos demostrado se trata de un módulo muy
sencillo de conectar y de programar. De hecho hemos desarrollado este
proyecto hardware de uso de módulo GPRS sin necesidad de conocimientos
en electrónica ni sistemas.
Sin duda Arduino se está convirtiendo en una
herramienta muy útil, al alcance de cualquiera por su bajo precio y con
una infinidad de funcionalidades, con la gran ventaja de acercar el
hardware conectado al PC para usuarios sin apenas conocimientos en
electrónica y sistemas.
Artículos relacionados
- Primer proyecto hardware con Arduino, encender un LED.
- Obtener temperatura y humedad con Arduino.
- Obtener temperatura con sensor SEN118A2B de cabeza de acero y Arduino.
- Tipos de memoria en el microcontrolador de Arduino, Flash, SRAM y EEPROM.
- Sensor de temperatura con Visual Studio y Delphi.
- AjpdSoft Sensor de Movimiento con WebCam - Código fuente Delphi.
- Realizar un alimentador eléctrico para un Asus EEE PC.
- Acceso a aplicaciones y al equipo con huella dactilar.
- Cómo enviar SMS desde un PC usando un módem GSM con Visual Basic .Net.
- Uno de nuestros miembros arreglando un portátil.
- AjpdSoft Puerto Paralelo Código Fuente Delphi.
- AjpdSoft Cálculo parámetros módulos fotovoltaicos.
- AjpdSoft Cálculo de los parámetros de radiación.
- Enviar y recibir faxes desde un equipo con Windows XP y un módem.
- Cómo conectar dos equipos en red por el puerto paralelo con Windows 98 y XP.
- Los pitidos (beep codes) del PC, su significado en caso de error de hardware.
- Cómo actualizar el firmware del teléfono móvil Nokia N96.
- Cómo actualizar el firmware de algunos dispositivos: routers, BIOS, etc.
- AjpdSoft Sensor de Movimiento con WebCam.
- Reparar equipo portátil averiado: al mover el monitor se apaga.
- Instalar impresoras en Active Directory, auditar impresoras.
- Mi primera aplicación Android con Eclipse en Linux, instalar Eclipse Ubuntu.
- Instalar Microsoft Windows 7 Ultimate virtualizado en VMware Server 2.0.1.
- Trucos, código fuente C++.
- Definición USB Enciclopedia AjpdSoft.
Créditos
Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft, con la inestimable colaboración de Antonio RN de RS.
No hay comentarios:
Publicar un comentario