يتمتع تطبيق IoT2050 بمهمة جمع البيانات اللامركزية ونقلها عبر الراديو. يتم استخدام LPWAN Technology Long Range (LORA) لهذا الغرض. يعد IoT2050 بمثابة بوابة لوروان. شبكة LoRawan العالمية المجانية (شبكة منطقة واسعة المدى) من شبكة Things أو يتم استخدام Edate Stack Community Edition كخادم الشبكة. يصف هذا الدليل بنية البرمجيات والأجهزة للبوابة (تكوين ووظيفة الأجهزة النهائية (مثل مستشعرات) في هذا الدليل ، لأنه يعتمد على الغرض الفردي للتطبيق):

مكونات الأجهزة التالية مطلوبة للتطبيق:
يمكنك أيضًا رؤية جميع الأجزاء الفردية في قائمة الطلبات.
يتم استخدام واجهة Arduino UNO من IoT2050 Simatic لدمج مركبة IC880A. مطلوب درع محول لهذا الغرض ، والذي يجمع بين تعيينات الدبوس. يتم تزويد المكثف بـ 5 فولت.
تم بناء درع المحول المستخدم في هذا التطبيق. يمكن أخذ المكونات المطلوبة من قائمة الطلبات. يمكن العثور على مزيد من المعلومات حول الهيكل في ملف المشروع (.PRO) ، والملف التخطيطي (.sch) وملف التصميم (.kicad_pcb).
يعد IC880A مركز Lorawan Conctator IC880A عبارة عن وحدة مرسل/مستقبل متعددة القنوات مصممة لتلقي العديد من حزم Lora في وقت واحد باستخدام عوامل انتشار مختلفة على قنوات متعددة. يمكن دمج وحدة التركيب IC880A في بوابة كطرف أمامي كامل من هذه البوابة.
يوضح الشكل التالي بنية الأجهزة الكاملة لبوابة لوراوان. لتوصيل الهوائي (2 DBI Dipole Antenna 863-870MHz مع RP SMA) بوحدة IC880A ، يتم استخدام U.FL لعكس محول SMA. يتم توصيل المكثف في واجهة Arduino Uno من IoT2050 مع درع المحول.

يتم استخدام البرنامج التالي لهذا الدليل:
للتكليف الأول لـ IoT2050 ، يرجى الرجوع إلى الإعداد. يمكنك الحصول على مزيد من المساعدة في منتدى IoT2050 Simatic.
بعد العمل من خلال الإعداد ، يجب تنفيذ التحديث للنظام ويجب تثبيت GIT . يتم تنفيذ الأوامر التالية لهذا:
sudo apt-get update
sudo apt-get install git
إنشاء اتصال SHH عبر المعجون واستخدم الأوامر التالية:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable SPI on IO10-IO13" -> "Enable"
Use ESC to exit the iot2050setup


لاستنساخ أحدث إصدار من محطة Lora Basics ™ من Github ، استخدم الأوامر التالية:
cd /home
git clone https://github.com/lorabasics/basicstation.git
الآن ، يجب تكييف ملف setup.gmk ، الذي يعد جزءًا من Clone ، مع IoT2050 لتخزين الدلائل الصحيحة لـ Toolchain. للقيام بذلك ، افتح الملف في محرر باستخدام الأوامر التالية:
cd /home/basicstation/
nano setup.gmk
مع مجموعة المفاتيح CTRL+C يمكن عرض مواصفات الخط في محرر النانو:

