Введение

В приложениях Интернета вещей (IoT) отслеживание и позиционирование активов с низким энергопотреблением и большим радиусом действия являются критически важными техническими показателями. Хотя традиционные модули Глобальной системы позиционирования (GPS) могут предоставлять точные координаты, их высокое энергопотребление часто становится фатальным недостатком для устройств с батарейным питанием, ограничивая их долгосрочное применение в таких сценариях, как отслеживание логистики, умное сельское хозяйство и управление активами. Для решения этой проблемы была предложена технологическая архитектура LoRa Edge™. Перенося рабочую нагрузку по вычислению местоположения с конечного устройства в облако для обработки, она значительно снижает сложность оборудования и энергопотребление терминала, предоставляя решение для геолокации IoT, которое уравновешивает стоимость, энергопотребление и производительность позиционирования.

Основная концепция этой архитектуры — «Сканирование на чипе, решение в облаке» (Scan-on-Chip, Solve-in-Cloud). Она переносит самые энергоемкие вычислительные задачи в процессе позиционирования с конечного устройства в облако. Конечное устройство, такое как модуль, оснащенный чипом Semtech LR1120, отвечает только за сбор необработанных «ключей» для позиционирования, таких как навигационные сообщения от сигналов GNSS (Глобальной навигационной спутниковой системы) и MAC-адреса ближайших точек доступа Wi-Fi (AP). Эти легковесные данные передаются на облачную платформу через сеть LoRaWAN® с большим радиусом действия и низким энергопотреблением. Облачная платформа, обладая мощными вычислительными возможностями и профессиональными службами определения местоположения, в конечном итоге вычисляет точное географическое положение устройства. Этот перенос ответственности резко снижает энергопотребление конечного устройства, делая возможным создание трекеров активов, которые могут работать годами от небольшой батареи, и устраняя ключевое препятствие для крупномасштабных развертываний IoT.

Цель этой статьи — предоставить инженерам и разработчикам решений всеобъемлющее, подробное и практическое техническое руководство. Мы будем использовать модуль LoRa1120 от NiceRF (на базе чипа Semtech LR1120) в качестве аппаратного ядра в сочетании с платой разработки STM32L476RG Nucleo от STMicroelectronics в качестве основного блока управления и шлюзом LoRaWAN LG1301-PF. Мы подробно, шаг за шагом, опишем, как полностью интегрировать его в платформу Tencent Cloud IoT Explorer для окончательной реализации комплексного решения геолокации с низким энергопотреблением. Статья будет охватывать весь процесс от сборки оборудования, настройки среды разработки, компиляции и прошивки встроенного ПО до настройки облачной платформы, проверки данных и демонстрации приложений, гарантируя, что читатели смогут не только успешно воспроизвести проект, но и глубоко понять лежащие в его основе технические принципы и архитектурные преимущества.

1. Архитектура системы и подготовка оборудования

Прежде чем приступить к разработке программного обеспечения, точная настройка аппаратной системы и понимание роли каждого компонента являются основой успеха проекта. В этой главе будут подробно описаны основные компоненты, составляющие это решение для геолокации, и даны четкие инструкции по подключению оборудования, чтобы избежать ненужных проблем при последующей отладке из-за ошибок физического подключения.

1.1. Обзор основных компонентов

Архитектура системы этого решения состоит из четырех ключевых частей: конечного узла, сетевой инфраструктуры, облачной платформы и взаимосвязей между ними.

Диаграмма архитектуры системы, показывающая, как LR1120 собирает данные из Wi-Fi и GNSS и передает их на платформу Tencent Cloud через шлюз LoRaWAN для интеграции приложений.
Диаграмма архитектуры системы, показывающая, как LR1120 собирает данные из Wi-Fi и GNSS и передает их на платформу Tencent Cloud через шлюз LoRaWAN для интеграции приложений.

Конечный узел: Это физическое устройство, развернутое в полевых условиях, отвечающее за сбор данных о местоположении и их отправку в сеть.

● Модуль NiceRF LoRa1120: Являясь чувствительным ядром системы, этот модуль построен на чипе Semtech LR1120. Его ключевые особенности включают:

○ Многодиапазонная радиосвязь: Поддерживает Sub-GHz (например, 433/470/868/915 МГц), диапазон ISM 2,4 ГГц и S-диапазон для спутниковой связи, обеспечивая большую гибкость связи.

○ Сканер с низким энергопотреблением: Интегрирует функции сканирования GNSS (с поддержкой GPS/BeiDou) и пассивного сканирования MAC-адресов Wi-Fi. Он не выполняет локальное определение местоположения, а только собирает необработанные данные, что является ключом к достижению сверхнизкого энергопотребления.

○ Совместимость с протоколами: Физический уровень разработан в соответствии со стандартом LoRaWAN, что обеспечивает совместимость со стандартными сетями.

