#20 GPRSBee SMS, CALL y TCP

Introducción

Lo que se realiza en los ejemplos, es medir constantemente la temperatura y humedad por medio del sensor DHT11 y se coloca un punto límite para los dos parámetros, en el caso de exceder uno de los dos, se ejecutara una acción dependiendo del ejemplo.

 

    Para el ejemplo GSM_SMS, se enviara un mensaje de texto indicando que se sobrepasó la temperatura o humedad. En el ejemplo GSM_CALL, se realizara una llamada al número de emergencia y para el ejemplo GSM_TCP, se utilizara una plataforma IoT llamada ThingSpeak, la cual podemos subir los datos en tiempo real y se puede observar por medio de una gráfica, también se tiene acceso al registro de todos los datos recibidos del sensor, en nuestro caso, se tendrán dos gráficas, una para la temperatura y la segunda para la humedad.

 

   General Packet Radio Service (GPRS), fue creado en la década de los años 1980. Es una extensión del “Sistema Global para comunicaciones Móviles” (Global System for Mobile Communications o GSM) para la transmisión de datos mediante conmutación de paquetes.

 

     Con GPRS se pueden utilizar servicios como Wireless Application Protocol (WAP), servicio de mensajes cortos (SMS), Multimedia Messaging System (MMS), Internet y para los servicios de comunicación, como el correo electrónico y la World Wide Web (WWW). Para fijar una conexión de GPRS para un módem inalámbrico, un usuario debe especificar un APN (Nombre de punto de Acceso), opcionalmente un nombre y contraseña de usuario, y muy raramente una dirección IP, todo proporcionado por el operador de red. La transferencia de datos de GPRS se cobra por volumen de información transmitida (en kilo o megabytes).

 

   En este tutorial, usaremos la GPRSBee UFL fabricada por MCI electronics, que usa un módulo M66, el cual se configurara de tres modos:

  1) GSM SMS (Mensajes de texto)

  2) GSM CALL (Llamadas)

  3) GSM TCP (Transmisión de datos plataforma IoT)

Esta tarjeta se maneja por medio de comandos AT, los cuales se encargan de enviar órdenes al módulo y la ventaja de ellos es que siempre se obtiene una respuesta. Abajo en el área de descargas, encontraras el archivo de los comandos AT para el módulo M66.

Para estos 3 ejemplos se trabajó con los mismos componentes, utilizando el mismo montaje, el cual consiste en conectar una XBee Shield a la PICARO, para poder conectar nuestro módulo GPRSBee, también se conecta el sensor de temperatura y humedad DHT11 y la SIM card utilizada en el módulo GPRSBee es de la compañía Entel, se colocó una antena al módulo GPRSBee para una mejor transmisión de datos.

La plataforma software ThingSpeak, es de la categoría de Open Source, para este tipo de proyecto es sin duda uno de los mejores candidatos tanto a nivel económico como a nivel de documentación. Otro punto a favor es su interfaz amigable, y de fácil configuración. Solo debes acceder a la plataforma IoT ThingSpeak, allí tendrás la información necesaria de como crear y configurar tu cuenta.

Pasos a seguir:

 

#1 Armar el circuito según la imagen

#2 Abrir el IDE de Arduino y conectar la tarjeta PICARO al computador

#3 Seleccionar el tipo de tarjeta como Arduino Uno

#4 Elegir el puerto serial en que se encuentra conectada la tarjeta PICARO

#5 Copiar el código de ejemplo al IDE, compilarlo y subirlo

Listado de componentes :

Descargas:

Código:

En estos programas se hará uso de la librería DHT.h, que nos facilita la recepción de datos del sensor, de igual manera se utilizara la librería SoftwareSerial.h, que la hemos usado anteriormente, y lo que hace es colocar otros pines como seriales. Debes tener en cuenta que para activar el funcionamiento del módulo GPRSBee, es necesario mandar un pulso alto y luego de tres segundos un pulso bajo, esto se hace en los tres códigos.

   GSM CALL