يجب التعليق على الأسطر 55 - 66 مع # ويجب تغيير الخطوط 68 - 72 إلى ما يلي:
CC=/usr/bin/gcc
LD=/usr/bin/ld
AR=/usr/bin/ar
OD=/usr/bin/objdump
OC=/usr/bin/objcopy
بالإضافة إلى ذلك ، يجب تحرير السطر 76 على النحو التالي:
export LD_LIBRARY_PATH=/usr/local/lib
احفظ وإغلاق الملف بالأوامر التالية:
CTRL+X -> to exit editing
Y -> to save the changes
Enter -> to confirm the filename
لإنشاء محطة تجويف الحزمة ، استخدم الأمر التالي في الدليل /home/basicstation/ :
make platform=rpi variant=std
بعد تجميع المحطة الأساسية ، ظهر مجلد جديد يسمى build-rpi-std مع أربعة مجلدات فرعية. يمكنك العثور على station الثنائية المترجمة في bin المجلد الفرعي.
ما لم ينص على خلاف ذلك ، يتم تنفيذ الأوامر والإجراءات التالية دائمًا في هذا الدليل ( /home/basicstation/build-rpi-std/bin/ ).
هناك حاجة إلى بعض التكوينات للمحطة الأساسية ، والتي يتم تحديدها في station.conf الملف. انسخ محطة الملفات الجاهزة.
يجب تزويد محطة Lora Basics ™ بخادم شبكة LoRawan® (LNS) للاتصال به. في هذا المثال ، يتم استخدام STATES COSTER COMMUNITY SEDOR مع المنفذ 8887. تم تحديد هذا في ملف tc.uri . انسخ الملف الجاهز tc.uri في الدليل.
هذا يتطلب شهادة الجذر. يمكن استخدام الأمر التالي للحصول على شهادة وإنشاء ملف tc.trust مباشرة:
curl https://letsencrypt.org/certs/isrgrootx1.pem.txt -o tc.trust
يمكنك أيضًا استخدام شهادة جذر أخرى ، والتي يجب إدراجها في ملف tc.trust بدون الأحرف <> :
-----BEGIN CERTIFICATE-----
<insert root certificate here>
-----END CERTIFICATE-----
يجب إعادة تعيين وحدة IC880A مع شريحة النطاق الأساسي SX1301 في كل مرة يتم تشغيلها. ومع ذلك ، لا يتم إجراء عملية إعادة التعيين هذه بواسطة HAL من الشريحة. لذلك ، يتم كتابة نص Python لتنفيذ ذلك خارجيًا. انسخ برنامج Python Script IC880A_RESET.PY إلى الدليل. بعد ذلك ، يجب تعيين دبوس الإدخال/الإخراج الرقمي 4 كمخرجات ، لأن هذا يستخدم كـ PIN إعادة تعيين:
iot2050setup
Use the arrow keys: "Peripherals" -> "Configure Arduino I/O" -> "Enable GPIO" -> Set PIN 4 as output
Use ESC to exit the iot2050setup

والخطوة التالية هي إضافة نص Shell الذي ينفذ البرنامج النصي Python. سيتم تنفيذ هذا البرنامج النصي لاحقًا مع بداية station الثنائية. انسخ الملف الجاهز RESET_GW.SH إلى الدليل. في هذا البرنامج النصي Shell ، يتم استدعاء البرنامج النصي Python الذي تم إنشاؤه مسبقًا لإعادة تعيين الأجهزة للمركبة. يحتاج البرنامج النصي الآن إلى تزويد الحقوق القابلة للتنفيذ مع الأمر التالي:
chmod 755 reset_gw.sh
للحصول على EUI من بوابة التسجيل في الخادم ، يجب بدء station البرنامج مرة واحدة (التنفيذ غير يعمل بالكامل بعد):
./station
يتكون EUI للبوابة من عنوان MAC الخاص بـ IoT2050 ويتم عرضه في إخراج وحدة التحكم بعد بدء المحطة:

يمكن إيقاف التطبيق مع مجموعة المفاتيح CTRL+C .
أخيرًا ، لتوضيح البوابة باستخدام Things Stack Community Edition ، يجب تخزين مفتاح API في ملف يسمى tc.key . للقيام بذلك ، يجب تسجيل البوابة في إصدار Things Stack Community. يتم شرح ذلك في الخطوات التالية: بعد تسجيل الدخول إلى صفحة الويب ، يتم تحديد المنطقة. بعد ذلك يمكن إضافة بوابة جديدة. لهذا ، يجب إدخال معرف بوابة فريد من نوعه ، وكذلك بوابة EUI من الرقم السابق. بالإضافة إلى ذلك ، يتم تحديد خطة التردد للمنطقة. علاوة على ذلك ، يمكن اختيار ما إذا كانت حالة البوابة مرئية للجمهور. يتم عرض جميع التكوينات المطلوبة في الشكل التالي:

بعد تسجيل البوابة الجديدة ، يجب إنشاء مفتاح API للترخيص. قبل إنشاء المفتاح ، يتم تعيين اسم. بالإضافة إلى ذلك ، يتم منح حقوق فردية للربط كبوابة مع خادم بوابة لتبادل البيانات. بعد إنشاء مفتاح API ، يجب نسخه وتخزينه بشكل عاجل ، لأنه مشفر بعد ذلك وبالتالي لم يعد مرئيًا.


استخدم الأوامر التالية لإنشاء ملف tc.key واستخدام مفتاح API الذي تم نسخه مسبقًا بدلاً من xxx :
export LNS_KEY="xxx"
echo "Authorization: Bearer $LNS_KEY" | perl -p -e 's/rn|n|r/rn/g' > tc.key
هذا يكمل تثبيت وتكوين المحطة الأساسية. الآن يمكن أن تبدأ المحطة يدويًا مع الأمر:
./station
إذا نجحت التثبيت والمصادقة ، فستبدأ المحطة ويتم عرض البوابة على أنها connected في وحدة التحكم في طبعة مجتمع الأشياء:

