I. Техническое введение в многорежимный приемопередатчик LoRa1120
Ядром модуля LoRa1120 является чипсет LR1120 от Semtech, интегральная схема, разработанная специально для беспроводной связи на большие расстояния с низким энергопотреблением и для приложений геолокации ¹. Перед началом разработки реальных приложений ключевым фактором успеха является глубокий анализ основных технических возможностей этого модуля. Это не просто LoRa-приемопередатчик, а комплексная платформа, объединяющая несколько режимов связи и функции позиционирования.
Работа в нескольких частотных диапазонах
Модуль способен работать в нескольких различных частотных диапазонах, что обеспечивает высокую гибкость для различных сценариев применения и соответствие региональным нормативным требованиям ¹.
Субгигагерцевый ISM-диапазон: Поддерживает нелицензируемые диапазоны, такие как 433/470/868/915 МГц, и может быть настроен в диапазоне 150-960 МГц в соответствии с требованиями. Это основной рабочий диапазон для традиционных приложений LoRa, физические характеристики которого обеспечивают наибольшую дальность передачи и лучшую проникающую способность, что подходит для развертывания сетей LPWAN (Low-Power Wide-Area Network).
2.4 ГГц ISM-диапазон: Рабочий диапазон 2400-2500 МГц. Этот диапазон является универсальным во всем мире и по сравнению с субгигагерцевым диапазоном может обеспечивать более высокие скорости передачи данных. Однако его дальность передачи и проникающая способность относительно ниже, что делает его более подходящим для сценариев с определенными требованиями к пропускной способности и на коротких расстояниях, таких как промышленная автоматизация или умный дом.
Спутниковая связь в S-диапазоне: Рабочий диапазон 1900-2200 МГц. Эта функция позволяет модулю напрямую связываться со спутниками, предоставляя решения для подключения в удаленных районах, где нет покрытия наземных сетей (например, в океане, пустыне, горах), что делает его идеальным выбором для отслеживания активов и удаленного мониторинга.
Подсистема геолокации
Помимо функций связи, LoRa1120 также интегрирует два независимых механизма сканирования с низким энергопотреблением для определения географического положения ¹.
GNSS-сканер: Поддерживает многоконстелляционные глобальные навигационные спутниковые системы (такие как GPS/BeiDou) в режиме облачного вспомогательного позиционирования. Сам модуль отвечает только за сканирование спутниковых сигналов и сбор необработанных данных, которые затем передаются через сеть LoRa в облако для анализа. Такая архитектура значительно снижает энергопотребление и вычислительную нагрузку на конечное устройство, что делает его подходящим для приложений позиционирования с жесткими требованиями к сроку службы батареи.
Пассивный Wi-Fi сканер: Определяет местоположение путем сканирования MAC-адресов окружающих точек доступа Wi-Fi 802.11b/g/n (AP). В городских или внутренних условиях, где сигнал GNSS слаб, Wi-Fi позиционирование может служить эффективным дополнением или альтернативой. Аналогично, он только собирает список MAC-адресов, передавая его облачному сервису для определения конкретного местоположения.
Поддержка протоколов и безопасности
На физическом уровне модуль соответствует спецификациям стандарта LoRaWAN, опубликованным LoRa Alliance, что обеспечивает совместимость со стандартными сетями LoRaWAN. В то же время он также поддерживает протокол Sigfox и имеет встроенный аппаратный механизм шифрования и дешифрования AES-128, обеспечивая безопасность передачи данных на аппаратном уровне ¹. Такая многофункциональная интегрированная конструкция означает, что инженеры могут использовать единую аппаратную платформу для удовлетворения совершенно разных потребностей приложений, просто изменяя конфигурацию прошивки: например, развертывание стандартных датчиков LoRaWAN в Европе (с использованием субгигагерцевого диапазона), сбор данных с высокой пропускной способностью в заводских условиях (с использованием 2.4 ГГц) или отслеживание активов в районах без покрытия сотовой сети (с использованием GNSS + S-диапазона). Эта стратегия проектирования эффективно сокращает количество аппаратных SKU и затраты на разработку. Таким образом, следующий тест базовой связи точка-точка следует рассматривать как первый шаг к освоению всего потенциала этого модуля.
На рисунке ниже показана внутренняя функциональная блок-схема чипа LR1120, наглядно демонстрирующая его многодиапазонные радиочастотные тракты и связи с внешними компонентами.