Внутренняя блок-схема чипа LR1120, показывающая радиочастотные тракты и ключевые компоненты.
Внутренняя блок-схема чипа LR1120, показывающая радиочастотные тракты и ключевые компоненты.

● Плата разработки STM32L476RG Nucleo-64: Выступает в качестве главного контроллера (MCU). Она взаимодействует с модулем LR1120 через SPI (Serial Peripheral Interface) и отвечает за выполнение основной логики приложения. В данном случае она будет выполнять стек протоколов LoRa Basics™ Modem (LBM), предоставленный Semtech, который инкапсулирует сложность связи LoRaWAN и сбора данных о местоположении.

Сетевая инфраструктура:

● Шлюз LoRaWAN LG1301-PF: Служит мостом между конечным узлом и облачной платформой. Он получает радиочастотные пакеты LoRa от узла LR1120 и пересылает их на сетевой сервер в облаке через стандартную IP-сеть (например, Ethernet или Wi-Fi). Сам шлюз не анализирует содержимое данных; он действует только как пересыльщик пакетов.

Облачная платформа:

● Tencent Cloud IoT Explorer: В этой архитектуре он играет несколько ролей и является «мозгом» всей системы.

○ Сетевой сервер LoRaWAN (LNS): Управляет всей сетью LoRaWAN, включая подключения шлюзов, активацию по воздуху (OTAA) для конечных узлов, регулировку адаптивной скорости передачи данных (ADR) и маршрутизацию входящих и исходящих пакетов.

○ Сервер приложений LoRaWAN (AS): Получает данные приложений, пересланные LNS, и выполняет их расшифровку и декодирование.

○ Сервис геолокации LoRa Edge™: Это основная дополнительная услуга для этого решения. Когда платформа получает данные сканирования GNSS и Wi-Fi от узла LR1120, она автоматически вызывает эту службу для их преобразования в стандартные координаты широты и долготы.

1.2. Сборка и подключение оборудования

Правильное физическое подключение является необходимым условием для обеспечения нормальной связи между MCU и модулем LR1120. Перед подключением обратитесь к распиновке модуля и типовой схеме применения для более четкого понимания.

Определение номеров выводов модуля NiceRF LoRa1120.
Определение номеров выводов модуля NiceRF LoRa1120.
Типовая схема применения модуля LoRa1120 и хост-MCU.
Типовая схема применения модуля LoRa1120 и хост-MCU.

Пожалуйста, строго следуйте приведенной ниже таблице для подключения. Неправильные подключения могут привести к сбою связи или даже повреждению оборудования.

Таблица 1: Соответствие выводов для подключения оборудования модуля LR1120 и платы разработки STM32L476RG Nucleo-64

Имя вывода модуля LR1120

Номер вывода модуля LR1120

Описание функции

Вывод STM32L476RG Nucleo

Примечания

VCC

1

Положительное питание

3.3V

Убедитесь, что напряжение составляет 3,3 В.

GND

2, 6, 8, 11, 12, 18

Земля питания

GND

Подключите к любому выводу GND.

MISO

3

Выход данных SPI

PA6 (D12)

SPI1_MISO

MOSI

4

Вход данных SPI

PA7 (D11)

SPI1_MOSI

SCK

5

Вход тактового сигнала SPI

PA5 (D13)

SPI1_SCK

NSS

17

Вход выбора микросхемы SPI

PB6

SPI1_NSS

RST

14

Вход сброса модуля

PC7

Вывод сброса, активный низкий уровень.

BUSY

13

Выход индикатора состояния

PA9

Указывает, занят ли модуль.

DIO9

15

Многофункциональный цифровой ввод-вывод

PA8

Используется как прерывание по событию в LBM.

ANT

10

Интерфейс антенны Sub-GHz

-

Подключите антенну 470 МГц.

GPS ANT

9

Интерфейс GPS-антенны

-

Подключите активную или пассивную GPS-антенну.

Схема расположения выводов платы разработки STM32L476RG Nucleo-64 для справки по подключению оборудования.
Схема расположения выводов платы разработки STM32L476RG Nucleo-64 для справки по подключению оборудования.

После выполнения подключений используйте кабель Mini-B USB для подключения платы STM32L476RG Nucleo к компьютеру. Отладчик ST-LINK на плате создаст виртуальный последовательный порт и запоминающее устройство USB с именем NODE_L476RG, которое будет использоваться на последующих этапах прошивки встроенного ПО. Одновременно подключите антенну 470 МГц и GPS-антенну к соответствующим портам на модуле LR1120.

2. Среда разработки и настройка исходного кода

Для многих инженеров-встраиваемых систем, привыкших к интегрированным средам разработки (IDE), настройка среды кросс-компиляции на основе командной строки может оказаться сложной задачей. В этой главе будут даны подробные инструкции, чтобы обеспечить успешное создание на операционной системе Windows среды, необходимой для компиляции официального примера кода Semtech.

2.1. Установка инструментария и среды сборки

