1NCE FreeRTOS BluePrint демонстрирует использование различных протоколов Интернета вещей, включая CoAP, LwM2M и UDP, с сотовой связью. В этом репозитории представлены примеры интеграции 1NCE SDK для использования инструментов ОС 1NCE, таких как аутентификация устройств и функции энергосбережения, с использованием (библиотеки Wakaama LWM2M).
В этом репозитории представлены примеры следующих протоколов:
Каждая демонстрационная версия включает дополнительную функцию энергосбережения , которую можно включить для тестирования.
Папка Binaries содержит предварительно созданные двоичные файлы для демонстрационных приложений UDP и CoAP.
Настройте функцию энергосбережения в ОС 1NCE
Используя этот шаблон.
Подключите плату P-L496G-CELL02.
При подключении через USB плата должна отображаться на вашем компьютере как накопитель.
Прошить двоичный файл
Просто перетащите нужный двоичный файл из папки Binaries
на накопитель. Плата автоматически прошьет двоичный файл.
Примечание. Если прошивка не удалась, обратитесь к разделу «Прошивка с помощью STM32CubeProgrammer».
Просмотр журналов демонстрации
Используйте последовательный монитор в Visual Studio Code для просмотра демонстрационных журналов.
Требуется обновление прошивки STLink. В плагине STM32 VSCode есть кнопка для этого, но если она не работает, обновление можно запустить вручную, запустив файл .bat
из установленной папки STM32: ST/STM32CubeCLTxx/STLinUpgrade.bat
Убедитесь, что на вашем модеме BG96 установлена последняя версия прошивки. Пакет обновления прошивки и инструкции можно загрузить со страницы X-Cube Cellular компании ST (рекомендуется версия 6.0.0).
Для прошивки модема инструмент QFlash теперь можно скачать с официального сайта Quectel: (QFlash Download (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.
Создайте сокет и подключитесь к серверу
Создать подтверждаемый POST 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 основные задачи из SDK 1NCE IoT C:
Поддержка 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 применен правильный шаблон перевода. и правильный выбранный протокол и используемый шаблон.
Контроллер устройств — это API, который позволяет взаимодействовать с устройствами, интегрированными в API 1NCE. Вы можете использовать этот 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 (от облака к устройству) поддерживается для всех трех протоколов: 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
**/
Более подробную информацию о настройках диапазона см. в Руководстве по AT-командам BG96.
Подробность журналов можно настроить, определив макрос 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. Просто создайте новую проблему и выберите один из множества шаблонов, охватывающих отчеты об ошибках, запросы функций, проблемы с документацией или общий вопрос.