II. Подготовка оборудования и системное подключение
Создание надежной тестовой платформы является основой для проверки производительности беспроводной связи. В этом разделе подробно описывается, как физически подключить модуль LoRa1120 к микроконтроллеру ESP32.
Список необходимого оборудования
Для создания базовой системы связи точка-точка необходимо подготовить два одинаковых комплекта оборудования ¹:
Плата разработки ESP32 (например, ESP32-PICO): 2 шт.
Модуль LoRa1120: 2 шт.
Соединительные провода DuPont: несколько
USB-кабель для передачи данных: 2 шт.
Схема подключения контактов
Подключите модуль LoRa1120 к плате разработки ESP32 через интерфейс SPI. В таблице ниже подробно определены рекомендуемые соответствия контактов. Убедитесь, что оба комплекта оборудования подключены абсолютно одинаково ¹.
Контакт ESP32 |
Контакт LoRa1120 |
Название сигнала |
Описание функции |
GPIO 14 |
SCK |
SCK |
Последовательный тактовый сигнал (выход ведущего) |
GPIO 12 |
MISO |
MISO |
Вход ведущего, выход ведомого (данные от LoRa1120 к ESP32) |
GPIO 13 |
MOSI |
MOSI |
Выход ведущего, вход ведомого (данные от ESP32 к LoRa1120) |
GPIO 10 |
NSS |
NSS |
Выбор чипа/ведомого (активный низкий уровень) |
GPIO 2 |
DIO9/irq |
IRQ |
Запрос прерывания (для индикации событий, таких как завершение приема пакета) |
GPIO 4 |
RST |
RST |
Сброс (активный низкий уровень, для аппаратного сброса модуля) |
GPIO 9 |
BUSY |
BUSY |
Линия состояния, указывает, что модуль занят и не может принимать новые команды |
3.3V |
VCC |
VCC |
Питание (3.3V) |
GND |
GND |
GND |
Земля |
¹
Эта схема подключения использует стандартный 4-проводной интерфейс SPI (SCK, MISO, MOSI, NSS) для передачи данных. Кроме того, есть три критически важные управляющие линии (IRQ, RST, BUSY). Понимание функций этих управляющих линий имеет решающее значение для написания надежной встраиваемой прошивки.
RST (Reset): Используется для программного управления аппаратным сбросом модуля LoRa1120, возвращая его в исходное состояние.
BUSY (Занято): Это аппаратный сигнал управления потоком. Когда модуль внутренне обрабатывает команду или находится в активном состоянии, на выводе BUSY устанавливается высокий уровень, и в это время ведущее устройство (ESP32) не должно отправлять новые команды SPI. Это эффективно предотвращает конфликты команд и потерю данных, обеспечивая надежность связи.
IRQ (Interrupt Request): Этот вывод используется для отправки сигнала прерывания ведущему устройству для уведомления о возникновении определенных событий, таких как завершение приема или отправки пакета данных. Использование прерываний более эффективно, чем опрос, и позволяет ведущему устройству переходить в режим низкого энергопотребления в ожидании события, тем самым значительно снижая общее энергопотребление системы.
Примечание: Хотя вышеуказанное распределение контактов является рекомендуемой конфигурацией, инженеры могут вносить коррективы в соответствии с компоновкой своей печатной платы или ресурсами платы разработки. Однако любые аппаратные изменения должны быть синхронизированы в последующем программном коде, иначе это приведет к сбою связи ¹.
III. Настройка среды разработки Arduino
Правильная настройка программной среды является предпосылкой для разработки программ. В этом разделе вы узнаете, как установить и настроить Arduino IDE для поддержки разработки с модулями ESP32 и LoRa1120.
1. Установка Arduino IDE
Загрузите и установите последнюю версию Arduino IDE с официального сайта Arduino ¹.
2. Добавление поддержки плат ESP32
Чтобы Arduino IDE могла распознавать и компилировать код для ESP32, необходимо добавить URL-адрес менеджера плат ESP32.
Откройте Arduino IDE, нажмите File -> Preferences (см. рисунок ниже).

