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

In this blog you will learn how to configure the GPRS module in your industrial Raspberry PLC. We will go step by step to configure and run the GPRS module and hence get internet connectivity with our 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 Read >>

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

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

The sim card needs to be inserted with the uncut side in first. Take a look at the picture for better understanding. The connectors of the sim are facing downwards.

The SIM card inlet of the PLC  is located on the top cover of the device. You will be able to see the SIM card symbol on the screen printing; the slot is just below it. You can use a forceps or a mini screw driver to insert the card. It has a spring mechanism that will lock the sim to its place.

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


         Configuration

        We need to make some configuration settings to set up the GPRS connection. We will go through the steps now

        1)  Disable console and enable serial hardware.
              There are two ways of doing this (CHOOSE ANY ONE OF THEM) :

        1.  Add "enable_uart = 1" (Without " ) to /boot/config.txt file and Remove "console0 = ... from /boot/cmdline.txt

        2.  Type "sudo raspi-config"  in the console to open a gui for settings. Choose interfacing options and then P6 option (Serial port). Reject the "login shell to be accessible over serial" option and enable the "serial port hardware" option

               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) Install minicom terminal emulator and test the module with AT commands

            This step is a pre-test to check the hardware connection to the SIM800L and can be skipped. 

               SIM800L works with the ttyS0 port and for this example you will be using a 115200 baud rate. You will execute the following command to open the serial communication           with the 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.


        • To make sure that you can see whats happening when you are using AT commands or running the scripts from the next step, you can run the following command on a new terminal or an instance of SSH serial communication to see the logged messages. 

          $ tail -f /var/log/messages


        3) Check and install dependencies. 

            We will be using "ppp" (Point-to-Point) link layer protocol, which is by default there in the PLC. It is advised to install this package using apt-get install to avoid complications     in the next step. Furthermore, this package requires libpcap0.8 (the version is 0.8 at the time of writing this document) and will install it automatically with the "ppp" package.In case it does not, you can install it as well. ( You will need internet for this, so make sure you have either wifi or ethernet configured)


        4) Create configuration files: a ppp-start file to initiate the connection process and a gprs-options file.

             You should have a folder named "ppp" in /etc/ , if not, create one.

             Create a file named "ppp-start" in /etc/ppp/ with the following contents :

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

             ppp-start is a command file that launch the daemon program pppd passing as parameter the /etc/ppp/gprs-options that contains the PPP working options.

            Create a file named "gprs-options" in /etc/ppp/ with the following contents : 

        /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) Download ,unzip and copy these files to the location specified.

        • 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: User and Password

        • /etc/ppp/gprs-connect: APN

        • /etc/ppp/peers/gprs: Use

        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) Edit the file "provider" in /etc/ppp/peers/

          Make the following changes :

          1. username "Your-UserName"

          2. replace ********* with apn link or phone number of your provider

          3. /dev/modem to /dev/ttyS0

        After setting this configuration, do a reboot and the module should connect to the internet automatically.

        $ sudo reboot

        You can check if ppp0 appears when you run ifconfig. It should be there.


        You can also test your connection with the following command as a super user:

        $ . /etc/ppp/ppp-start

        Make sure you are running the message log from step 2 to know what is happnening in the background. If the module is already running and you run the above command, it will throw an error stating that the device ttyS0 is blocked with a PID no. 

        Troubleshooting

        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

        If you have the issue of "Permission denied" when trying to access to some of the files or folders seen in this post you can try to use sudo before the command. If the problem is not solved with that, you will need to use the Super User (su) command.

        First of all, to allow the remote access (ssh) as a root user, you must open the following file:

        sudo nano /etc/ssh/sshd_config
        Search the #Authentication section and, change the following value of #PermitRootLogin for a yes. After that, you must save and exit pressing CTRL+X and Y to confirm it.

        After that, you must reset the service:

        sudo service ssh restart
        After these steps you will be able to assign a psw to the root user doing:

        sudo passwd root
        With these instructions you will be able to use the su command in the required situations. 

        ¿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!