組み込みコンピュータAntexGate + 3G-modem。より安定したインターネット接続のための便利な設定

画像


産業用自動化の分野では、産業用機器の多くのメーカーがコントローラーを個別に製造し、モデムを個別に製造するという暗黙のパラダイムがあります。原則として、各デバイスは独自のケースに配置され、独自の電源、大きな寸法、および高コストを備えています。このバージョンの機能分離には長所と短所がありますが、私たちの意見では、いくつかの客観的な理由よりもむしろ、より大きな商業化につながります。そのため、少し異なる道をたどり、ユニバーサルデバイスを作成しました。これは、1つのケースにモデムを備えた自由にプログラム可能なLinuxベースのコントローラーです。これにより、私たちのプロジェクトでは、通常の自動化パネルを実質的に完全に放棄し、より多くのモバイルソリューションを利用できるようになりました。



この記事のカットの下で、モデムのセットアップの複雑さと、より安定した3G接続のためのいくつかの便利なスクリプトを紹介します。



前提条件とソリューション



デバイスを開発するとき、クラウドプラットフォームに接続するには、モバイルインターネットに接続する必要があるという事実に導かれました。モデムをボードにはんだ付けする方法と、mPCIeコネクタを使用する方法の2つがありました。 2番目のオプションを選択し、一度に2つのmPCIeコネクタを提供しました(図1)。このオプションは、より興味深く、柔軟性があるように思われたためです。結局のところ、モデムのインストールと交換には数秒かかります。さらに、ユーザーには必要な可変性が表示され、特定のプロジェクトに必要なmPCIeモジュールの組み合わせを使用できます。 3Gモデムに加えて、LoraWanまたはWi-Fiモジュールにすることができます。さらに、mPCIeソリューションは、非常に信頼性が高く、高品質であることが証明されています。



画像

図1-mPCIeコネクタ



デバイスのメイン3Gモジュールとして次のオプションを検討しました。



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


しかし、テストの結果、信頼性と価格と品質の比率の点で、HUAWEIモデムが最も好ましいことがわかりました(図2)。私たちはそれを基礎として、オプションでデバイスにインストールしました。したがって、将来的には、このモデルの相対モデムの構成とスクリプトを検討します。おそらく、このスクリプトは普遍的で他のモデムに役立つでしょうが、他のモデルとの安定性は保証されていません。RasbianBusterとHUAWEIMU709s-2pの場合、すべてが正常に機能します。



画像

図2-デバイスボードに取り付けられたHUAWEIMU709s-2pモデム



スクリプトを使用して3Gモデムを再起動する



より安定したトラブルのない操作のために、指定されたIPアドレスにpingを実行するスクリプトを作成しました。設定で指定されたpingの数に達しない場合、GSMモデムが再起動し、ハングしたネットワーク接続が復元されます。モデムはシステムでlan1ネットワークカードとして定義されていることに注意してください。



必要なすべてのファイルを含むアーカイブは、このリンクからダウンロードできますまた、スクリプト自体のテキストを以下に示します。



インターネット接続を確認するには、check_inet.shファイルが必要です。指定された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. クラウドへのデータ転送のためのインターネットアクセスを備えたコントローラー。
  2. フィールドタスク用の3Gルーター。
  3. 冗長3Gチャネルを備えたスマートホームコントローラー。つまり、LANポートをメインの通信チャネルとして使用し、3Gをバックアップとして使用できるため、常にデバイスにアクセスできます。
  4. LoRaWANベースステーション。つまり、LoRaWANを介してデバイスをポーリングし、3GまたはLTEを介してデータをクラウドに転送します。
  5. 車両監視装置(CAN接続およびさまざまなサービスとのドッキング)


実際、そのようなデバイスには多くのアプリケーションが存在する可能性があり、その完全性、汎用性、および機動性は間違いなく利点です。1つのデバイスで、使い慣れた自動化キャビネットを置き換え、プロジェクトでかけがえのないソリューションになることができます。



All Articles