В поле "Additional Board Manager URLs" (см. рисунок ниже) введите следующий URL-адрес ¹:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Этот URL-адрес указывает на индексный файл, который сообщает IDE, где найти инструментарий, библиотеки и определения для микроконтроллеров серии ESP32.
3. Установка пакета ESP32
Откройте "Boards Manager" (Менеджер плат) на левой боковой панели.
В строке поиска введите "esp32".
Найдите пакет, предоставленный "Espressif Systems", и нажмите "Install" (см. рисунок ниже) ¹.

4. Установка библиотеки RadioLib
RadioLib — это мощная универсальная библиотека для беспроводной связи, которая предоставляет единый высокоуровневый API-интерфейс для множества радиочастотных чипов, включая LR1120. Использование этой библиотеки может значительно упростить процесс разработки.
Откройте "Library Manager" (Менеджер библиотек) на левой боковой панели.
В строке поиска введите "RadioLib".
Найдите библиотеку RadioLib, разработанную "Jan Gromes", и нажмите "Install" (см. рисунок ниже) ¹.

Выбор библиотеки RadioLib является важным инженерным решением. Она действует как уровень аппаратной абстракции (HAL), инкапсулируя сложные операции чтения и записи регистров в простые для понимания и использования функции. Это означает, что разработчики могут быстро реализовать функции связи, не углубляясь в техническую документацию чипа LR1120. Кроме того, поскольку RadioLib поддерживает множество радиочастотных модулей (таких как SX127x, SX126x, CC1101 и т. д.), код, написанный для этого проекта, можно легко перенести на другие аппаратные платформы, что повышает его повторное использование и гибкость проекта ¹.
IV. Реализация и анализ теста связи "пинг-понг"
После завершения настройки среды мы проверим правильность аппаратного подключения и программных настроек с помощью примера связи "пинг-понг". В этом примере один узел (инициирующий узел) отправляет пакет данных, а другой узел (отвечающий узел) после его получения отправляет ответный пакет, и так далее по циклу.
A. Загрузка примера программы
В Arduino IDE перейдите через строку меню File > Examples > RadioLib > PhysicalLayer > LR11x0_PingPong, чтобы открыть код примера (см. рисунок ниже) ¹.

