
يوضح هذا المثال كيف يمكن استخدام AVR64DD32 لإنشاء عقدة نهاية Lorawan التي تراقب درجة الحرارة والرطوبة والضغط البارومتري ورطوبة التربة وتنقل تلك البيانات كل ثلاث دقائق إلى التطبيق عبر شبكة الأشياء (TTN). يمكن وضع العقدة في أي مكان ما بين عشرة أمتار وخمسة كيلومترات من بوابة لوروان في البيئات الحضرية ، ولكن النطاق أوسع بالنسبة لمواقع الضواحي. يوضح التصميم كيف يمكن تكوين عقدة نهاية ، حتى على المدى الطويل ، لاستهلاك الطاقة المنخفضة للغاية/تتمتع بعمر بطارية طويل ، مع نقل بيانات قيمة بشكل آمن. يمكن تحجيم هذا التصميم بسهولة لتمكين التقاط بيانات تقلب التربة عن طريق وضع العقد الإضافية في جميع أنحاء قطعة زراعية دون الحاجة إلى إضافة بوابات إضافية أو بنية تحتية.
يستخدم هذا العرض التوضيحي وحدة RN2903A التي تعمل على نطاق تردد 915 MHz وهي مناسبة للمشاريع المتمثلة في الولايات المتحدة وأستراليا ، ولكن يتم تكييف المشروع بسهولة للعمل في مناطق أخرى عن طريق اختيار بديل نقرة للوحة ™ و Gateway لمنطقتك.
أضف المكونات إلى لوحة محول نانو.
ضع LR2 انقر فوق Mikrobus ™ 2 والنقر فوق Mikrobus 1.
قم بتوصيل مستشعر الرطوبة كما هو موضح في الشكل 1.
أخيرًا ، أضف سلك الطائر بين (PA1) و PD1 للسماح بإعادة ضبط نقرة LR2. (PA1) غير متصل افتراضيًا (نظرًا لأنه متصل بالفعل بساعة خارجية) ، ونتيجة لذلك ، يتيح هذا المشروع دبوس PD1 لدفع إشارة إعادة التعيين.
| سلك الطائر | دبوس |
|---|---|
| VCC - سلك أحمر من مستشعر الرطوبة | VCC |
| GND - سلك أسود من مستشعر الرطوبة | GND |
| Aout - سلك أصفر من مستشعر الرطوبة | PD2 |
| (PA1) - ضع الطائر بين | PD1 |

الشكل 1. إعداد الأجهزة

الشكل 2. افتح المشروع في mplab x
بمجرد فتح المشروع ، ابدأ بمعايرة المستشعرات.
لمعايرة مستشعر الرطوبة ، افتح ملف application.c ، وقم بتغيير الحالة الأولية إلى TEST_MOISTURE .

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

الشكل 4. مستشعر في الهواء الجاف
ابدأ مرشح البيانات مع الإعدادات التالية:
معدل باود: 9600
طول شار: 8 بتات
التكافؤ: لا شيء
توقف بت: 1
انقر فوق إرسال إلى Terminal ، ثم قم ببرمجة الجهاز وبرمجه.

الشكل 5. إرسال مرور البيانات إلى المحطة

الشكل 6. جعل الجهاز وبرمجه
بمجرد بدء البرنامج ، سيُطلب منك الضغط على الزر لإنشاء محول تمثيلي إلى رقمي (ADC). اضغط على الزر عدة مرات مع المستشعر في الهواء الجاف ، ثم ضع المستشعر كوبًا من الماء واضغط على الزر عدة مرات.
يوضح الشكل 7 قراءتين. عند جمع عينات الهواء الجاف ، تكون قراءة ADC قريبة من 3000. عند جمع عينات المياه ، تكون القراءة قريبة من 1400.

الشكل 7. قيم ADC في الهواء الجاف وفي كوب من الماء
لاحظ نتائجك وافتح ملف application.h . استبدل التعريفات لـ IN_MAX و IN_MIN باستخدام نتائجك ، ثم استخدم هذه القيم لحساب CONVERSION_PERCENT باستخدام الصيغة الموضحة.

الشكل 8. تعريفات رطوبة التربة
هناك حاجة إلى تغيير صغير واحد فقط لمعايرة نقرة الطقس ؛ يتم الاعتناء بالباقي في البرامج. للحصول على قراءة دقيقة للضغط ، يحتاج الجهاز إلى استخدام الارتفاع الحالي فوق مستوى سطح البحر. أدخل هذه القيمة على السطر 24 من ملف bme.h

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

الشكل 10. إعداد التطبيق
انقر فوق زر إنشاء التطبيق واتبع التعليمات لإنشاء تطبيق.

الشكل 11. إنشاء التطبيق
انقر على تنسيقات الحمولة النافعة ثم على الوصلة الصاعدة .

الشكل 12. تنسيق حمولة الوصلة الصاعدة
ضمن نوع التنسيق الإعداد*، حدد مخصص جافا سكريبت.

