من المتوقع أنه بحلول عام 2020 سيكون لدينا 25 مليار جهاز متصل بالإنترنت. لإعطائك فكرة أكثر من ثلاثة أضعاف سكان الأرض اليوم. مع انتشار مفهوم إنترنت الأشياء والصناعة 4.0 والمركبات المتصلة والمدن الذكية بسرعة ، فمن المرجح أن يحدث هذا. لدينا بالفعل عدد قليل من البروتوكولات اللاسلكية مثل BLE و Wi-Fi و Cellular وغيرها ، ولكن هذه التقنيات لم تكن مثالية لعقد مستشعر IoT لأنها تحتاج إلى نقل المعلومات إلى مسافات طويلة دون استخدام الكثير من الطاقة. هذا يؤدي إلى ظهور تقنية LoRa ، والتي يمكنها أداء ناقل حركة بعيد المدى باستهلاك منخفض للطاقة.
تصبح وحدات ESP مرادفات لتطبيقات Wi-Fi ، كما أن تقنية LoRa هذه لديها عيار لبناء شبكة واسعة مثل الإنترنت. في هذه المقالة سوف نتعرف على LoRa وكيفية استخدامها مع Arduino Development Platform.
ما هو LoRa؟
المصطلح LoRa يرمز إلى المدى الطويل( Long Range ). إنها تقنية ترددات الراديو اللاسلكية التي قدمتها شركة تدعى Semtech. يمكن استخدام تقنية LoRa لنقل المعلومات ثنائية الاتجاه إلى مسافات طويلة دون استهلاك الكثير من الطاقة. ويمكن استخدام هذه الخاصية عن طريق أجهزة الاستشعار عن بعد التي يتعين عليها نقل بياناتها عن طريق التشغيل فقط على بطارية صغيرة.
يمكن لـ LoRa عادة تحقيق مسافة 15-20 كم (سوف تتحدث أكثر عن هذا لاحقًا) ويمكن أن تعمل على البطارية لسنوات. تذكر أن LoRa و LoRaWAN و LPWAN هي ثلاثة مصطلحات مختلفة ويجب عدم الخلط بينها. سنناقشهم لفترة وجيزة في وقت لاحق من هذا المقال.
مفهوم LoRa التكنولوجيا
في أي حل إنترنت الأشياء نموذجي المقدمة لإدارة المستودعات أو الرصد الميداني ، سيكون هناك مئات من أجهزة الاستشعار التي تم نشرها في هذا المجال والتي سوف تراقب المعلمات الحيوية وإرسالها إلى العلبة للمعالجة. ولكن يجب أن تكون هذه المستشعرات لاسلكية وأن تعمل على بطارية صغيرة بحيث تكون محمولة. يمكن للحلول اللاسلكية مثل RF إرسال البيانات إلى مسافات طويلة ولكنها تتطلب طاقة أكبر للقيام بذلك وبالتالي لا يمكن تشغيل البطارية ، في حين أن BLE من ناحية أخرى يمكن أن تعمل مع القليل من الطاقة ولكن لا يمكن إرسال البيانات إلى مسافات طويلة. لذلك هذا هو ما يجلب الحاجة LoRa.
في LoRa ، يمكننا تحقيق اتصالات عالية المسافة دون استخدام الكثير من الطاقة ، وبالتالي التغلب على عيوب اتصال Wi-Fi و BLE. ولكن كيف يكون ذلك ممكنا؟ إذا كان هذا هو الحال لماذا لا تزال BLE و RF موجودة؟
ذلك لأن لورا يأتي مع عيوبه الخاصة. من أجل تحقيق مسافة عالية مع تنازلات منخفضة الطاقة LoRa على النطاق الترددي ، فإنه يعمل على نطاق ترددي منخفض للغاية. يبلغ الحد الأقصى لعرض النطاق الترددي لـ Lora حوالي 5.5 كيلو بايت في الثانية ، مما يعني أنك ستتمكن من إرسال كمية صغيرة فقط من البيانات عبر LoRa. لذلك ، لا يمكنك إرسال الصوت أو الفيديو من خلال هذه التكنولوجيا ، فهو يعمل بشكل رائع فقط لنقل معلومات أقل مثل قيم المستشعر. يوضح الرسم البياني أدناه مكان تواجد LoRa مقارنةً بأجهزة Wi-Fi و Bluetooth و Cellular.
يقارن العديد من الأشخاص LoRa مع Wi-Fi أو Bluetooth ، لكن هذين الاثنين لا يقفان في أي مكان بالقرب من LoRa. يتم استخدام تقنية Bluetooth لنقل المعلومات بين جهازين يعملان بتقنية Bluetooth ، كما يتم استخدام Wi-Fi لنقل المعلومات بين جهاز Access Point (جهاز التوجيه) و Station (Mobile). لكن تقنية LoRa لم يتم اختراعها بشكل أساسي لنقل البيانات بين وحدتي LoRa.
يمكنك أن تفكر في لورا لتكون أشبه الاتصالات الخلوية. تصل الإشارة من عقدة LoRa إلى عقدة أخرى من خلال بوابة LoRa كما هو موضح في الصورة أدناه.
ثم تنقل هذه العبارات المعلومات إلى الإنترنت وأخيراً إلى المستخدم النهائي من خلال واجهة التطبيق. وبالمثل ، ستصل البيانات من المستخدم إلى العقدة عبر خادم الشبكة والعبّارة.
تعمل عادةً LoRa Node على البطارية وتتكون من وحدة راديو ومعالج دقيق. يستخدم المعالج الدقيق لقراءة البيانات من المتحكم وإرسالها في الهواء من خلال وحدة راديو والتي سيتم التقاطها بعد ذلك من قبل بوابة LoRa. تحتوي LoRa Gateway أيضًا على وحدة راديو ومعالج دقيق ولكن يتم تشغيلها عادةً عبر أنابيب التيار المتردد نظرًا لأنها تحتاج إلى مزيد من الطاقة. يمكن لواجهة LoRa واحدة الاستماع إلى العديد من عقد LoRa ، بينما يمكن لعقدة LoRa الفردية أيضًا إرسال المعلومات إلى بوابات متعددة ، وبهذه الطريقة ، سيتم التقاط المعلومات من العقدة في البوابة بدون ضياعها. عندما يتم إرسال معرف المعلومات من العقدة إلى البوابة ، يتم استدعاؤه على أنه ارتباط صاعد وعندما يتم إرساله من البوابة إلى العقدة ، يتم استدعاؤه على أنه رابط لأسفل.
تندرج LoRa ضمن فئة LPWAN ، حيث تمثل LPWAN شبكة Low Power Wide Area Network. ليست فقط LoRa هي التي يمكنها تشغيل LPWAN ، ولكن لدينا أيضًا تقنيات أخرى مثل Narrow Band Io (NB-IOT) و Sigfox وما إلى ذلك التي يمكنها العمل في نفس LPWAN. بمجرد إدخال تقنية LoRa ، احتاجت إلى مجموعة معينة من البروتوكولات لكي تتبعها جميع المصنّعين ، لذا تم تشكيل تحالف LoRa والذي قام بعد ذلك بتقديم LoRaWAN. LoRaWAN هو شكل معدّل من LPWAN الذي يحدد بروتوكول كيفية استخدام LoRa في طبقة مادية لإرسال واستقبال البيانات بين العقد والبوابات والإنترنت.
LoRa SX1278 مع الأردوينو
تتيح النظرية الكافية أن نبنيها بأنفسنا ونفحص كيف تعمل. تذكر الجزء الذي أخبرتك فيه أن وحدتي LoRa لا يمكنهما التواصل مع بعضهما البعض؟ نعم ، لا يسمح بروتوكول LoRaWAN بالاتصال بين وحدتي LoRa ، لكن هناك تقنية تسمى طريقة حزمة Head Radio والتي تتبع بروتوكول LoRaWAN ولكنها تسمح لنا بالتواصل مع وحدتي LoRa باردتين تمامًا !!. لذلك دعونا نستخدم وحدتي LoRa واثنين من لوحات Arduino لإرسال البيانات من لوحة واحدة واستلامها من جهة أخرى. سوف نستخدم Arduino Uno في جانب جهاز الإرسال و Arduino Nano في جانب الاستقبال.
وحدة LoRa التي أستخدمها هنا هي SX1278 Ra-02 التي تعمل على 433 ميجا هرتز. تأتي وحدات LoRa في نطاقات تردد مختلفة ، وأكثرها شيوعًا هي 433 ميجا هرتز و 915 ميجا هرتز و 868 ميجا هرتز. سيتم ذكر التكرار الذي تعمل به الوحدة النمطية في الجزء الخلفي من الوحدة. كما يمكنك إما شراء LoRa كوحدة نمطية أو رقاقة فقط. إذا كنت تخطط للحصول على الشريحة فقط ، فتأكد من أن مهاراتك في اللحام جيدة حيث إنها مهمة حساسة تتمثل في توصيل الأسلاك إلى شريحة LoRa. لدي كل من الوحدة النمطية وشريحة إصدار ملحوم بالأسلاك كما هو موضح أدناه.
الشيء التالي المهم مع وحدة LoRa هو ال Antenna. تذكر أنه من الضروري تشغيل وحدة LoRa فقط مع Antenna، وإلا فإن قدرة إرسال الخرج ستضر بالوحدة.
التوصيل:
بالنسبة لجانب الإرسال ، سنستخدم Arduino UNO مع وحدة LoRa الخاصة بنا. يظهر الرسم التخطيطي التوصيل بين Arduino UNO و LoRa .
تكون وحدة LoRa من 16 دبوسًا مع 8 دبابيس على كل جانب. من بين هذه المسامير الستة عشر ، يتم استخدام ستة مسامير بواسطة مسامير GPIO التي تتراوح من DIO0 إلى DIO5 ، بينما يتم استخدام أربعة مسامير بواسطة المسامير الأرضية. تعمل الوحدة في 3.3 فولت ، وبالتالي يتم توصيل دبوس 3.3V على LoRa بالدبوس 3.3v على لوحة Arduino UNO. ثم نقوم بتوصيل دبوس SPI على LoRa بدبابيس SPI على لوحة Arduino كما هو موضح أعلاه.
لقد استخدمت أسلاك التوصيل لإجراء اتصال بين Arduino UNO و LoRa Module. يبدو الإعداد مثل هذا الموضح أدناه. يمكن تشغيل الجهاز بالكامل بواسطة Power Bank لجعله محمولًا لاختبار النطاق.
بالنسبة لجهاز الاستقبال ، سوف نستخدم Arduino Nano مع وحدة LoRa. يمكنك استخدام أي لوحة Arduino لديك لجهاز الإرسال والاستقبال ، ولكن تأكد من توصيلها وفقًا لذلك. يظهر الرسم التخطيطي للربط بين Arduino Nano و LoRa .
تبقى الاتصالات كما هي تقريبًا باستثناء تغيير بسيط واحد. لا يتم تشغيل دبوس 3.3V من وحدة LoRa بواسطة Arduino Nano ولكن مع منظم خارجي 3.3V. وذلك لأن المنظم على متن Arduino Nano لا يمكنه توفير ما يكفي من التيار لوحدة LoRa للعمل. بخلاف هذا الاتصالات لا تزال هي نفسها.
لقد قمت بالاتصال على اللوح واستخدمت مصدر طاقة اللوح القديم المضمون الذي أنشأناه مسبقًا. لاحظ أيضًا أن وحدات LoRa التي استخدمتها ليست سهلة الاستخدام ، وبالتالي فقد استخدمت لوحين صغيرين لإجراء الاتصالات كما هو موضح أدناه.
إعداد Arduino IDE للاتصالات اللاسلكية LoRa
بمجرد أن يصبح الجهاز جاهزًا ، يمكننا الانتقال إلى Arduino IDE. للعمل مع وحدة LoRa باستخدام Arduino ، لدينا بالفعل مكتبة LoRa جيدة التصميم من Sandeep Mistry. في هذه المقالة ، سنقوم فقط بتضمين المكتبة إلى Arduino IDE الخاصة بنا واستخدام الرسومات الأولية مع تعديلات طفيفة لجعل وحدات LoRa الخاصة بنا تتواصل فيما بينها.
لإضافة المكتبة ، افتح Arduino IDE واتبع Sketch -> Include Library -> Manage Libraries. ثم ابحث عن “LoRa Radio” وابحث عن المكتبة التي صنعتها Sandeep Mistry وانقر فوق “install“. انتظر حتى يكتمل التثبيت وسترى شيءًا كهذا في النهاية.
أعد تشغيل Arduino IDE الآن وافتح برنامج LoRa Example باستخدام File -> Example -> LoRa ثم افتح كلا من LoRa Receiver و LoRa Sender Program كما هو موضح أدناه.
يتم تقديم كلا البرنامجين أيضًا في أسفل الصفحة للرجوع اليها. البرنامج الكامل هو النفس التفسيرية. يرسل برنامج المرسل “مرحبًا” لكل 5 ثوانٍ مع زيادة قيمة العداد. المتلقي ثم يتلقى هذا ويطبع على الشاشة التسلسلية مع قيمة آر إس إس آي.
سطر مهم حيث يجب إجراء التغيير هو الدالة LoRa.begin (). بشكل افتراضي ، يحتوي البرنامج على “LoRa.begin (915E6)” مما يعني أنه يعين وحدة LoRa للعمل على 915 ميجا هرتز. لا بأس إذا كانت الوحدة النمطية الخاصة بك بالفعل 915 ميجا هرتز ، ولكن تعمل هنا على تردد 433 ميجا هرتز كما قلت سابقًا ، لذلك يتعين عليك تغييرها كما هو موضح أدناه
LoRa.begin (433E6)
وبالمثل ، يجب تغيير التردد في برنامج الاستقبال أيضًا. بمجرد أن يكون البرنامج جاهزًا ، قم بتحميل البرنامج على اللوحات المعنية بعد التأكد من صحة الاتصالات وتوصيل الهوائي بوحدة LoRa.
الاتصالات اللاسلكية لـ LoRa مع الأردوينو
بمجرد تحميل البرنامج ، افتح الشاشة التسلسلية لكل من لوحات Arduino. يجب أن تُظهر الشاشة التسلسلية للمرسل القيمة التي يتم إرسالها أثناء استقبالها له على الشاشة التسلسلية. يجب أن تبدو الشاشة مثل هذا.
يجب أن تلاحظ أيضًا قيمة RSSI لكل رسالة تتلقاها وحدة LoRa. يشير مصطلح RSSI إلى مؤشر قوة الإشارة المستلمة. ستكون القيمة دائماً سالبة ، وفي حالتنا تكون حول -68. كلما كانت هذه القيمة أقرب إلى الصفر ، كلما كانت قوة الإشارة لديك أقوى. على سبيل المثال ، إذا قمت بنقل الجهازين عن بُعد ، فإن قوة الإشارة ستنخفض.
مع هذا الإعداد ، تمكنت من تلقي إشارة لحوالي 500 متر مع وجود عقبات بينهما. يجب أن تكون القيمة عالية بتواصل خط البصر وهوائيات أفضل.
التعليمات البرمجية:
انقر هنا لتحميل التعليمات البرمجية.