B. Анализ и разбор кода
Ниже приведен анализ ключевых частей LR11x0_PingPong.ino.
Определение роли узла
// uncomment the following only on one
// of the nodes to initiate the pings
#define INITIATING_NODE
Макроопределение #define INITIATING_NODE здесь является ключом к различению ролей двух узлов. Один и тот же код необходимо загрузить на два устройства ESP32. На одном устройстве нужно раскомментировать эту строку, чтобы сделать его "инициирующим узлом". На другом устройстве оставьте эту строку закомментированной, и оно автоматически станет "отвечающим узлом". Это очень распространенная и эффективная техника во встраиваемой разработке, позволяющая реализовать два разных поведения устройств с помощью единой кодовой базы.
Определение аппаратных контактов и конфигурация шины SPI
#define cs 10
#define irq 2
#define rst 4
#define busy 9
SPIClass spi(HSPI);
SPISettings spiSettings(2000000, MSBFIRST, SPI_MODE0);
Определение контактов: Блок #define определяет контакты GPIO ESP32, подключенные к модулю LoRa1120. Значения, определенные здесь (10, 2, 4, 9), должны полностью соответствовать фактическому аппаратному подключению из раздела II ¹.
Выбор шины SPI: SPIClass spi(HSPI); эта строка указывает, какая периферия SPI ESP32 используется. ESP32 обычно имеет несколько интерфейсов SPI (например, VSPI и HSPI). Здесь явно выбран HSPI. Для инженеров, использующих разные модели плат разработки ESP32, это ключевая деталь, поскольку распределение контактов SPI на разных платах может отличаться.
Настройка параметров SPI: SPISettings spiSettings(...) используется для настройки параметров связи SPI.
2000000: Устанавливает тактовую частоту SPI на 2 МГц.
MSBFIRST: Устанавливает передачу данных со старшим значащим битом (Most Significant Bit) вперед.
SPI_MODE0: Определяет полярность тактового сигнала (CPOL=0) и фазу тактового сигнала (CPHA=0). Эти параметры должны соответствовать техническим требованиям чипа LR1120.
Создание экземпляра объекта RadioLib
LR1120 radio = new Module(cs, irq, rst, busy, spi, spiSettings);
Это центральная часть всей программы. Эта строка создает экземпляр объекта драйвера LR1120 с именем radio. При создании объекта в качестве параметров передаются все ранее определенные номера аппаратных контактов (cs, irq, rst, busy) и объекты конфигурации SPI (spi, spiSettings). Этот шаг завершает окончательное связывание программной конфигурации с физическим оборудованием. Такой объектно-ориентированный дизайн отражает хорошую архитектуру программного обеспечения, централизуя управление конфигурацией, связанной с оборудованием, что делает код более простым в обслуживании и переносе.
Инициализация модуля
void setup() {
Serial.begin(115200);
// initialize LR1110 with default settings
Serial.print("Initializing... ");
spi.begin();
int state = radio.begin();
if (state == RADIOLIB_ERR_NONE) {
Serial.println("success!");
} else {
Serial.print("failed, code ");
Serial.println(state);
while (true);
}
}
В функции setup() функция radio.begin() отвечает за выполнение начальной связи с модулем LoRa1120. Она выполняет серию начальных настроек модуля через интерфейс SPI, включая установку параметров LoRa по умолчанию (таких как частота, полоса пропускания, коэффициент расширения спектра и т. д.), и проверяет, отвечает ли модуль нормально. Если инициализация проходит успешно, программа продолжает выполнение; в противном случае она выводит код ошибки и входит в бесконечный цикл, что облегчает отладку для разработчика ¹.
C. Компиляция и загрузка прошивки
В меню Tools Arduino IDE выберите правильную плату (например, "ESP32 PICO-D4") и соответствующий COM-порт.
Нажмите кнопку "Upload" (Загрузить) на панели инструментов IDE. IDE автоматически скомпилирует код и загрузит его в ESP32 (см. рисунок ниже).

