GPRS / GSM
GPRS (General Packet Radio Service) es un servicio de datos móviles que se usa para transmitir datos por redes celulares (2G), con una velocidad de transferencia moderada, entre 56 y 114 kbps. GPRS se usa mucho en aplicaciones que necesitan una transmisión de datos continua y de poco ancho de banda, como dispositivos IoT, internet móvil y sistemas de telemetría.
GSM (Global System for Mobile Communications) es un estándar de redes móviles muy extendido que permite llamadas de voz, SMS y servicios de datos básicos en redes 2G.
En entornos industriales, GPRS y GSM permiten que los PLC (controladores lógicos programables) se comuniquen a distancia, enviando datos y recibiendo comandos por redes celulares. Esta conectividad es clave para monitorizar y controlar sistemas en ubicaciones sin infraestructura cableada.
GPRS/GSM es una comunicación opcional. Solo pueden usarla los PLC M-Duino y Ardbox con la placa de comunicación adicional.
Hardware
Los PLC de las familias M-Duino y Ardbox con esta comunicación opcional incorporan un módulo GPRS SIM800L, un módulo GSM/GPRS compacto muy usado en aplicaciones IoT (Internet de las cosas) para dotar de comunicación celular a todo tipo de dispositivos. Admite GSM/GPRS cuatribanda, por lo que puede funcionar en todo el mundo. Este módulo GPRS se comunica con el Arduino mediante un puerto serie y un pin RST.
Ubicación de la ranura SIM
Para usar GPRS necesitas una tarjeta microSIM con un plan de datos GPRS. La ranura de la tarjeta SIM está en la parte superior del equipo, como muestra la imagen:

Interruptores DIP
Localiza los interruptores situados en la zona izquierda del PLC y comprueba que están en la posición correcta (por defecto, ya vienen configurados para GPRS):
- Interruptor 1 (superior) en OFF para habilitar GPRS.
- Interruptor 2 (superior) en OFF para habilitar GPRS.
- Interruptor 3 (inferior) en OFF para habilitar GPRS RST.
Localiza los interruptores situados en la zona izquierda del PLC y comprueba que están en la posición correcta (por defecto, ya vienen configurados para GPRS):
- Interruptor 2 en OFF para habilitar GPRS RST.

Localiza los interruptores situados en la zona derecha del PLC y comprueba que están en la posición correcta (por defecto, ya vienen configurados para GPRS):
- Interruptor 4 (superior) en OFF para habilitar GPRS RST.

Recuerda alimentar correctamente el PLC con una fuente de alimentación de 12-24V.
Software
El módulo GPRS se usa con la librería GPRS incluida en nuestro paquete de placas. Pero antes hay que seleccionar la placa correcta:
- En Arduino IDE, selecciona la placa "M-Duino GPRS Family", "Ardbox Analog GPRS Family" o "Ardbox Relay GPRS Family", según el PLC.
- En PlatformIO, añade "_gprs" a tu placa en el archivo platformio.ini . Por ejemplo: "mduinoplc_21+_gprs" o "ardbox_relay_hfplus_rs485_gprs".
El paquete de placas de Industrial Shields incluye una librería para usar el módulo GPRS: la librería GPRS. Para usarla, hay que incluir su cabecera en el programa, así: #include <GPRS.h>
La librería incluye dos programas de ejemplo que encontrarás en Arduino IDE: Files > Examples > GPRS. La siguiente sección explica cómo funcionan y cómo usarlos.
Para probar el ejemplo de servidor, sigue estas instrucciones:
- Abre el código desde File > Examples > GPRS > Server en Arduino IDE.
- Define los parámetros de tu tarjeta SIM (PIN, APN,
USERNAME, PASSWORD). Dependen del operador de la tarjeta; puedes
encontrarlos en Internet o contactar directamente con el operador si no
los tienes.
Este programa es un ejemplo sencillo de servidor.
- En el bloque setup, comprueba si se necesita un PIN y, en ese caso, verifica que sea correcto y desbloquea la SIM.
- En el bloque loop, el programa ejecuta cada 3 segundos lo siguiente: comprueba si NetworkStatus es 1 (Registered(home)) o 5 (Registered(roaming)); si es uno de ellos, habilita GPRS (si aún no lo está) y, si hay un cliente disponible, es decir, conectado al servidor, escribe en el puerto serie el mensaje que ha enviado el cliente.
Para probar el ejemplo de cliente, sigue estas instrucciones:
- Abre el código desde File > Examples > GPRS > HttpClient en Arduino IDE.
- Define los parámetros de tu tarjeta SIM (PIN, APN,
USERNAME, PASSWORD). Dependen del operador de la tarjeta; puedes
encontrarlos en Internet o contactar directamente con el operador si no
los tienes.
Este programa es un ejemplo sencillo de cliente HTTP.
- En el bloque setup, comprueba si se necesita un PIN y, en ese caso, verifica que sea correcto y desbloquea la SIM.
- En el bloque loop, el programa ejecuta cada 2 segundos lo siguiente: comprueba si NetworkStatus es 1 (Registered(home)) o 5 (Registered(roaming)); si es uno de ellos, comprueba GPRSstatus y, si es 1 (GPRS connected), comprueba si el cliente está conectado y envía algunos mensajes al servidor. Después, si el cliente está disponible, el programa escribe los mensajes anteriores en el puerto serie para poder revisarlos.
No hay comentarios por ahora.