يمكنك تلقي مزيد من المعلومات على موقع Things Stack - إضافة بوابات.
انسخ برنامج SHELL الجاهز Start.sh ، الذي يطلق على station الثنائية ، إلى الدليل. يجب بعد ذلك تزويد البرنامج النصي بحقوق قابلة للتنفيذ:
chmod 755 start.sh
انسخ ملف خدمة SystemD الجاهز IOT-2050-Lora-Gateway.service في الدليل /etc/systemd/system . للتغيير إلى هذا الدليل ، استخدم الأمر التالي:
cd /etc/systemd/system
يمكن الآن بدء ملف الخدمة يدويًا واختباره مع الأمر التالي:
sudo systemctl start iot2050-lora-gateway.service
بعد بداية ناجحة للخدمة والمحطة ، يمكن إنهاء الأمر التالي:
sudo systemctl stop iot2050-lora-gateway.service
لتمكين التشغيل التلقائي للخدمة ، استخدم الأمر
sudo systemctl enable iot2050-lora-gateway.service
بعد إعادة التشغيل التالية ، سيتم بدء البوابة بكل تمهيد.
البوابة جاهزة الآن للاستخدام. يمكن الآن إضافة الأجهزة النهائية إلى التطبيق عبر Things Stack Community Edition ، والتي تنقل البيانات بعد ذلك عبر البوابة إلى الخادم. هنا يمكنك العثور على بعض الأجهزة النهائية الممكنة. كيفية إضافة أجهزة نهائية على الخادم موصوفة هنا
يتم استخدام Node-Red لتصور البيانات التي تم جمعها. يمكن الوصول إلى محرر الويب عبر عنوان IP الخاص بـ IoT2050 و Port 1880. Node-Red في Autostart افتراضيًا على الصورة المثال. للوصول إليه ، افتح متصفحًا على جهاز الكمبيوتر الخاص بك المتصلة بجهاز IoT2050 وافتح عنوان URL http://<IP of the IOT2050>:1880/ .
الآن يمكن استيراد ملف Flows.json إلى Node-Red:
Menu -> Import -> Select file for Upload

يجب ضبط العقد على النحو التالي:
MQTT: أدخل عنوان الخادم ومنفذ الأشياء في علامة التبويب اتصال. للاشتراك في جميع الرسائل تعيين الموضوع إلى # .

أدخل اسم المستخدم الخاص بك و MQTT-API-KEY ككلمة المرور . يمكنك إنشاء مفتاح API هذا في عمليات التكامل الخاصة بتطبيقك:



عقدة Parse: في عقدة Parse ، يجب ضبط device_id المختلفة (اعتمادًا على التطبيق):

وصف التدفق: لمعالجة الرسائل الواردة ، يتم إنشاء كائن JavaScript أولاً. ثم يتم تحليل الروابط الصاعدة في عقدة تحليل الوظيفة لاستخراج الرسائل الفردية لكل جهاز نهائي. بالإضافة إلى ذلك ، تم تمديد العقدة إلى ثلاثة مخرجات. وبالتالي ، يتم تعيين كل رسالة إلى الإخراج وتعني لجهاز نهائي. باستخدام مكتبة لوحة القيادة وعقدة المقياس ، يمكن بعد ذلك مدمجة بشكل فردي في لوحة معلومات.
يُظهر تدفق ما قبل البناء مثالًا على مزيج من ثلاثة أجهزة نهائية في عقدة Parse. يجب ضبط المعرف اعتمادًا على التطبيق والإعداد في شبكة الأشياء.
لوحة القيادة: لعرض البيانات ، يمكن الآن تثبيت لوحة لوحة القيادة وتكوينها بشكل فردي:
Menu -> Manage Palette -> Install Tab -> Search and install the given libraries
الانتهاء: لتنزيل التدفق إلى IoT2050 ، انقر فوق الزر Deploy
لفتح لوحة القيادة للعقدة ، افتح عنوان URL http://<IP of the IOT2050>:1880/ui
شكرا لك على اهتمامك بالمساهمة. أي شخص حر في الإبلاغ عن الأخطاء ، والوثائق غير الواضحة ، والمشاكل الأخرى المتعلقة بهذا المستودع في قسم القضايا. بالإضافة إلى ذلك ، الجميع أحرار في اقتراح أي تغييرات على هذا المستودع باستخدام طلبات السحب.
إذا لم تكن قد وقعت من قبل اتفاقية ترخيص Siemens (CLA) ، فسيطلب منك النظام تلقائيًا القيام بذلك عند إرسال طلب السحب الخاص بك. يمكن القيام بذلك بسهولة من خلال منصة CLA Assistant على الإنترنت. بمجرد توقيع CLA ، سيتم تنظيف طلب السحب تلقائيًا وإعداده للدمج إذا نجحت جميع مراحل الاختبار الأخرى.
يرجى قراءة المعلومات القانونية.