Ordenador integrado AntexGate + módem 3G. Configuraciones útiles para una conexión a Internet más estable

imagen


En el campo de la automatización industrial, existe un paradigma tácito en el que muchos fabricantes de equipos industriales fabrican controladores por separado y módems por separado. Como regla general, cada dispositivo se coloca en su propio estuche, tiene su propia fuente de alimentación, grandes dimensiones y alto costo. Esta versión de separación funcional tiene sus ventajas e inconvenientes, pero, en nuestra opinión, conduce, más bien, a una mayor comercialización que por razones objetivas. Por lo tanto, decidimos tomar un camino ligeramente diferente e hicimos un dispositivo universal , que es un controlador basado en Linux programable libremente con un módem en un solo caso. Esto nos permitió en nuestros proyectos abandonar prácticamente por completo los habituales paneles de automatización y llegar a soluciones más móviles.



Bajo el corte de este artículo, compartiremos con usted las complejidades de configurar el módem y varios scripts útiles para una conexión 3G más estable.



Requisitos previos y soluciones



Al desarrollar nuestro dispositivo, nos guiamos por el hecho de que debe conectarse a Internet móvil para poder conectarse a las plataformas en la nube. Había dos formas: soldar el módem a la placa o utilizar conectores mPCIe. Nos decidimos por la segunda opción y proporcionamos dos conectores mPCIe a la vez (Figura 1), ya que esta opción nos pareció más interesante y flexible. Después de todo, la instalación y reemplazo del módem toma unos segundos, además aparece la variabilidad necesaria para que el usuario pueda usar las combinaciones de módulos mPCIe que necesite para un proyecto específico. Además de un módem 3G, pueden ser módulos LoraWan o Wi-Fi. Además, las soluciones mPCIe han demostrado ser bastante fiables y de alta calidad.



imagen

Figura 1 - conectores mPCIe



Consideramos las siguientes opciones como el módulo 3G principal para nuestro dispositivo:



  • MikroTik R11e-LTE6
  • Quectel EC25-E
  • YUGA CLM920 TE5
  • HUAWEI MU709s-2p


Sin embargo, después de las pruebas, el módem HUAWEI resultó ser el más preferido para nosotros en términos de confiabilidad y relación precio-calidad (Figura 2). Lo tomamos como base y lo instalamos opcionalmente en nuestros dispositivos. Por lo tanto, en el futuro consideraremos la configuración y los scripts del módem relativo de este modelo. Quizás este script sea universal y sea útil para otros módems, pero la estabilidad de trabajo con otros modelos no está garantizada. Para Rasbian Buster y HUAWEI MU709s-2p, todo funciona bien.



imagen

Figura 2 - Módem HUAWEI MU709s-2p instalado en la placa del dispositivo



Usar un script para reiniciar un módem 3G



Para un funcionamiento más estable y sin problemas, escribimos un script que hará ping a la dirección IP especificada, y si el número de pings especificado en la configuración no ha pasado, el módem GSM se reiniciará, restaurando así la conexión de red colgada. Cabe señalar que el módem está definido en el sistema como tarjeta de red lan1.



El archivo con todos los archivos necesarios se puede descargar desde este enlace . Además, el texto de los propios guiones se presenta a continuación.



Se requiere el archivo check_inet.sh para verificar la conexión a Internet. Si la dirección IP especificada no hace ping, tiramos de la pata 19 y reiniciamos el módem en la alimentación. El código es el siguiente:



#!/bin/bash
#count=0;
#echo "Start script"
#echo 19 > '/sys/class/gpio/export'

while [ true ]; do
# sleep 30
. /home/pi/igate.conf
#echo $usb_port
#echo 'AT^NDISDUP=1,1,''"'$apn'"''\r\n' 
#echo 'AT^NDISDUP=1,1,"internet.mts.ru"\r\n' 
flag=0

for ((i = 1; i <= $ping_count; i++)); do
#for i in {1..$ping_count}; do # 5   
#ping -I eth1 -c 1 8.8.8.8 > /dev/null || flag=$(($flag+1))
ping -I $interface -c 1 $ping_ip || flag=$(($flag+1))
sleep 1
done