الشكل 13. حدد مخصص جافا سكريبت
استبدل وظيفة decodeUplink الافتراضية مع المقتطف التالي:
function decodeUplink ( input ) {
var data = { } ;
data . temp = input . bytes [ 0 ] ;
data . humidity = input . bytes [ 1 ] ;
data . moisture = input . bytes [ 2 ] ;
data . pressure = ( input . bytes [ 3 ] + 900 ) ;
return {
data : data
} ;
}الشكل 14. فك شفرة رمز الوصلة الصاعدة
انقر فوق حفظ وأرجع إلى صفحة نظرة عامة.
من صفحة نظرة عامة على التطبيق ، انقر فوق الزر Record end Device .

الشكل 15. تسجيل جهاز نهائي لـ OTAA
لتسجيل الجهاز ، هناك حاجة إلى بعض التفاصيل من الوحدة النمطية. افتح ملف application.c مرة أخرى وقم بتغيير الحالة للتسجيل.

الشكل 16. تغيير الدولة للتسجيل
ابدأ مرور البيانات وبناء وبرمجة الجهاز مرة أخرى. عند تشغيل البرنامج ، انسخ HWEUI ولاحظ مواصفات Lorawan.

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

الشكل 18. تسجيل جهاز جديد
الصق HWEUI الذي قمت بنسخه في وقت سابق إلى حقل Deveui ثم انقر فوق إنشاء لإنشاء AppKey جديد.

الشكل 19. إنشاء appkey جديد
يتم الآن إنشاء الجهاز النهائي وسيحتاج إلى تنسيق حمولة.
أسرع طريقة لإعداد التنسيق هي استخدام زر تنسيق تطبيق Paste . انقر فوق الزر "تنسيق الحمولة" ، ثم حدد خيار جافا سكريبت المخصص ، واضغط على تطبيق تطبيق Paste .

الشكل 20. لصق تطبيق التطبيق
على TTN ، افتح صفحة نظرة عامة على الجهاز النهائي ، هناك حقلان لنسخ ولصق في ملف رأس RN2XX3 للمشروع. انقر فوق deveui ولصقه في حقل HWEUI في تعريف RN2xx3.h . انسخ حقل AppKey ولصقه في تعريف AppKey.

الشكل 21. انسخ deveui و Appkey إلى الحافظة

الشكل 22. قم بتحديث تعريفات HWEUI و AppKey
يفترض هذا المثال أن لديك بوابة TTN العامة بالقرب منك ، أو قمت بإعداد واحد بنفسك. يعد امتلاك بوابةك الخاصة مفيدًا للغاية لاستكشاف الأخطاء وإصلاحها إذا واجهت مشكلات. إذا كنت ترغب في إعداد البوابة الخاصة بك ، فيمكن العثور على دليلان مفيدون على: Hackster Project و Rak Developer Gateway.
بمجرد الوصول إلى بوابة ، تابع الاختبار عن طريق فتح ملف application.c مرة أخرى وتغيير الحالة مرة أخرى إلى init.

الشكل 23. التغيير مرة أخرى إلى init
ابدأ مرور البيانات مرة أخرى وأعد برمجيات الجهاز.

الشكل 24. ابدأ مرور البيانات
عندما يبدأ التطبيق ، سيتم تهيئة الوحدات النمطية. اضغط على الزر لبدء إجراء Join TTN.
سيستغرق إنشاء خطة تردد القناة حوالي عشر ثوانٍ. بعد ذلك ، إذا تم قبول طلب الانضمام ، فسيقوم الجهاز بإرسال حمولةه الأولى. إذا لم يتصل الجهاز ، فسيتم تقديم بعض الاقتراحات. المشكلات الشائعة تكون قريبة جدًا من بوابة ، أو مفاتيح غير صحيحة ، أو قد تكون البوابة قد تم فصلها مؤقتًا. عادة ، يجب أن ترى ناتجًا مثل الناتج في الشكل 25.

الشكل 25. الإخراج عند قبول طلب الانضمام
لهذا المشروع ، ترسل العقدة بيانات جديدة كل ثلاث دقائق. مرة واحدة يوميًا ، يرسل البيانات كحمولة مؤكدة كما في هذا الإرسال الأول. تتطلب الرسائل المؤكدة إقرارًا من الشبكة ، ولكنها تستهلك أيضًا وقت البث على البوابة وعمر بطارية إضافي للعقدة. لذلك يتم إرسال رسائل 479 التالية كل يوم كرسائل غير مؤكدة.
يرسل هذا المشروع جميع الرسائل المؤكدة على المنفذ 10 والرسائل غير المؤكدة في المنفذ 11. يمكنك أن ترى في الشكل 26 أدناه إظهار نافذة البيانات المباشرة للتطبيق ، بعد الانضمام إلى رسالة مؤكدة أولية ، ترسل العقدة لاحقًا رسالة غير مؤكدة إلى التطبيق كل ثلاث دقائق.

الشكل 26. الرسائل المؤكدة على المنفذ 10 والرسائل غير المؤكدة على المنفذ 11
يوضح هذا المثال كيفية إعداد عقدة LoRawan End باستخدام AVR64DD32 بنقرة Mikroe LR2 ، ونقرة الطقس Mikroe ومستشعر رطوبة التربة لتبادل ظروف التربة على المدى الطويل باستخدام الطاقة المنخفضة.