Повторите эту операцию для обоих устройств (помните, что на одном из них нужно раскомментировать #define INITIATING_NODE).
V. Проверка работы и интерпретация показателей связи
После загрузки прошивки необходимо проверить успешность связи через монитор последовательного порта и понять ключевые показатели производительности.
Доступ к монитору последовательного порта
В Arduino IDE нажмите на значок лупы в правом верхнем углу или откройте монитор последовательного порта через Tools > Serial Monitor.
Убедитесь, что скорость передачи данных (baud rate) в правом нижнем углу установлена на 115200, что должно соответствовать настройке Serial.begin(115200); в коде.
Анализ логов вывода
После включения питания вы должны увидеть в мониторах последовательного порта обоих узлов чередующийся вывод, подобный следующему ¹:
Инициирующий узел (Initiating Node) (см. рисунок ниже):

Отвечающий узел (Responding Node) (см. рисунок ниже):

Интерпретация технических показателей
RSSI и SNR в логах вывода являются двумя наиболее важными показателями для оценки качества беспроводной связи. Это не просто цифры, а ключевые инструменты для диагностики и оптимизации беспроводных систем.
RSSI (Received Signal Strength Indicator, Индикатор уровня принимаемого сигнала):
Определение: RSSI — это мощность сигнала, измеренная на приемной стороне, в единицах дБм (dBm). Это логарифмическая единица, и чем ближе значение к 0, тем сильнее сигнал. Например, -66 дБм — это очень сильный сигнал, обычно указывающий на то, что приемопередающие устройства находятся близко друг к другу и без препятствий.
Применение: RSSI напрямую отражает бюджет канала связи и дальность связи. В реальных условиях, отслеживая изменения RSSI, можно определить, заблокирован ли сигнал, ослабло ли соединение антенны или устройство вышло за пределы эффективной дальности связи.
SNR (Signal-to-Noise Ratio, Отношение сигнал/шум):
Определение: SNR измеряет отношение мощности целевого сигнала к мощности фонового шума, в единицах дБ (dB). Положительное значение означает, что мощность сигнала выше шума, и чем больше значение, тем четче сигнал и сильнее помехоустойчивость. Например, SNR 12.50 дБ указывает на очень высокое качество сигнала.
Особенности LoRa: Одним из ключевых преимуществ технологии модуляции LoRa является ее способность успешно демодулировать данные при отрицательном отношении сигнал/шум (т. е. когда мощность сигнала ниже уровня шума). Это одна из основных причин, по которой LoRa может обеспечивать связь на большие расстояния. Высокие значения SNR в примере показывают, что электромагнитные помехи в тестовой среде очень малы.
Применение: В реальных условиях, если значение RSSI в норме, но значение SNR низкое или сильно колеблется, это обычно означает наличие радиочастотных помех от других беспроводных устройств (таких как Wi-Fi роутеры, Bluetooth-устройства и т. д.). Анализ SNR может помочь инженерам выбрать более чистый канал или принять меры по экранированию.
Обучая инженеров мыслить об этих показателях с точки зрения диагностики, это руководство стремится помочь им решать проблемы, которые могут возникнуть при реальном развертывании. Например, можно провести дополнительный эксперимент: постепенно увеличивать расстояние между двумя устройствами и наблюдать за затуханием RSSI; или разместить устройство рядом с Wi-Fi роутером и наблюдать, снизится ли SNR. Это превращает простой шаг проверки в практический урок по анализу радиочастотного канала.
VI. Рекомендации по интеграции пользовательского оборудования
Когда проект переходит от этапа проверки прототипа к этапу проектирования индивидуального продукта, инженерам необходимо интегрировать модуль LoRa1120 на собственную печатную плату (PCB). В этом разделе представлены ключевые данные и справочная информация для проектирования оборудования.
Определение контактов модуля
На рисунке ниже показана схема расположения контактов модуля LoRa1120, которую можно сопоставить с таблицей ниже.

В таблице ниже приведено полное определение контактов модуля LoRa1120, которое является авторитетным справочником для проектирования принципиальных схем ¹.
№ конт. |
Название |
I/O |
Описание |
1 |
VCC |
- |
Подключение к положительному источнику питания |
2,6,8,11,12,18 |
GND |
- |
Подключение к отрицательному источнику питания |
3 |
MISO |
O |
Выход данных SPI |
4 |
MOSI |
I |
Вход данных SPI |
5 |
SCK |
I |
Вход тактового сигнала SPI |
7 |
2.4/S ANT |
I/O |
Интерфейс антенны 2.4G и S-диапазона, подключение внешней антенны 50Ω |
9 |
GPS ANT |
I |
Интерфейс GPS-антенны, подключение внешней антенны 50Ω |
10 |
ANT |
I/O |
Интерфейс антенны субгигагерцевого диапазона, подключение внешней антенны 50Ω |
13 |
BUSY |
O |
Для индикации состояния, см. документацию на чип |
14 |
RST |
I |
Вход сброса, см. документацию на чип |
15 |
DIO9 |
I/O |
Многофункциональный цифровой интерфейс, см. документацию на чип |
16 |
DIO8 |
I/O |
Многофункциональный цифровой интерфейс, см. документацию на чип |
17 |
NSS |
I |
Вход выбора чипа SPI |
Механические размеры и компоновка печатной платы
Для создания точного посадочного места (footprint) в САПР (таких как Altium Designer, KiCad) необходимо ссылаться на чертеж механических размеров модуля. Это гарантирует правильную пайку модуля на печатную плату ¹.

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

При анализе бюджета мощности следующие электрические характеристики являются ключевыми справочными данными ¹:
Параметр |
Условия теста |
Типичное значение |
Единица |
Диапазон рабочего напряжения |
- |
1.8 - 3.6 |
V |
Ток передачи |
@Sub-GHz, 21dBm |
<110 |
mA |
Ток приема |
@Sub-GHz |
<6 |
mA |
Ток в режиме сна |
@3.3V |
<1 |
µA |
Ток в режиме сна менее 1 мкА является одним из ключевых преимуществ технологии LoRa. Эта чрезвычайно низкая характеристика энергопотребления позволяет устройствам IoT на базе LoRa1120 работать от батареи в течение нескольких лет. При проектировании прошивки стратегия управления питанием должна быть сосредоточена на этом, то есть максимально быстро переводить устройство в режим глубокого сна после завершения задач приема-передачи данных, чтобы максимально продлить срок службы батареи. Данные, представленные в этом разделе, являются мостом, соединяющим экспериментальный прототип с конечным продуктом.
Рекомендации по пайке
Для процесса поверхностного монтажа (SMT) рекомендуется следовать следующему температурному профилю бессвинцовой пайки оплавлением.

В таблице ниже подробно перечислены рекомендуемые параметры, соответствующие стандарту IPC/JEDEC J-STD-020B.
Условие IPC/JEDEC J-STD-020B для бессвинцовой пайки оплавлением |
Крупногабаритные компоненты (толщина >= 2.5 мм) |
Скорость нарастания (Tl до Tp) |
3°C/с (макс.) |
Температура предварительного нагрева |
|
- Минимальная температура (Tsmin) |
150°C |
- Максимальная температура (Tsmax) |
200°C |
- Время предварительного нагрева (ts) |
60~180с |
Средняя скорость нарастания (Tsmax до Tp) |
3°C/с (макс.) |
- Температура ликвидуса (TL) |
217°C |
- Время при температуре ликвидуса (tL) |
60~150 секунд |
Пиковая температура (Tp) |
245+/-5°C |
VII. Заключение
В этом отчете систематически изложен весь процесс реализации базовой связи LoRa точка-точка с использованием модуля LoRa1120 и микроконтроллера ESP32. Содержание охватывает анализ технических характеристик модуля, подключение аппаратной системы, настройку среды разработки, реализацию прошивки, проверку связи и интерпретацию ключевых показателей производительности.
Практика показала, что сочетание модуля LoRa1120, мощного микроконтроллера ESP32 и зрелой программной библиотеки RadioLib предоставляет надежную и эффективную платформу для разработки беспроводных приложений с большим радиусом действия и низким энергопотреблением. Успешная реализация канала связи точка-точка не только подтверждает правильность аппаратной и программной конфигурации, но и предоставляет разработчикам проверенную базовую линию. На основе этой базовой линии разработчики могут дальше исследовать более продвинутые функции модуля, такие как создание сетевых приложений LoRaWAN, использование технологии расширения спектра со скачкообразной перестройкой частоты на большие расстояния (LR-FHSS), а также разработка интегрированных функций геолокации GNSS и Wi-Fi.
VIII. Информационные ресурсы
G-NiceRF. LoRa1120 - многодиапазонный приемопередающий модуль LoRa Edge. Получено с https://www.nicerf.com/lora-module/lora1120.html
G-NiceRF. Центр загрузок для ресурсов LoRa1120. Получено с https://www.nicerf.com/download/?keywords=LoRa1120
G-NiceRF. Официальный сайт. Получено с https://www.nicerf.com/
Официальный магазин G-NiceRF. Страница покупки продукта на AliExpress. Получено с LoRa1120 160mW Multi-Band Wireless Communication Module
Semtech. Портал для разработчиков LoRa®. Получено с https://lora-developers.semtech.com/
LoRa Alliance®. Официальный сайт. Получено с https://lora-alliance.org/
Espressif Systems. Официальная страница ESP32. Получено с https://www.espressif.com/en/products/socs/esp32
Arduino. Официальный сайт. Получено с https://www.arduino.cc/
JGromes. RadioLib - универсальная библиотека для беспроводной связи. Получено с https://github.com/jgromes/RadioLib
Trifon_Ivanovitch
Не очень часто , захожу на этот , сайт , первый раз вижу человека, который пишет без выпендрёжа … видно серьезно и аккуратно подошел к делу , которое любит..
Раздражают «знатоки математики» и «квантовой физики» , которые ну очень любят в конце статьи, привести перечень литературы, только на Английском, вряд ли они это читали , даже , с помощью google translate… но показать, надо … путинские птенцы в науке рубят …
Dimawa Автор
Большое спасибо за вашу поддержку и высокую оценку! Я буду продолжать стараться и постоянно создавать более глубокий и полезный контент.