嵌入式计算机AntexGate + 3G调制解调器。有用的设置,可以更稳定地连接互联网

图片


在工业自动化领域中,存在着一种不言而喻的范例,其中许多工业设备制造商分别制造控制器和调制解调器。通常,每个设备都放置在自己的外壳中,具有自己的电源,尺寸大且成本高。功能分离的这种变体有其优点和缺点,但是,在我们看来,与某些客观原因相比,它导致了更大的商业化。因此,我们决定采取略有不同的方法,并制造出一种通用设备,它是一种可自由编程的基于Linux的控制器,在单个情况下带有调制解调器。这使我们在项目中几乎完全放弃了常规的自动化面板,而采用了更多的移动解决方案。



在本文的剪裁下,我们将与您分享设置调制解调器的复杂性和一些有用的脚本,以实现更稳定的3G连接。



先决条件和解决方案



在开发设备时,我们必须遵循以下事实:设备必须连接到移动互联网才能连接到云平台。有两种方法:将调制解调器焊接到板上,或使用mPCIe连接器。我们选择了第二个选项,并一次提供了两个mPCIe连接器(图1),因为在我们看来,这个选项更加有趣和灵活。毕竟,调制解调器的安装和更换仅需几秒钟的时间,此外,用户还可以看到必要的可变性,因此他可以使用特定项目所需的mPCIe模块组合。除3G调制解调器外,它还可以是LoraWan或Wi-Fi模块。另外,mPCIe解决方案已被证明是非常可靠和高质量的。



图片

图1-mPCIe连接器



我们认为以下选项是我们设备的主要3G模块:



  • MikroTik R11e-LTE6
  • Quectel EC25-E
  • 优佳CLM920 TE5
  • 华为MU709s-2p


然而,经过测试,就可靠性和价格质量比而言,华为调制解调器对我们来说是最可取的(图2)。我们以此为基础,可以选择将其安装在设备中。因此,将来我们将考虑此模型的相对调制解调器的配置和脚本。也许此脚本对于其他调制解调器将是通用的且有用的,但是,不能保证其他型号的稳定性。对于Rasbian Buster和HUAWEI MU709s-2p,一切正常。



图片

图2-设备板上安装的HUAWEI MU709s-2p调制解调器



使用脚本重启3G调制解调器



为了更稳定和无故障地运行,我们编写了一个脚本来ping指定的IP地址,如果未通过设置中指定的ping数目,则GSM调制解调器将重新启动,从而恢复挂起的网络连接。应当注意,调制解调器在系统中定义为lan1网卡。



可以从此链接下载包含所有必需文件的存档另外,脚本本身的文本显示如下。



需要check_inet.sh文件来检查Internet连接。如果指定的IP地址未ping通,那么我们将摇晃19脚并重新启动调制解调器。代码如下:



#!/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 


设备重启后,Start_inet.sh文件将启动check_inet.sh:



#!/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


归档文件中还包含igate.conf配置文件配置



顺序:



1.添加一条规则,以匹配调制解调器的COM端口与USB集线器的物理连接。为此,请在以下路径中编辑文件:



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


2.将以下行添加到文件中:



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


3.保存规则并重新启动设备。现在,调制解调器的端口将由方便的别名/ dev / GSM确定。



4.从上面的链接下载档案,或者自己创建check_inet.sh,start_inet.sh和igate.conf文件。



5.将check_inet.sh文件复制到该文件夹​​:



/home/pi/


6.使check_inet.sh可执行:



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


7.将start_inet.sh文件复制到该文件夹​​:



/etc/init.d/


8.使start_inet.sh文件可执行:



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


9.通过运行以下命令来更新启动配置:



sudo update-rc.d start_inet.sh defaults


10.将igate.conf文件复制到该文件夹​​:



/home/pi/


11.设置配置文件。以下是带有注释的配置文件:



#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”


脚本控制



在后台运行check_inet.sh脚本文件:



/etc/init.d/start_inet.sh start


停止check_inet.sh:



/etc/init.d/start_inet.sh stop


重启设备后,脚本也会自动启动。



设备的应用



让我们考虑可以使用该设备的主要任务:



  1. 具有Internet访问权限的控制器,用于将数据传输到云;
  2. 用于现场任务的3G路由器;
  3. 具有冗余3G通道的智能家居控制器。也就是说,您可以将LAN端口用作主要的通信通道,将3G用作备份,以便您始终可以访问该设备。
  4. LoRaWAN基站,即通过LoRaWAN轮询设备,并通过3G或LTE网络将数据传输到云;
  5. 车辆监控设备(CAN连接和各种服务的对接)


实际上,此类设备可以有很多应用程序,其无疑的优势是完整性,多功能性和移动性。一台设备可以代替您熟悉的自动化机柜,并成为您项目中不可替代的解决方案。



All Articles