يوضح برنامج 1NCE FreeRTOS BluePrint استخدام بروتوكولات إنترنت الأشياء المختلفة بما في ذلك CoAP وLwM2M وUDP مع الاتصال الخلوي. يعرض هذا المستودع أمثلة على دمج 1NCE SDK للاستفادة من أدوات نظام التشغيل 1NCE، مثل مصادقة الجهاز وميزات توفير الطاقة، باستخدام (مكتبة Wakaama LWM2M).
يوفر هذا المستودع أمثلة على البروتوكولات التالية:
يتضمن كل عرض توضيحي ميزة توفير الطاقة الاختيارية التي يمكن تمكينها للاختبار.
يحتوي مجلد الثنائيات على ثنائيات معدة مسبقًا لتطبيقات UDP وCoAP التجريبية.
قم بتكوين ميزة توفير الطاقة في نظام التشغيل 1NCE
باستخدام هذا القالب.
قم بتوصيل لوحة P-L496G-CELL02
عند الاتصال عبر USB، يجب أن تظهر اللوحة كمحرك تخزين على جهاز الكمبيوتر الخاص بك.
فلاش الثنائي
ما عليك سوى سحب وإسقاط الملف الثنائي المطلوب من مجلد Binaries
على محرك التخزين. ستقوم اللوحة تلقائيًا بوميض الملف الثنائي.
ملاحظة: في حالة فشل الوميض، راجع الوميض باستخدام STM32CubeProgrammer.
عرض السجلات التجريبية
استخدم Serial Monitor في Visual Studio Code لعرض السجلات التجريبية.
يلزم ترقية البرنامج الثابت لـ STLink. يتضمن المكون الإضافي STM32 VSCode زرًا لهذا، ولكن إذا لم يعمل، فيمكن بدء الترقية يدويًا عن طريق تشغيل ملف .bat
من مجلد STM32 المثبت: ST/STM32CubeCLTxx/STLinUpgrade.bat
يرجى التأكد من أن مودم BG96 الخاص بك يحتوي على أحدث إصدار من البرامج الثابتة. يمكنك تنزيل حزمة تحديث البرنامج الثابت والتعليمات من (صفحة ST's X-Cube Cellular) (يوصى بالإصدار 6.0.0).
لتفليش المودم، يمكن الآن تنزيل أداة QFlash من موقع Quectel الرسمي: (تنزيل QFlash (V7.1))
لتكوين العرض التوضيحي الذي ترغب في استخدامه، قم بتعديل ملف nce_demo_config.h
الموجود في Application/Config/
: (افتراضيًا CONFIG_COAP_DEMO_ENABLED
)
CONFIG_COAP_DEMO_ENABLED
CONFIG_UDP_DEMO_ENABLED
CONFIG_LwM2M_DEMO_ENABLED
يتيح 1NCE FreeRTOS BluePrint للعملاء التواصل مع نقاط نهاية 1NCE عبر UDP واستخدام جميع الميزات كجزء من نظام التشغيل 1NCE.
Application/Config/nce_demo_config.h
#define CONFIG_UDP_DEMO_ENABLED
#define CONFIG_UDP_DATA_UPLOAD_FREQUENCY_SECONDS 60
يتيح 1NCE FreeRTOS BluePrint للعملاء التواصل مع نقاط نهاية 1NCE عبر CoAP واستخدام جميع الميزات كجزء من نظام التشغيل 1NCE.
طلب COAP POST: في هذا القسم، يتم تنفيذ الخطوات التالية:
سجل في الشبكة.
تنفيذ قرار DNS.
إنشاء مأخذ توصيل والاتصال بالخادم
إنشاء منشور CoAP قابل للتأكيد مع خيار الاستعلام
إنشاء تفاعل العميل وتحليل الاستجابة (ACK)
التحقق من صحة الرد.
قم بإعداد مشغل العرض التوضيحي في الملف Application/Config/nce_demo_config.h
#define CONFIG_COAP_DEMO_ENABLED
#define CONFIG_COAP_URI_QUERY "t=test"
#define CONFIG_COAP_DATA_UPLOAD_FREQUENCY_SECONDS 60
#define CONFIG_NCE_ENERGY_SAVER
بالنسبة لدعم DTLS، يكون المنفذ الافتراضي هو 5684 ويقوم تلقائيًا بتعريف ENABLE_DTLS
كتعريف إضافي
ينفذ CoAP DTLS 3 مهام رئيسية من 1NCE IoT C SDK:
يتم توفير دعم LWM2M باستخدام مكتبة Eclipse Wakaama التي تتواصل مع خادم Leshan LWM2M. يسمح هذا الوضع للجهاز بالعمل كعميل LwM2M، مما يسهل الاتصال بخادم LwM2M لحالات الاستخدام مثل إدارة الجهاز وتحديثات البرامج الثابتة وجمع بيانات المستشعر. افتراضيًا، يقوم العميل بالتسجيل مع خادم 1NCE LwM2M، ويتم ضمان الاتصال الآمن عبر دعم DTLS الاختياري.
#define CONFIG_LwM2M_DEMO_ENABLED
تعتبر المعلمات التالية ضرورية لتمكين وتخصيص وضع العميل LwM2M في المخطط:
#define LWM2M_ENDPOINT "lwm2m.os.1nce.com"
#define LWM2M_CLIENT_MODE
#define LWM2M_BOOTSTRAP
#define LWM2M_SUPPORT_SENML_JSON
#define LWM2M_SUPPORT_JSON
#define LWM2M_LITTLE_ENDIAN
#define LWM2M_SUPPORT_TLV
#define LWM2M_COAP_DEFAULT_BLOCK_SIZE 1024
#define LWM2M_SINGLE_SERVER_REGISTERATION
#define LWM2M_OBJECT_SEND "/3/0"
#define CONFIG_NCE_ICCID ""
#define CONFIG_LWM2M_BOOTSTRAP_PSK ""
تتوفر ميزة توفير الطاقة لكل من العروض التوضيحية لـ UDP وCoAP. فهو يسمح للمستخدمين بتحسين استهلاك طاقة الجهاز عند الاتصال بنقاط نهاية 1NCE.
لتمكين ميزة توفير الطاقة، قم بإضافة العلامة التالية في nce_demo_config.h
:
#define CONFIG_NCE_ENERGY_SAVER
ملاحظة: لاستخدام ميزة توفير الطاقة للعروض التوضيحية لـ UDP وCoAP، تأكد من تطبيق قالب الترجمة الصحيح في نظام التشغيل 1NCE. والبروتوكول الصحيح المحدد والقالب المستخدم.
وحدة التحكم في الجهاز عبارة عن واجهة برمجة تطبيقات تتيح لك التفاعل مع الأجهزة المدمجة في واجهة برمجة تطبيقات 1NCE. يمكنك استخدام واجهة برمجة التطبيقات هذه لإرسال الطلبات إلى الأجهزة، وستستجيب الأجهزة وفقًا لذلك. لمزيد من التفاصيل، يمكنك زيارة DevHub الخاص بنا
لإرسال طلب إلى جهاز معين، يمكنك الرجوع إلى وثائقنا في 1NCE DevHub
للتعامل مع الطلب الوارد من واجهة برمجة تطبيقات 1NCE، يلزم تكوين معلمات معينة Application/Config/nce_demo_config.h
/* C2D Parameters */
/* This port is used for both UDP and CoAP communication. */
#define NCE_RECV_PORT 3000
#define NCE_RECEIVE_BUFFER_SIZE_BYTES 200
NCE_RECV_PORT
: هذا هو رقم المنفذ الذي سيستمع فيه جهازك للطلبات الواردة. يجب أن يتطابق مع معلمة المنفذ المستخدمة في الطلب.NCE_RECEIVE_BUFFER_SIZE_BYTES
: هذا هو حجم المخزن المؤقت الذي سيتم استخدامه لتلقي البيانات الواردة من واجهة برمجة تطبيقات 1NCE.ملاحظة: يتم دعم C2D (من السحابة إلى الجهاز) لجميع البروتوكولات الثلاثة: UDP وCoAP وLwM2M. تم دمج عميل LwM2M بإحكام مع طلبات C2D، وبالنسبة لـ UDP وCoAP، يتم أيضًا فتح منفذ الخلفية للاتصال C2D.
إذا كان الجهاز يتصل بشبكات 2G فقط أو كان غير قادر على الاتصال في بعض المناطق، فقد تحتاج إلى ضبط RAT (تقنية الوصول إلى الراديو) وإعدادات النطاق في Application/Config/nce_demo_config.h
:
#define CELLULAR_CONFIG_DEFAULT_RAT 8 // Example for CAT M1
#define CELLULAR_CONFIG_DEFAULT_RAT_2 0 // Example for GSM
#define CELLULAR_CONFIG_DEFAULT_RAT_3 9 // Example for NBIOT
#define CUSTOM_BAND_BG96 "AT+QCFG="band",F,80004,80008" // Example for Germany CATM1
// Values
/**
* The GSM RATs network 0
* The CAT M1 RATs network 8
* The NBIOT RATs network 9
**/
لمزيد من التفاصيل حول إعدادات النطاق، راجع دليل أوامر BG96 AT.
يمكن تعيين إسهاب السجلات عن طريق تعريف الماكرو LIBRARY_LOG_LEVEL
في الملف Core/Inc/iot_config.h
. يتحكم هذا الإعداد في مستوى تفاصيل التسجيل لأغراض تصحيح الأخطاء واستكشاف الأخطاء وإصلاحها.
مستويات السجل المتوفرة لـ LIBRARY_LOG_LEVEL
هي:
IOT_LOG_NONE
: تعطيل كافة عمليات التسجيل. IOT_LOG_ERROR
: تمكين رسائل الخطأ فقط. IOT_LOG_WARN
: تمكين التحذيرات والأخطاء. IOT_LOG_INFO
: تمكين الرسائل الإعلامية والتحذيرات والأخطاء. IOT_LOG_DEBUG
: تمكين معلومات التصحيح التفصيلية والتحذيرات والأخطاء والرسائل الإعلامية.
تكوين المثال في iot_config.h
:
#define LIBRARY_LOG_LEVEL IOT_LOG_DEBUG
يقوم هذا التكوين بإخراج كافة معلومات التصحيح، وهو أمر مفيد أثناء التطوير أو استكشاف الأخطاء وإصلاحها.
التواصل الأكثر فعالية مع فريقنا هو من خلال GitHub. ما عليك سوى إنشاء عدد جديد والاختيار من بين مجموعة من القوالب التي تغطي تقارير الأخطاء أو طلبات الميزات أو مشكلات التوثيق أو الأسئلة العامة.