في مجال الأتمتة الصناعية ، هناك نموذج غير معلن يصنع فيه العديد من مصنعي المعدات الصناعية وحدات تحكم منفصلة وأجهزة مودم منفصلة. كقاعدة عامة ، يتم وضع كل جهاز في حالته الخاصة ، وله مصدر طاقة خاص به ، وأبعاد كبيرة ، وتكلفة عالية. هذا الإصدار من الفصل الوظيفي له مزاياه وعيوبه ، ولكنه ، في رأينا ، يؤدي ، بدلاً من ذلك ، إلى تسويق أكبر مما يرجع إلى بعض الأسباب الموضوعية. لذلك ، قررنا اتخاذ مسار مختلف قليلاً وصنعنا جهازًا عالميًا ، وهو وحدة تحكم قائمة على Linux قابلة للبرمجة بحرية مع مودم في حالة واحدة. سمح لنا ذلك في مشاريعنا بالتخلي تمامًا عن لوحات التشغيل الآلي المعتادة والتوصل إلى المزيد من الحلول المتنقلة.
في الجزء الأخير من هذه المقالة ، سنطلعك على تعقيدات إعداد المودم والعديد من البرامج النصية المفيدة لاتصال 3G أكثر استقرارًا.
المتطلبات والحلول
عند تطوير أجهزتنا ، استرشدنا بحقيقة أنه يجب الاتصال بالإنترنت عبر الهاتف المحمول من أجل الاتصال بالمنصات السحابية. كانت هناك طريقتان: لحام المودم باللوحة ، أو استخدام موصلات mPCIe. استقرنا على الخيار الثاني وقدمنا موصلين mPCIe في وقت واحد (الشكل 1) ، نظرًا لأن هذا الخيار بدا لنا أكثر تشويقًا ومرونة. بعد كل شيء ، يستغرق تثبيت المودم واستبداله بضع ثوانٍ ، بالإضافة إلى ظهور التباين الضروري للمستخدم ويمكنه استخدام مجموعات من وحدات mPCIe التي يحتاجها لمشروع معين. بالإضافة إلى مودم 3G ، يمكن أن تكون وحدات LoraWan أو Wi-Fi. بالإضافة إلى ذلك ، أثبتت حلول mPCIe أنها موثوقة تمامًا وذات جودة عالية.
الشكل 1 - موصلات mPCIe
اعتبرنا الخيارات التالية بمثابة وحدة 3G الرئيسية لجهازنا:
- جهاز MikroTik R11e-LTE6
- كويكتيل EC25-E
- يوجا CLM920 TE5
- هواوي MU709s-2p
ومع ذلك ، بعد الاختبارات ، تبين أن مودم HUAWEI هو الأفضل بالنسبة لنا من حيث الموثوقية ونسبة جودة السعر (الشكل 2). أخذناه كأساس وقمنا بتثبيته اختياريًا في أجهزتنا. لذلك ، سننظر في المستقبل في التكوين والبرامج النصية للمودم النسبي لهذا النموذج. ربما يكون هذا البرنامج النصي عالميًا ومفيدًا لأجهزة المودم الأخرى ، ومع ذلك ، فإن الاستقرار مع الطرز الأخرى غير مضمون. بالنسبة إلى Rasbian Buster و HUAWEI MU709s-2p ، كل شيء يعمل بشكل جيد.
الشكل 2 - مودم HUAWEI MU709s-2p مثبت على لوحة الجهاز
استخدام برنامج نصي لإعادة تشغيل مودم 3G
للحصول على عملية أكثر استقرارًا وخالية من المتاعب ، قمنا بكتابة برنامج نصي يقوم بتنفيذ الأمر ping لعنوان IP المحدد ، وإذا لم يمر عدد مرات الاتصال المحددة في الإعدادات ، فسيتم إعادة تشغيل مودم GSM ، وبالتالي استعادة اتصال الشبكة المعلق. وتجدر الإشارة إلى أن المودم معرف في النظام على أنه بطاقة شبكة lan1.
يمكن تنزيل الأرشيف الذي يحتوي على جميع الملفات الضرورية من هذا الرابط . أيضا ، يتم عرض نص النصوص نفسها أدناه.
ملف check_inet.sh مطلوب للتحقق من اتصال الإنترنت. إذا لم يتم تنفيذ الأمر ping على عنوان IP المقدم ، فسنقوم برعشة 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
يتم أيضًا تشغيل البرنامج النصي تلقائيًا بعد إعادة تشغيل الجهاز.
تطبيقات الجهاز
لننظر في المهام الرئيسية التي يمكن استخدام الجهاز من أجلها:
- وحدة تحكم مع وصول إلى الإنترنت لنقل البيانات إلى السحابة ؛
- جهاز توجيه 3G للمهام الميدانية ؛
- جهاز تحكم منزلي ذكي مع قناة 3G زائدة عن الحاجة. بمعنى ، يمكنك استخدام منفذ LAN كقناة اتصال رئيسية ، و 3G كنسخة احتياطية ، بحيث يمكنك دائمًا الوصول إلى الجهاز ؛
- محطة LoRaWAN الأساسية ، أي أجهزة الاقتراع عبر LoRaWAN ونقل البيانات إلى السحابة عبر 3G أو LTE ؛
- جهاز مراقبة السيارة (اتصال CAN والرسو بخدمات مختلفة)
في الواقع ، يمكن أن يكون هناك الكثير من التطبيقات لمثل هذا الجهاز ، وميزته التي لا شك فيها هي اكتماله وتعدد استخداماته وتنقله. يمكن لجهاز واحد أن يحل محل خزانة الأتمتة المعتادة ويصبح حلاً لا غنى عنه في مشاريعك.