TTN MKRWAN NODE
خلفية
دليل على مفهوم "LoRawan" LoRawan "Ultra Low Power" باستخدام عقدة شبكة الأشياء باستخدام Arduino MKR WAN 1300.
يستخدم MKR WAN 1300 الكثير من الطاقة في وضع النوم لاستخدامه كجهاز طاقة منخفض للغاية (أكثر من 1 مللي أمبير).
يستخدم هذا الإثبات للمفهوم جهاز TPL5110 Ultra Low Power Timer لجلب تيار النوم تحت 50NA.
نظرًا لأن الجهاز يتم تشغيله بالكامل أثناء وقت النوم ، فإننا نستخدم وحدة Frampule لحفظ مفاتيح جلسة Lorawan وعدادات الإطار.
عقدتان اختبار:
أعلى اليسار: عرض مستشعر درجة حرارة Maxim و Maxim DS18B20
أسفل اليسار: Bosch BME280 درجة حرارة الرطوبة ومستشعر الضغط

أعلى يمين: تيار النوم
أسفل اليمين: تشغيل التيار (العقدة مع الشاشة)
نظرية العملية
- TPL5110 يستيقظ ويستيقظ على MKR WAN 1300
- قراءة البيانات المحفوظة من Fram
- انضم إلى الشبكة
- OTAA في المرة الأولى (لا توجد بيانات في Fram)
- ABP باستخدام مفاتيح الجلسة المحفوظة وعدادات الإطار بعد ذلك
- جمع البيانات من أجهزة الاستشعار
- أرسل حمولة Lorawan بتنسيق Cayenne LPP
- تحقق من الحصول على رسالة الوصلة الهابطة
- أدخل وضع السكون (ارفع دبوس تم القيام به من TPL5110)
متطلبات الأجهزة
يعتمد الرمز على الأجهزة التالية:
- Arduino MKR WAN 1300 - البرامج الثابتة 1.1.7 أو الأحدث
- TPL5110 الاختراق
- Fram Breakout
- أجهزة استشعار ، رمز عينة المقدمة لـ
- جهد البطارية (باستخدام المقسم المدمج)
- مستشعر درجة حرارة Maxim DS18B20 (سلك واحد)
- Bosch BME280 مستشعر ضغط الرطوبة في درجة الحرارة
- خياري
- SH1106 128x64 عرض I2C للتصحيح
- زر لإجبار إعادة التعيين (انضمام OTAA) في وقت التمهيد
يجب أن تعمل أي أجهزة مماثلة ، ولكن قد تحتاج إلى تغيير رمز.
تبعيات البرمجيات
IDE Arduino مع المكتبات التالية (جميعها متوفرة من مدير مكتبة Arduino):
- Arduino Mkrwan الإصدار 1.1.7 أو الأحدث
- Adafruit Fram (إصدار SPI)
- الإصدار thethingsnetwork 2.5.13 أو الأحدث ( وليس 2.5.12!)
- لمستشعر BME280
- مستشعر adafruit الموحد
- Adafruit BME280
- لمستشعر Maxim DS18B20
- onewire
- dallastemperature
- للعرض الاختياري: U8G2
إعداد العينة
إعداد عينة مع شاشة OLED SH1106 ومستشعر DS18B20:

العمليات
تكوين البرنامج
- نسخ
arduino_secrets_distr.h إلى arduino_secrets.h وأدخل مفاتيحك التي تم الحصول عليها من Thethingsnetwork Console - في
TTNMkrWanNode UNFINGMENT يحدد أجهزة الاستشعار الخاصة بك.
مستشعر الجهد متاح دائمًا ، ويستخدم المقسم المدمج. لاحظ أن Givent حقيقة أن المقسم هو 1/3 ومرجع الجهد هو 1.0 فولت ، والأقصى الذي يمكنك قياسه هو 3.0 فولت ... - في
debug.h اختر خيار التصحيح الخاص بك:-
#define DEBUG علق: لم يتم إنشاء رمز تصحيح الأخطاء -
#define DEBUG غير المعتمدة: تصحيح على وحدة التحكم التسلسلية (USB). العقدة سوف تنتظر وحدة التحكم! -
#define DEBUG و #define OLED Unneded: Debug Imples on the OLED Display.
- في
ttn.h يمكنك ضبط منفذ LoRawan الافتراضي ومعدل البيانات الخاص بك
قوة
افصل الطاقة القادمة من TPL5110 (DRV) عند التشغيل من USB.
التهيئة
إذا لم يحتوي FRAM على بيانات صالحة أو إذا تم الضغط على الزر عند بدء تشغيل MKR WAN 1300 ، فسيقوم الجهاز بإجراء JOIN OTAA.
رسائل الوصلة الهابطة
قبل النوم ، سوف تحقق العقدة من رسالة الوصلة الهابطة:
- 0x01: إعادة تعيين. ستقوم العقدة بانضمام OTAA خلال الدورة التالية
- 0x02 0xPP: Set Port. ستستخدم العقدة Port
pp عند إرسال البيانات - 0x03 0xDD: تعيين معدل البيانات. ستستخدم العقدة معدل البيانات المطلوب.
وقت النوم
- عند تشغيله من USB ، ستعمل العقدة على الخمول لمدة 5 دقائق ثم إعادة ضبط نفسها
- عندما يتم تشغيله من خلال TPL5110 ، يكون وقت النوم مدفوعًا بمقاوم (على قشر Adafruit ، يمكنك استخدام Trimpot على اللوحة)