Este código se basa, en la recepción de valores análogos por medio del pin A5, donde a través de la librería DHT.h podemos tomar la temperatura y humedad, se hace uso de la función millis(), para verificar que se reciben datos correctos del sensor, chequea que se están recibiendo números y luego los muestra en el monitor serial, en caso de no ser números envía un mensaje de “Fallo al leer el sensor DHT”. Seguido a estó compara lo que se está recibiendo con el valor que nosotros deseamos, en este caso la humedad no puede ser mayor a 40 y la temperatura no puede superar 30, en caso de sobre pasar estos límites durante un tiempo de 10 segundos, se activara una alerta que consiste en usar el comando ATD+numero, la cual realizara una llamada y luego envía el comando ATH para finalizar la llamada, mientras se mantenga en una temperatura superior al límite se estará activando la llamada constantemente.

   GSM SMS

Aquí podemos observar que se usa la misma librería DHT.h para obtener la temperatura y humedad, en este ejemplo es necesario enviar el comando AT+CMGF=1 en el void setup(), para configurar el módulo GPRSBee como modo de texto y de esta manera permitir el envió de mensaje de texto. De igual manera en el void loop() se comparan la temperatura y humedad con los valores que colocamos como set point, en el caso de sobrepasar los valores deseados, se activara una alerta de temperatura o humedad.

En las funciones Alerta_Temp() y Alerta_Hum() hay que enviar el comando AT para configurarlo como modo texto, seguido por el comando AT+CMGS= “Numero”, indicando el numero al que se enviara el mensaje, luego se envía el texto y el valor de lo que se está leyendo del sensor, seguido por el carácter para finalizar el mensaje que es Ctrl_z en hexadecimal.

 GPRS_TCP

Para este ejemplo es necesario configurar el GPRSBee con la función llamada configuracionGPRSBee(), donde se verifica el funcionamiento del módulo, habilita que la respuesta del módulo sea detallada, configura que el modo de transferencia sea TCP/IP, selecciona la APN de la compañía de la SIM que estas usando, inicia el modo TCP/IP, activa el GPRS e indica que la dirección del servidor remoto es un nombre de dominio.

En las funciones SendhumGPRSBee() y SendtempGPRSBee() inicia la conexión TCP con un dominio y en un puerto especifico, en este caso el dominio es api.thingspeak.com que es la plataforma a donde estamos subiendo los datos y por el puerto 80, seguidamente envía el comando AT para enviar datos y envía el mensaje GET /update?key=GPMAE3VSQ60KKKYT&field2= , esta es la sintaxis que le sigue al dominio para que se ubique en nuestro usuario y en el campo especifico , como se ve en este ejemplo dice al final field2 , que es el campo de humedad, después del signo =, se coloca el valor que recibimos del sensor y por último se envía el char 26 que es el carácter para finalizar el mensaje. Es el mismo procedimiento para las dos funciones, solo que en la sintaxis que se envía como mensaje cambia al final, en SendhumGPRSBee() es field2 y se envía el valor de humedad y en SendtempGPRSBee() es field1 y se envía el valor de temperatura. Estos Field o campos los configuras en la página de ThingSpeak.

Demostración

Acá tenemos 3 vídeos donde podemos observar el funcionamiento de cada modo de trabajo con la GPRSBee. Se puede visualizar tanto el hardware como el monitor serie y de esta manera reflejar lo que esta pasando en en tiempo real.

¿En busca del Kit PICARO?

Con el PICARO Starter Kit podrás realizar estos ejemplos ¡y mucho más!
Producto Chileno. Encuéntralo en MCI Electronics.

Contacto

Direccion Luis Thayer Ojeda 0115 Of. 1104,

(Piso 11) Providencia, Santiago, Chile.

Phone: +56 2 2333 9579

Horario Lunes a Viernes de 8:30 a 18:00 horas. 

Nosotros

En MCI Electronics, estamos aquí para mantener la industria en movimiento. Nuestro objetivo es difundir y hacer accesible el uso de la electrónica a todo aquel que tenga el interés. Para ello nos esforzamos para traer los mejores componentes y módulos de manera que puedas aprender desarrollando tus propios proyectos.

Somos tu aliado en electrónica.

Suscríbete a nuestro boletín