1NCE FreeRTOS BluePrint สาธิตการใช้งานโปรโตคอล IoT ต่างๆ รวมถึง CoAP, LwM2M และ UDP พร้อมการเชื่อมต่อเซลลูลาร์ พื้นที่เก็บข้อมูลนี้แสดงตัวอย่างที่ผสานรวม 1NCE SDK เพื่อใช้ประโยชน์จากเครื่องมือระบบปฏิบัติการ 1NCE เช่น การตรวจสอบอุปกรณ์และคุณสมบัติการประหยัดพลังงาน โดยใช้ (ไลบรารี Wakaama LWM2M)
พื้นที่เก็บข้อมูลนี้มีตัวอย่างของโปรโตคอลต่อไปนี้:
การสาธิตแต่ละรายการมีคุณสมบัติ เสริมประหยัดพลังงาน ที่สามารถเปิดใช้งานสำหรับการทดสอบได้
โฟลเดอร์ไบนารีประกอบด้วยไบนารีที่สร้างไว้ล่วงหน้าสำหรับแอปพลิเคชันสาธิต UDP และ CoAP
กำหนดค่าคุณสมบัติประหยัดพลังงานในระบบปฏิบัติการ 1NCE
การใช้เทมเพลตนี้
เชื่อมต่อบอร์ด P-L496G-CELL02
เมื่อเชื่อมต่อผ่าน USB บอร์ดควรปรากฏเป็นไดรฟ์จัดเก็บข้อมูลบนคอมพิวเตอร์ของคุณ
แฟลชไบนารี่
เพียงลากและวางไฟล์ไบนารีที่ต้องการจากโฟลเดอร์ Binaries
ไปยังไดรฟ์จัดเก็บข้อมูล บอร์ดจะแฟลชไบนารี่โดยอัตโนมัติ
หมายเหตุ: หากการแฟลชล้มเหลว โปรดดูการแฟลชโดยใช้ STM32CubeProgrammer
ดูบันทึกการสาธิต
ใช้การตรวจสอบแบบอนุกรมในรหัส Visual Studio เพื่อดูบันทึกการสาธิต
จำเป็นต้องอัพเกรดเฟิร์มแวร์ STLink ปลั๊กอิน STM32 VSCode มีปุ่มสำหรับสิ่งนี้ แต่หากไม่ได้ผล คุณสามารถเริ่มการอัปเกรดได้ด้วยตนเองโดยการเรียกใช้ไฟล์ .bat
จากโฟลเดอร์ STM32 ที่ติดตั้งไว้: ST/STM32CubeCLTxx/STLinUpgrade.bat
โปรดตรวจสอบให้แน่ใจว่าโมเด็ม BG96 ของคุณมีเฟิร์มแวร์เวอร์ชันล่าสุด คุณสามารถดาวน์โหลดแพ็คเกจอัพเดตเฟิร์มแวร์และคำแนะนำได้จาก (หน้า X-Cube Cellular ของ ST) (แนะนำเวอร์ชัน 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 POST ที่ยืนยันได้พร้อมตัวเลือกแบบสอบถาม
สร้างการโต้ตอบกับลูกค้าและวิเคราะห์การตอบสนอง (ACK)
ตรวจสอบการตอบกลับ
ตั้งค่า Demo runner ในไฟล์ 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 และโปรโตคอลที่ถูกต้องที่เลือกและเทมเพลตที่ใช้
Device Controller คือ API ที่ช่วยให้คุณสามารถโต้ตอบกับอุปกรณ์ที่รวมอยู่ใน 1NCE API คุณสามารถใช้ API นี้เพื่อส่งคำขอไปยังอุปกรณ์ และอุปกรณ์จะตอบสนองตามนั้น สำหรับรายละเอียดเพิ่มเติม คุณสามารถเยี่ยมชม DevHub ของเรา
หากต้องการส่งคำขอไปยังอุปกรณ์เฉพาะ โปรดดูเอกสารประกอบของเราใน 1NCE DevHub
ในการจัดการคำขอขาเข้าจาก 1NCE API จำเป็นต้องมีการกำหนดค่าพารามิเตอร์บางตัว 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 APIหมายเหตุ: รองรับ C2D (Cloud to Device) สำหรับทั้งสามโปรโตคอล: 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 เพียงสร้างปัญหาใหม่และเลือกจากเทมเพลตที่หลากหลายซึ่งครอบคลุมรายงานข้อบกพร่อง คำขอคุณสมบัติ ปัญหาเอกสารประกอบ หรือคำถามทั่วไป