if [ "$flag" -ge "$ping_error" ]; then #    3
#echo "  - "
#count=$((count+1))
#echo $count
# 
sudo ifconfig eth1 down
echo 19 > '/sys/class/gpio/export'
echo out > '/sys/class/gpio/gpio19/direction'
echo 0 > '/sys/class/gpio/gpio19/value'
sleep 1
echo 1 > '/sys/class/gpio/gpio19/value'
sleep 15
sudo ifconfig eth1 up
sleep 1
#echo -en 'AT^NDISDUP=1,1,"internet.mts.ru"\r\n' > /dev/ttyUSB3
#       APN
echo -en 'AT^NDISDUP=1,1,''"'$apn'"''\r\n' > $usb_port
#echo "  - "
fi
sleep $timeout
done 


El archivo Start_inet.sh inicia check_inet.sh después de reiniciar el dispositivo:



#!/bin/bash

### BEGIN INIT INFO
# Provides:          start_inet
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This service is used to manage a servo
### END INIT INFO


case "$1" in 
    start)
        echo "Starting check_inet"
        sudo /home/pi/check_inet.sh > /dev/null 2>&1 &
        #/home/pi/check_inet.sh
        ;;
    stop)
        echo "Stopping check_inet"
        #killall servod
        sudo kill -USR1 $(ps ax | grep 'check_inet' | awk '{print $1}')
        ;;
    *)
        echo "Usage: /etc/init.d/check_inet start|stop"
        exit 1
        ;;
esac

exit 0


El archivo también contiene el archivo de configuración igate.conf



Secuencia de configuración :



1. Agregue una regla para hacer coincidir la conexión física del puerto COM del módem con el concentrador USB. Para hacer esto, edite el archivo en la siguiente ruta:



sudo nano /etc/udev/rules.d/99-com.rules


2. Agregue la siguiente línea al archivo:



KERNEL==”ttyUSB*”, KERNELS==”1-1.5:2.4″, SYMLINK+=”GSM”


3. Guarde las reglas y reinicie el dispositivo. Ahora el puerto de su módem será determinado por el conveniente alias / dev / GSM;



4. Descargue el archivo del enlace anterior o cree los archivos check_inet.sh, start_inet.sh y igate.conf usted mismo;



5. Copie el archivo check_inet.sh en la carpeta:



/home/pi/


6.Haga ejecutable check_inet.sh:



sudo chmod +x /home/pi/check_inet.sh


7. Copie el archivo start_inet.sh en la carpeta:



/etc/init.d/


8.Haga ejecutable el archivo start_inet.sh:



sudo chmod +x /etc/init.d/start_inet.sh


9. Actualice la configuración de inicio ejecutando el comando:



sudo update-rc.d start_inet.sh defaults


10. Copie el archivo igate.conf a la carpeta:



/home/pi/


11. Configure el archivo de configuración. A continuación se muestra el archivo de configuración con comentarios:



#ip- .      ip-,     [ping_error]    ,    GSM-,      .

ping_ip=”8.8.8.8

#  APN.      -,     -.

apn=”internet.mts.ru”

#   3G ( ).   .  30     .

timeout=30

# .   .

ping_count=5

#     .   ,      .      [ping_count].            .

ping_error=3

#LAN  .   ,    AntexGate   [eth1],      ifconfig

interface=eth1

#USB  .  USB      ,    AntexGate   [ttyUSB4]

usb_port=”/dev/GSM”


Control de secuencia de comandos



Ejecute el archivo de script check_inet.sh en segundo plano:



/etc/init.d/start_inet.sh start


Detenga check_inet.sh:



/etc/init.d/start_inet.sh stop


El script también se inicia automáticamente después de reiniciar el dispositivo.



Aplicaciones del dispositivo



Consideremos las principales tareas para las que se puede utilizar el dispositivo:



  1. Controlador con acceso a Internet para transferencia de datos a la nube;
  2. Un enrutador 3G para tareas de campo;
  3. Controlador de casa inteligente con canal 3G redundante. Es decir, puede utilizar el puerto LAN como canal de comunicación principal y 3G como respaldo, para que siempre tenga acceso al dispositivo;
  4. Estación base LoRaWAN, es decir, sondear dispositivos a través de LoRaWAN y transferir datos a la nube a través de una red 3G o LTE;
  5. Dispositivo de monitoreo de vehículos (conexión CAN y acoplamiento con varios servicios)


De hecho, puede haber muchas aplicaciones para dicho dispositivo, y su indudable ventaja es la integridad, versatilidad y movilidad. Un dispositivo puede reemplazar el gabinete de automatización familiar y convertirse en una solución insustituible en sus proyectos.



All Articles