Cómo trabajar con el módulo GPRS de Raspberry Pi
Cómo configurar los primeros pasos para trabajar con GPRS industrial Raspberry Pi PLC
10 febrero, 2021 por
Cómo trabajar con el módulo GPRS de Raspberry Pi
Boot & Work Corp. S.L., Marti Guillem Cura

Introducción

En este post, aprenderás a configurar el módulo GPRS en tu PLC industrial Raspberry. Vamos a ir paso a paso para configurar y ejecutar el módulo GPRS y por lo tanto obtener la conectividad a Internet con nuestro PLC.


Lecturas previas

Te recomendamos que leas los siguientes posts para entender el programa de este blog. También pueden ser útiles para empezar con tu flamante PLC industrial Raspberry Pi:

  • Cómo acceder al PLC industrial Raspberry Pi Leer >>

  • Cómo cambiar la IP en Windows y Linux Leer >>

Requisitos

Para trabajar con el módulo GPRS, necesitarás cualquiera de nuestros PLC basados en Raspberry Pi para automatización industrial. En este ejemplo, vamos a trabajar con el PLC Raspberry Pi y GPRS 21 IOs:


Hardware

El módulo SIM800L es el componente principal de las tarjetas FONA 800 de Adafruit por lo que se puede utilizar la librería hecha para estas tarjetas con los módulos baratos que montan la SIM800L.

En este tutorial nos centramos en configurar el entorno para utilizar el módulo GPRS del PLC industrial de la Raspberry Pi, pero también te mostraremos cómo probar el módulo enviando comandos AT por el monitor serie.

Conexiones

Las conexiones entre la Raspberry y el módulo GPRS se pueden ver en la siguiente imagen. Los series están cruzados para poder enviar los datos correctamente.

 

Conexiones

Conexión GPRS

Inserción de la tarjeta SIM

La tarjeta sim tiene que ser insertada con el lado no cortado en ella primero. Mira la imagen para entenderlo mejor. Los conectores de la sim están orientados hacia abajo.

La entrada de la tarjeta SIM del PLC se encuentra en la tapa superior del aparato. Podrás ver el símbolo de la tarjeta SIM en la impresión de la pantalla; la ranura está justo debajo. Puedes utilizar una pinza o un mini destornillador para insertar la tarjeta. Tiene un mecanismo de resorte que bloqueará la sim en su lugar.