Компиляция для этого проекта должна выполняться в среде, подобной Linux. Поэтому в Windows рекомендуется использовать Cygwin для имитации этой среды.

● GNU Arm Embedded Toolchain: Это необходимый набор кросс-компилятора, ассемблера и компоновщика для компиляции кода для микроконтроллеров с ядром ARM Cortex-M. Пожалуйста, загрузите и установите его с официального сайта ARM. После установки обязательно добавьте его каталог bin (например, C:\Program Files (x86)\GNU Arm Embedded Toolchain\10 2020-q4-major\bin) в системную переменную среды PATH, чтобы такие инструменты, как arm-none-eabi-gcc, можно было вызывать из любого окна командной строки.

● Cygwin для Windows:

○ Предыстория: Cygwin — это проект с открытым исходным кодом, который предоставляет среду, подобную UNIX, в Windows. Пример кода Semtech использует Makefile для управления сборкой, что является стандартной практикой в средах, подобных UNIX. Cygwin позволяет нам использовать такие команды, как make, непосредственно в Windows для компиляции проекта.

○ Шаги установки:

1. Посетите официальный сайт Cygwin (https://cygwin.com/install.html) и загрузите установщик setup-x86_64.exe.

2. Запустите установщик и выберите «Установить из Интернета».

3. Выберите подходящий корневой каталог (например, C:\cygwin64) и локальный каталог пакетов (для хранения загруженных установочных файлов).

4. Выберите способ подключения к сети (обычно «Прямое подключение»).

5. Выберите зеркало для загрузки.

6. Ключевой шаг: Выбор пакетов. Это самая подверженная ошибкам часть интерфейса выбора пакетов. Для успешной компиляции проекта необходимо убедиться, что установлены следующие ключевые пакеты. Найдите и выберите их в поле поиска:

■ make: В категории «Devel» найдите пакет make и измените его статус с «Пропустить» на номер версии для установки. Это основной инструмент для сборки проекта.

■ git: В категории «Devel» найдите пакет git и выберите его для установки. Используется для клонирования репозитория исходного кода с GitHub.

■ unzip: В категории «Archive» выберите unzip, так как некоторые скрипты могут его использовать.

7. Нажмите «Далее», и установщик автоматически обработает зависимости и начнет загрузку и установку выбранных пакетов. Этот процесс может занять некоторое время.

● Проверка среды: После установки запустите «Cygwin64 Terminal» из меню «Пуск» или с ярлыка на рабочем столе. В открывшемся окне терминала введите следующие команды для проверки:
make --version
git --version
arm-none-eabi-gcc --version

Если все три команды правильно отображают информацию о версии, среда разработки успешно настроена. Обратите внимание, что пути в терминале Cygwin отличаются от путей Windows; например, диск D:\ в Windows соответствует /cygdrive/d/ в Cygwin.

2.2. Получение необходимых репозиториев кода

Когда среда разработки будет готова, следующим шагом будет получение официального исходного кода, предоставленного Semtech. В терминале Cygwin используйте команду git clone для загрузки двух важнейших репозиториев.

● Lora-net/SWTL001: Это справочный инструмент для обновления внутренней прошивки чипов серии LR11xx. Чип LR1120 работает под управлением собственной независимой прошивки, и хост-MCU взаимодействует с ней через определенный API. Обновление этой прошивки является ключевым шагом для обеспечения ее совместимости со стеком протоколов приложений верхнего уровня.
git clone [https://github.com/Lora-net/SWTL001.git]

● Lora-net/SWL2001: Это официальная реализация стека протоколов LoRa Basics™ Modem (LBM). Это полнофункциональный стек протоколов LoRaWAN, который включает в себя необходимый нам пример приложения для геолокации.
git clone [https://github.com/Lora-net/SWL2001.git]

После завершения загрузки в вашем рабочем каталоге появятся папки SWTL001 и SWL2001, содержащие все файлы, необходимые для последующей работы по разработке.

3. Развертывание прошивки и приложения конечного узла

Развертывание программного обеспечения для конечного узла — это точный двухэтапный процесс. Он должен выполняться в строгом порядке, поскольку работа приложения верхнего уровня зависит от правильной версии прошивки нижележащего трансивера. Эта многоуровневая архитектура является центральной в дизайне платформы LoRa Edge™, отделяя сложность физического уровня РЧ и стека протоколов от логики пользовательского приложения.

3.1. Этап 1: Обновление прошивки трансивера LR1120

LR1120 — это сопроцессор со встроенным микропроцессором, управляемый через интерфейс SPI. Он работает под управлением собственной прошивки, отвечающей за выполнение низкоуровневых задач, таких как управление РЧ, сканирование сигналов и шифрование. Приложение LoRa Basics™ Modem на хост-MCU (STM32) взаимодействует с LR1120, вызывая предопределенный набор API через интерфейс SPI. Если версия API, ожидаемая приложением LBM, не соответствует версии API, предоставляемой внутренней прошивкой LR1120, это приведет к сбою связи или непредсказуемому поведению. Поэтому перед прошивкой основного приложения необходимо сначала убедиться, что прошивка LR1120 является последней и совместимой версией.

● Целевая прошивка: Нам нужно прошить в LR1120 прошивку трансивера версии lr1120_trx_0x0201.

● Получение прошивки: Предварительно скомпилированный двоичный файл прошивки (.bin) можно найти в репозитории Lora-net/radio_firmware_images. Конкретный файл — lr1120_trx_0x0201.bin.

● Процесс прошивки:

1. Компиляция инструмента обновления: В терминале Cygwin перейдите в ранее клонированный каталог SWTL001. Выполните команду make для компиляции инструмента обновления прошивки.
cd /path/to/your/SWTL001
make

После успешной компиляции в каталоге build будет создан файл с именем lr11xx-updater-tool.bin.

2. Подготовка средства обновления: Переименуйте файл lr1120_trx_0x0201.bin, загруженный из репозитория Lora-net/radio_firmware_images, в image.bin и скопируйте его в корневой каталог проекта SWTL001. Инструмент обновления по умолчанию загружает файл прошивки с именем image.bin.

3. Прошивка инструмента обновления на плату Nucleo: Перетащите или скопируйте файл lr11xx-updater-tool.bin, скомпилированный на первом шаге, на этот USB-накопитель. ST-LINK автоматически прошьет эту программу в STM32 MCU и перезапустит его. В этот момент плата Nucleo станет специализированным инструментом для обновления прошивки LR1120.

Перетаскивание файла .bin инструмента обновления прошивки на USB-накопитель для его прошивки.
Перетаскивание файла .bin инструмента обновления прошивки на USB-накопитель для его прошивки.

● Выполнение обновления и мониторинг: Откройте инструмент последовательного терминала (например, PuTTY или Tera Term) и подключитесь к виртуальному последовательному порту, соответствующему плате Nucleo. Обратите внимание, что скорость передачи данных здесь очень высока и должна быть установлена на 921600 бит/с. После подключения нажмите черную кнопку сброса на плате Nucleo. Вы увидите подробные журналы процесса обновления прошивки в последовательном терминале, включая стирание, запись и проверку. Когда вы увидите сообщение об успехе, это означает, что внутренняя прошивка LR1120 была успешно обновлена.

Журнал последовательного терминала, показывающий успешное обновление прошивки LR1120 до версии 0x0201.
Журнал последовательного терминала, показывающий успешное обновление прошивки LR1120 до версии 0x0201.

3.2. Этап 2: Настройка и компиляция приложения геолокации

После обновления прошивки трансивера мы можем приступить к настройке и компиляции приложения геолокации, которое будет работать на хост-MCU. Все соответствующие конфигурации сосредоточены в файле SWL2001-master\lbm_applications\3_geolocation_on_lora_edge\main_geolocation/example_options.h.

3.2.1. Конфигурация основных параметров: идентификатор устройства и региональные настройки

Сеть LoRaWAN идентифицирует и аутентифицирует каждое устройство с помощью набора уникальных идентификаторов. Правильность этих параметров является необходимым условием для успешного подключения устройства к сети и должна строго соответствовать конфигурации на платформе Tencent Cloud.

/*** @brief Учетные данные пользователя LoRaWAN*/
#define USER_LORAWAN_DEVICE_EUI { \
    0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x06, 0xE0, 0xE3 }
#define USER_LORAWAN_JOIN_EUI { \
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
#define USER_LORAWAN_APP_KEY { \
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }

/*** @brief Определение региона модема*/
#define MODEM_EXAMPLE_REGION SMTC_MODEM_REGION_CN_470_RP_1_0

● USER_LORAWAN_DEVICE_EUI: Глобально уникальный идентификатор устройства (Device EUI), 64-битное шестнадцатеричное число, подобное MAC-адресу сетевого устройства, должен быть глобально уникальным.

● USER_LORAWAN_JOIN_EUI: Глобально уникальный идентификатор приложения (Join EUI), который идентифицирует Join Server, обрабатывающий запросы на подключение.

● USER_LORAWAN_APP_KEY: Это 128-битный ключ AES, ядро безопасности устройства, используемый для генерации сеансовых ключей во время процесса подключения (OTAA).

● MODEM_EXAMPLE_REGION: Региональные параметры LoRaWAN. Здесь он установлен на SMTC_MODEM_REGION_CN_470_RP_1_0, чтобы соответствовать нормативным требованиям диапазона 470 МГц в Китае.

3.2.2. Конфигурация канала связи: установка одноканального режима для тестирования

На этапе разработки и тестирования настройка устройства для передачи только по одному каналу, который прослушивает шлюз, является эффективной стратегией для быстрой проверки базовой связи между устройством и шлюзом.

// Для удобства тестирования можно настроить одноканальный режим
#define HYBRID_CN470_MONO_CHANNEL
#if defined( HYBRID_CN470_MONO_CHANNEL )
uint32_t freq_tx_cn470_mono_channel_mhz = 471100000;
#endif

Определив макрос HYBRID_CN470_MONO_CHANNEL и установив переменную freq_tx_cn470_mono_channel_mhz, частоту передачи узла можно зафиксировать на уровне 471,1 МГц. Это значительно упрощает начальную отладку сетевого подключения, так как вам нужно только убедиться, что шлюз также прослушивает эту частоту.

Примечание: В конечно�� производственной среде это определение макроса следует закомментировать, чтобы восстановить все каналы по умолчанию, тем самым используя функцию скачкообразной перестройки частоты LoRaWAN для повышения надежности и пропускной способности сети.

3.2.3. Конфигурация переключателя РЧ-антенны

Чипу LR1120 требуется внешний радиочастотный (РЧ) переключатель для выбора правильного пути антенны (например, Sub-GHz, GNSS и т. д.). Стек протоколов должен быть проинформирован о том, как управлять этим переключателем.

// Настройка переключателя антенны
lr11xx_system_rfswitch_cfg_t system_rf_switch_cfg = {
    .enable = LR11XX_SYSTEM_RFSW2_HIGH,
    .standby = 0x00,
    .rx = 0,
    .tx = 0,
    .tx_hp = 0,
    .tx_hf = 0,
    .gnss = LR11XX_SYSTEM_RFSW2_HIGH,
    .wifi = 0
};
lr11xx_system_set_dio_as_rf_switch( NULL, &system_rf_switch_cfg);

Этот код определяет структуру типа lr11xx_system_rfswitch_cfg_t для точной настройки состояния РЧ-переключателя в различных режимах работы (таких как ожидание, прием, передача, сканирование GNSS). Затем конфигурация применяется к системе путем вызова функции lr11xx_system_set_dio_as_rf_switch. Эта конфигурация сильно зависит от оборудования и должна соответствовать внутренней схемотехнике используемого вами модуля (например, NiceRF LoRa1120), в противном случае это приведет к сбою связи.

3.3. Компиляция и прошивка конечного приложения

После завершения всех изменений конфигурации можно скомпилировать и прошить конечное приложение.

● Компиляция: В терминале Cygwin убедитесь, что текущий путь — SWL2001/lbm_applications/3_geolocation_on_lora_edge. Выполните следующую команду для компиляции:
make full_lr1120

Выполнение команды 'make full_lr1120' в терминале Cygwin для компиляции приложения геолокации.
Выполнение команды 'make full_lr1120' в терминале Cygwin для компиляции приложения геолокации.

Эта команда вызовет кросс-компилятор ARM для компиляции и компоновки исходного кода в исполняемый двоичный файл app_lr1120.bin, который будет помещен в подкаталог build.

Файл app_lr1120.bin, созданный в каталоге build после успешной компиляции.
Файл app_lr1120.bin, созданный в каталоге build после успешной компиляции.

(Файл app_lr1120.bin, созданный в каталоге build после успешной компиляции.)

● Прошивка: Снова подключите плату Nucleo к компьютеру и найдите USB-накопитель NODE_L476RG. Перетащите или скопируйте только что созданный файл app_lr1120.bin на этот USB-накопитель. ST-LINK автоматически завершит прошивку и перезапустит устройство.

● Проверка: Откройте инструмент последовательного терминала, на этот раз установив скорость передачи данных на 115200 бит/с. Нажмите кнопку сброса на плате Nucleo, и вы должны увидеть информацию журнала запуска приложения. Эта информация будет отображать DevEUI, AppEUI устройства и журналы его попыток подключения к сети LoRaWAN. Если вы видите «JOINING» или подобные сообщения, это означает, что программное обеспечение на стороне устройства работает правильно.

Журнал последовательного порта после запуска приложения, показывающий инициализацию модема и информацию о региональных параметрах.
Журнал последовательного порта после запуска приложения, показывающий инициализацию модема и информацию о региональных параметрах.

4. Настройка платформы Tencent Cloud IoT

Как только конечный узел будет готов и попытается подключиться к сети, нам необходимо выполнить соответствующую настройку в облаке, чтобы «открыть ему дверь» и сообщить облачной платформе, как понимать отправляемые им данные.

Основной интерфейс консоли Tencent Cloud IoT Explorer.
Основной интерфейс консоли Tencent Cloud IoT Explorer.

4.1. Регистрация шлюза LoRaWAN

Шлюз является точкой входа для данных из эфира в облако. Он должен быть сначала зарегистрирован на платформе и обеспечен его онлайн-статус.

● Настройка на стороне шлюза: Войдите в интерфейс управления вашего шлюза LG1301-PF. Найдите конфигурацию для пересыльщика пакетов LoRaWAN. Установите его адрес сервера на домен доступа к сетевому серверу Tencent Cloud LoRaWAN: loragw.things.qcloud.com, а порт — на 1700. Сохраните конфигурацию и перезапустите шлюз.

● Настройка на стороне облачной платформы:

1. Войдите в консоль Tencent Cloud IoT Explorer и войдите в свой проект.

2. В левом меню выберите «Дополнительные услуги» -> «Управление сетью», затем нажмите «Добавить шлюз».

Шаги навигации для добавления шлюза на платформе Tencent Cloud.
Шаги навигации для добавления шлюза на платформе Tencent Cloud.

● На странице нового шлюза введите основную информацию о шлюзе, такую как имя шлюза и уникальный GwEUI.

Ввод основной информации о шлюзе, включая имя и GwEUI.
Ввод основной информации о шлюзе, включая имя и GwEUI.

● После добавления обновите страницу. Если шлюз правильно настроен и подключен к Интернету, его статус должен отображаться как «Онлайн».

4.2. Подготовка продуктов и устройств

В сети LoRaWAN каждое устройство принадлежит к категории «продукт». Продукт определяет общие характеристики устройств этого типа, такие как способ связи, формат данных и т. д.

● Создание продукта:

1. В рамках проекта выберите «Разработка продукта» -> «Новый продукт».

2. Введите имя продукта, выберите «Умная жизнь» -> «Датчики сигнализации» -> «Локатор», выберите «LoRaWAN» в качестве типа устройства и «Аутентификация по ключу» в качестве метода аутентификации.

Создание нового продукта на платформе Tencent Cloud IoT, выбор шаблона локатора и настройка параметров LoRaWAN.
Создание нового продукта на платформе Tencent Cloud IoT, выбор шаблона локатора и настройка параметров LoRaWAN.

● Выберите «OTAA» (Over-The-Air Activation) в качестве метода аутентификации, что является рекомендуемым безопасным способом подключения к сети.

● Определение модели данных (Thing Model): Модель данных — это «правило перевода» или «контракт цифрового двойника» для облачной платформы, чтобы понимать данные устройства. Она определяет структуру и значение данных, сообщаемых устройством. Без правильной модели данных, даже если облачная платформа получит данные, это будет просто бессмысленный поток двоичных байтов, который не сможет запустить последующую службу определения местоположения.

1. Перейдите на страницу сведений о только что созданном продукте и нажмите на вкладку «Модель данных».

2. Нажмите «Добавить стандартную функцию», и во всплывающем списке выберите «Общий тип».

3. Установите флажки «Позиционирование по Wi-Fi» и «Навигационное сообщение GNSS».

■ Функция «Позиционирование по Wi-Fi» определяет структуру данных для списка точек доступа Wi-Fi, сообщаемых устройством, включая MAC-адрес и RSSI (индикацию уровня принимаемого сигнала).

■ Функция «Навигационное сообщение GNSS» определяет структуру данных для необработанных спутниковых данных, полученных устройством.

4. Добавив эти две стандартные функции, вы, по сути, сообщаете платформе Tencent Cloud: «Для любых данных, сообщаемых устройствами в рамках этого продукта, если они соответствуют этому формату, они должны рассматриваться как данные позиционирования LoRa Edge™ и отправляться в механизм позиционирования для обработки».

● Включение службы LoRa Edge: В конфигурации продукта есть еще один ключевой переключатель, который нужно включить. Перейдите в «Разработка устройств» -> «Конфигурация параметров LoRaWAN» и убедитесь, что переключатель «Включить позиционирование LoRa Edge» находится в положении «включено». Это действие активирует внутреннюю службу определения местоположения для всех устройств в рамках этого продукта.

Включение службы позиционирования LoRa Edge в конфигурации параметров LoRaWAN.
Включение службы позиционирования LoRa Edge в конфигурации параметров LoRaWAN.

● Создание устройства: Наконец, создайте соответствующую логическую сущность в облаке для вашего физического устройства.

1. На вкладке «Отладка устройств» на странице сведений о продукте нажмите «Новое устройство».

2. Введите имя устройства.

3. DevEUI и AppKey должны быть абсолютно такими же, как значения, которые вы прошили в прошивку в разделе 3.2. Любое отклонение даже в одном символе приведет к сбою подключения устройства к сети.

При создании нового устройства введенные DevEUI и AppKey должны полностью соответствовать конфигурации в прошивке.
При создании нового устройства введенные DevEUI и AppKey должны полностью соответствовать конфигурации в прошивке.

● После создания устройство появится в списке устройств с начальным статусом «Офлайн».

5. Комплексная проверка данных и применение

На этом этапе вся цепочка от конечного устройства до ��блака настроена. Теперь наступает заключительный и самый захватывающий этап: проверка того, что вся система работает так, как ожидалось.

5.1. Проверка восходящей передачи данных

Включите питание вашего узла LR1120 (подключенного к плате Nucleo). Если все в порядке, он начнет отправлять запрос на подключение через сеть LoRaWAN. Шлюз перехватывает запрос и пересылает его в Tencent Cloud LNS. После того, как LNS убедится в правильности DevEUI и AppKey, он отправит ответ Join Accept через шлюз. Как только узел получит ответ, он успешно подключится к сети.

● Статус устройства: На странице «Отладка устройств» в консоли Tencent Cloud вы увидите, как онлайн-статус устройства изменится с «Офлайн» на «Онлайн».

● Журнал устройства: Нажмите на имя устройства, чтобы перейти на страницу сведений, и перейдите на вкладку «Журнал устройства». Здесь записываются все необработанные данные связи между устройством и платформой.

○ Вы должны увидеть восходящие журналы типа «up_raw» с данными в виде необработанной строки в кодировке Base64.

Облачный журнал устройства, показывающий необработанные восходящие данные, сообщаемые устройством.
Облачный журнал устройства, показывающий необработанные восходящие данные, сообщаемые устройством.

● В интерфейсе «Онлайн-отладка» вы можете увидеть структурированные данные JSON, успешно разобранные платформой в соответствии с моделью данных, которые должны включать такие поля, как WIFI_Info. Наличие этих разобранных данных означает, что вся цепочка от сбора данных до анализа в облаке полностью функционирует.

Интерфейс онлайн-отладки показывает успешно разобранные данные позиционирования по Wi-Fi.
Интерфейс онлайн-отладки показывает успешно разобранные данные позиционирования по Wi-Fi.

5.2. Визуализация местоположения с помощью Location Space

После проверки того, что данные могут быть правильно разобраны, следующим шагом является использование дополнительных услуг Tencent Cloud для преобразования этих данных в видимое местоположение на карте.

● Настройка службы:

1. В левой строке меню выберите «Дополнительные услуги» -> «Служба определения местоположения».

2. Нажмите «Новое пространство местоположения», чтобы создать выделенное пространство для вашего приложения позиционирования и связать его с ранее созданным продуктом.

Создание нового пространства местоположения и его связь с продуктом LR1120.
Создание нового пространства местоположения и его связь с продуктом LR1120.

● Связывание устройств: Войдите в только что созданное пространство местоположения и добавьте в него ранее созданное устройство.

● Отображение результатов: Как только устройство будет связано, платформа Tencent Cloud автоматически отправит сообщаемые и разобранные данные о местоположении от этого устройства в механизм позиционирования LoRa Edge™. После того, как механизм завершит вычисления, он свяжет координаты широты и долготы с устройством. В этот момент, открыв вид карты пространства местоположения, вы сможете увидеть значок, представляющий ваше устройство, на карте, показывающий его самое последнее местоположение в реальном времени.

Местоположение устройства в реальном времени, отображаемое на карте службы определения местоположения.
Местоположение устройства в реальном времени, отображаемое на карте службы определения местоположения.

Это наглядно демонстрирует, что весь процесс «Сканирование на чипе, решение в облаке» успешно замкнут. Location Space также предоставляет богатые функции, такие как историческая траектория, тепловые карты и геозоны, которые можно использовать для создания более сложных приложений для управления активами.

Функция исторической траектории в Location Space, показывающая путь движения устройства за определенный период времени.
Функция исторической траектории в Location Space, показывающая путь движения устройства за определенный период времени.

5.3. Программный доступ через API

Хотя консоль предоставляет мощные функции визуализации и управления, в реальных бизнес-приложениях часто необходимо получать данные о местоположении программно, чтобы интегрировать их в собственные бизнес-системы предприятия, информационные панели или мобильные приложения.

● Сценарии применения: Например, логистической компании может потребоваться интегрировать местоположение всех своих грузовиков в реальном времени в собственную систему диспетчеризации; фермер может захотеть просматривать местоположение всего скота в специальном приложении.

● Реализация: Tencent Cloud предоставляет полный набор API, которые позволяют разработчикам программно взаимодействовать с платформой IoT. Чтобы получить местоположение устройства, вам необходимо использовать ключи API Tencent Cloud (SecretId и SecretKey) для аутентификации, а затем вызвать соответствующий интерфейс API.

● Справочная документация: Официальная документация Tencent Cloud предоставляет подробные инструкции по API для получения списка местоположений устройств, включая параметры запроса, форматы возвращаемых данных и примеры кода. Разработчики могут обратиться к этому документу (https://cloud.tencent.com/document/product/1081/62451) и использовать SDK предпочитаемого ими языка программирования (например, Python, Java, Go и т. д.) для легкой интеграции данных о местоположении в свои собственные приложения. Это предоставляет неограниченные возможности для вторичной разработки и глубокой интеграции на основе этого решения для позиционирования.

Инструмент онлайн-вызова Tencent Cloud API Explorer, используемый для тестирования интерфейса для получения списка местоположений устройств.
Инструмент онлайн-вызова Tencent Cloud API Explorer, используемый для тестирования интерфейса для получения списка местоположений устройств.

Заключение

Следуя шагам в этом руководстве, мы успешно создали полнофункциональное решение для геолокации с низким энергопотреблением, от сборки оборудования до представления облачных приложений. Основное техническое преимущество этого решения заключается в использовании архитектуры LoRa Edge™ «Сканирование на чипе, решение в облаке». Перенося энергоемкую задачу вычисления местоположения с ограниченных по ресурсам конечных устройств в мощное облако, оно эффективно решает проблему энергопотребления традиционных решений GPS в приложениях IoT, открывая путь для долгосрочных, крупномасштабных развертываний в таких областях, как отслеживание активов, умная логистика и точное земледелие.

В процессе мы систематически выполнили следующие ключевые технические задачи:

● Точная настройка аппаратной системы, проясняющая физическое соединение между модулем LR1120 и хост-контроллером STM32.

● Конфигурация среды кросс-компиляции, преодолевающая общие препятствия для разработки встраиваемых систем с использованием инструментария командной строки в системе Windows.

● Двухэтапное развертывание прошивки, позволяющее глубоко понять взаимозависимость между прошивкой сопроцессора LR1120 и приложением хост-контроллера, и успешное завершение процесса прошивки.

● Комплексная настройка облачной платформы, от регистрации шлюза до создания устройства, и особенно установление «семантического контракта» между устройством и облаком путем определения модели данных (Thing Model), обеспечивающей правильный разбор данных о местоположении.

● Комплексная функциональная проверка, не только подтверждающая успешную передачу и разбор данных в журналах, но и визуально отображающая окончательный результат позиционирования в службе определения местоположения, тем самым замыкая всю техническую цепочку.

Завершение этого проекта — это не просто подключение устройства; это освоение передовой, масштабируемой и энергоэффективной технологии позиционирования IoT. На этой основе можно дальше исследовать более сложные приложения, такие как использование функции геозон в Location Space для реализации предупреждений о пересечении границ активов, анализ данных об исторических траекториях для оптимизации логистических маршрутов или потоковая передача данных о местоположении в реальном времени на платформы анализа больших данных для извлечения более глубокой ценности.

Информационные ресурсы

Аппаратное обеспечение

● Информация о продукте: модуль G-NiceRF® LoRa1120: https://www.nicerf.com/lora-module/lora1120.html

● Центр загрузки ресурсов G-NiceRF® LoRa1120: https://www.nicerf.com/download/?keywords=lora1120

● Официальное техническое описание чипа Semtech LR1120: https://www.semtech.com/products/wireless-rf/lora-connect/lr1120

● Официальный магазин G-NiceRF® (AliExpress): https://aliexpress.ru/item/1005009682363003.html

Программное обеспечение и разработка

● Репозиторий GitHub Semtech LoRa Basics™ Modem (SWL2001): https://github.com/Lora-net/SWL2001

● Репозиторий GitHub инструмента обновления прошивки Semtech LR11xx (SWTL001): https://github.com/Lora-net/SWTL001

● Репозиторий GitHub образов прошивок для РЧ-чипов Semtech: https://github.com/Lora-net/radio_firmware_images

Сеть и протоколы

● Официальный сайт LoRa Alliance®: https://lora-alliance.org/

● Документация по спецификации LoRaWAN® L2 1.0.4: https://resources.lora-alliance.org/technical-specifications/ts001-1-0-4-lorawan-l2-1-0-4-specification

Облачная платформа

● Домашняя страница продукта Tencent Cloud IoT Hub: https://www.tencentcloud.com/products/iothub

● Документация по API Tencent Cloud - Получение списка местоположений устройств: https://cloud.tencent.com/document/product/1081/62451

Среда разработки

● Официальный сайт проекта Cygwin: https://cygwin.com/install.html

Комментарии (1)


  1. iliasam
    12.09.2025 07:54

    Статья переводная, и не полностью раскрывает особенности работы LR1120 (я их почитал в даташите).
    Интересно, что для приема данных от GNSS и для радиосвязи в чипе используется один и тот же АЦП и PLL.

    Ключевая особенность работы навигации, в принципе, в посте отображена, но как-то незаметно: "Он не выполняет локальное определение местоположения, а только собирает необработанные данные, что является ключом к достижению сверхнизкого энергопотребления."


    Действительно, чип не вычисляет свое положение сам, он вычисляет псевдодальности до спутников, которые и передаются на сервер, который уже сам, имея данные эфемерид, вычисляет положение чипа. Это означает, что чипу не требуется время (30с), чтобы получить данные эфемерид со спутников.
    С другой стороны, чипу для быстрого поиска сигнала от спутников нужно хотя бы примерно знать альманах, время и свои координаты. Собственно, сервер эти данные и передает.
    Стоит отметить, что альманах, в отличие от эфемерид, актуальных полчаса, может быть актуален несколько месяцев. Положение объекта может меняться несильно, а время может хранить RTC. Таким образом, обеспечив чип раз в месяц данными, можно получать координаты, включая GPS часть чипа всего на несколько секунд для сбора данных.