Inserting the SIM card on Raspberry Pi PLC
Inserting the SIM card on Raspberry Pi PLC


        Configuración

        Tenemos que hacer algunos ajustes de configuración para establecer la conexión GPRS. Vamos a seguir los pasos ahora:

        1) Desactivar la consola y activar el hardware serie. console and enable serial hardware.
              Hay dos maneras de hacerlo (ELIJE CUALQUIERA DE ELLAS):
        1.  Añade "enable_uart = 1" (Without " ) a /boot/config.txt file and Remove "console0 = ... from /boot/cmdline.txt

        2.  Escribe "sudo raspi-config" en la consola para abrir una guía de configuración. Elije las opciones de interfaz y luego la opción P6 (puerto serie). Rechaza la opción "login shell to be accessible over serial" y habilita la opción "serial port hardware". 

        Si has realizado los pasos con éxito, se mostrará un mensaje diciendo que el shell de inicio de sesión en serie está deshabilitado y la interfaz en serie está habilitada.


        2) Instala el emulador de terminal minicom y prueba el módulo con comandos AT

            Este paso es una prueba previa para comprobar la conexión del hardware con el SIM800L y puede omitirse. 

        SIM800L trabaja con el puerto ttyS0 y para este ejemplo, se utilizará una tasa de 115200 baudios. Ejecutarás el siguiente comando para abrir la comunicación serial con el minicom: 

        $ sudo minicom -D /dev/ttyS0 -b 115200

        Una vez dentro, escribe AT y pulsa enter y el módulo GPRS devolverá un mensaje de OK. AT es el más simple de los comandos AT, utilizado para probar el módulo.


        • Para asegurarte de que puedes ver lo que está sucediendo cuando está usando los comandos AT o ejecutando los scripts del siguiente paso, puedes ejecutar el siguiente comando en una nueva terminal o en una instancia de comunicación serial SSH para ver los mensajes registrados. 

          $ tail -f /var/log/messages


        3) Comprueba e instala las dependencias.  

        Utilizaremos el protocolo de capa de enlace "ppp" (Point-to-Point), que está por defecto en el PLC. Se aconseja instalar este paquete usando apt-get install para evitar complicaciones en el siguiente paso. Además, este paquete requiere libpcap0.8 (la versión es 0.8 en el momento de escribir este documento) y se instalará automáticamente con el paquete "ppp". En caso de que no lo haga, puedes instalarlo también. ( Necesitarás internet para esto, así que asegúrate de tener wifi o ethernet configurado).


        4) Crear archivos de configuración: un archivo ppp-start para iniciar el proceso de conexión y un archivo gprs-options.

             Deberías tener una carpeta llamada "ppp" en /etc/ , si no, crea una.

             Crea un archivo llamado "ppp-start" en /etc/ppp/ con el siguiente contenido:

        /usr/sbin/pppd file /etc/ppp/gprs-options

        ppp-start es un archivo de comandos que lanza el programa demonio pppd pasando como parámetro el /etc/ppp/gprs-options que contiene las opciones de trabajo PPP.

            Crea un archivo llamado "gprs-options" en /etc/ppp/ con el siguiente contenido :

        /dev/ttyS0 
        9600 defaultroute user "YOUR-USERNAME-USED-IN-OTHER-FILES" connect "/usr/sbin/chat -v -f /etc/ppp/gprs-connect" disconnect "/usr/sbin/chat -v -f /etc/ppp/gprs-disconnect"


        5) Descarga, descomprime y copia estos archivos en la ubicación especificada. 

        • ppp-secrets: /etc/ppp/pap-secrets

        • gprs-connect: /etc/ppp/gprs-connect

        • gprs-disconnect: /etc/ppp/gprs-disconnect

        • gprs: /etc/ppp/peers/gprs

        • ppp0: /etc/network/interfaces.d/ppp0

        En algunos de estos archivos debes aplicar algunos cambios para poder trabajar con la SIM. Los archivos tienen algunas secciones donde se encuentra la opción "SU-USUARIO-AQUÍ", "SU-CONTRASEÑA-AQUÍ" o "SU-APN-AQUÍ", donde el usuario debe configurar su nombre de usuario, contraseña y el APN que está utilizando. Algunos de los archivos requerirán ser modificados con la opción de superusuario sudo. Las opciones que deberá modificar son:

        • /etc/ppp/pap-secrets: Usuario y contraseña

        • /etc/ppp/gprs-connect: APN

        • /etc/ppp/peers/gprs: Uso

        Los ficheros GPRS-connect y GPRS-disconnect serán pruebas utilizadas para hacer lo básico de las comunicaciones, obteniendo una IP para un futuro uso. Como puedes ver en ellos, en la parte izquierda de las líneas está la respuesta que GPRS enviará después de obtener el comando especificado en la parte derecha de la línea. Por ejemplo, AT+CGDCONT=1, "IP", "YOUR-APN-HERE", "0.0.0.0",0,0 esperará un OK.

        El archivo que estaría ejecutando todo el proceso es el GPRS. En este ejemplo, el archivo GPRS se llama gprs-connect, si quieres implementar diferentes funciones, tienes que configurarlas allí.


        6) Edita el archivo "provider" en /etc/ppp/peers/

          Realiza los siguientes cambios : 

          1. nombre de usuario "Your-UserName"

          2. sustituye ********* por el enlace apn o el número de teléfono de tu proveedor

          3. /dev/modem a /dev/ttyS0

        Después de establecer esta configuración, haz un reinicio y el módulo debería conectarse a Internet automáticamente. 

        $ sudo reboot

        Puedes comprobar si ppp0 aparece cuando ejecutas ifconfig. Debería estar ahí.

        También puedes probar tu conexión con el siguiente comando como superusuario:

        $ . /etc/ppp/ppp-start

        Asegúrete de que estás ejecutando el registro de mensajes del paso 2 para saber lo que está sucediendo en el fondo. Si el módulo ya se está ejecutando y ejecutas el comando anterior, arrojará un error indicando que el dispositivo ttyS0 está bloqueado con un PID no.  

        Solución de problemas

        Si hay algún problema durante el proceso, hacer un reinicio manual al módulo GPRS debería resolver el problema. Para hacer el reinicio, ejecute los siguientes comandos:

        echo 16 > /sys/class/gpio/export
        echo out > /sys/class/gpio/gpio16/direction
        echo 1 > /sys/class/gpio/gpio16/value
        echo 0 > /sys/class/gpio/gpio16/value
        echo 1 > /sys/class/gpio/gpio16/value
        echo 16 > /sys/class/gpio/unexport

        Si tienes el problema de "Permiso denegado" cuando intentas acceder a algunos de los archivos o carpetas vistos en este post puedes intentar usar sudo antes del comando. Si el problema no se resuelve con eso, tendrás que utilizar el comando de superusuario (su).

        En primer lugar, para permitir el acceso remoto (ssh) como usuario root, debes abrir el siguiente archivo:

        sudo nano /etc/ssh/sshd_config
        Busca la sección #Autenticación y, cambia el siguiente valor de #PermitRootLogin por un . Después, debes guardar y salir pulsando CTRL+X e Y para confirmarlo.

        Después de eso, debes restablecer el servicio:

        sudo service ssh restart
        Después de estos pasos podrás asignar un psw al usuario root haciendo:

        sudo passwd root
        Con estas instrucciones, podrás utilizar el comando su en las situaciones necesarias. 

        ¿Quieres saber más?

        Sigue nuestro blog para dudas técnicas y TIPs de programación.


        Cómo trabajar con el módulo GPRS de Raspberry Pi
        Boot & Work Corp. S.L., Marti Guillem Cura
        10 febrero, 2021
        Compartir
        Archivar

        ¿Buscas tu controlador lógico programable ideal?

        Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

        Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.


        Comparación PLC industrial>>>

        ¿Quieres más información?

        ¡Rellena el formulario!

        ¡Cuéntame más!