Одна из интересных технологий «интернета вещей» — сети LoRa. В интернете очень мало информации о нём описаны. Восполнит пробел не получится у меня, но свои 5 копеек я вставлю.
Что же такое лора?
Это технология связи на большие (Long Range) расстояния, запатентованная компанией Semtech, и реализованная в их чипах SX1272, SX1276, SX1278 LoRa это протокол низкого уровня, поверх которого могут реализовываться более высокоуровневые протоколы, например LoRaWAN.
Особенность стандарта LoRa — это передача небольших пакетов данных с невысоким энергопотреблением. По заверениям производителя, дальность на открытом воздухе может достигать 10км, а время работы от батареи может составлять несколько лет. Рабочие частоты зависят от страны, и составляют 433 или 868МГц (EU-версия) или 915МГц (USA-версия). В реальности эти цифры очень сильно отличаются от заявленных.
Для практической проверки дальности один из модемов был оставлен в квартире у окна, второй был подключен к Raspberry Pi и вынесен на улицу. В некоторых источниках обещается дальность в городских условиях порядка 3км. Результат увы, не так хорош: на практике, при максимальной мощности и антенне на 868МГц, сигнал полностью глушится уже примерно через 3 многоквартирных дома. Разумеется на открытых местах дальность выше, но стоит «завернуть за угол», как сигнал весьма быстро пропадает. В общем, результат 3км в городе наверное можно получить разве что если разместить антенну на телебашне, реально можно рассчитывать в лучшем случае на 300м. Но и это не так плохо, учитывая небольшую мощность передаваемого сигнала.
Устройства стандарта LoRa представляют собой удобное и готовое решение для низкоскоростной передачи малых объемов данных на относительно большие (сотни метров-километры) расстояния. Устройства LoRa оптимизированы под низкое энергопотребление, что позволяет их использовать с питанием от батарей или аккумуляторов (однако платой за это является низкая скорость передачи данных). К примеру, если фермер захочет выводить на домашний дисплей температуру в теплицах, это будет практически идеальным применением для LoRa — малые объемы данных, большие расстояния и прямая видимость до объектов. Модемы также могут использоваться в больших помещениях — ангары, заводы, там где тянуть провод до датчиков сложно или дорого, а объемы данных невелики. Возможно использование и в домашних условиях, высокая чувствительность модулей позволит использовать даже короткие антенны в виде «зигзага» на печатной плате. В городе же, качество связи будет сильно зависеть от наличия радиовидимости между антеннами, высоты размещения антенн и пр. Многие сейчас сильно воодушевлены возможностями «глобальных» сетей LoraWAN, однако вопрос размещения антенн будет весьма критичным для дальности в подобной сети. Впрочем, это верно для любых систем передачи радиосигналов, так что чуда здесь не случилось.
Ну вкратце о самом esp32 модуле:
Сам контроллер включает в себя esp32, oled дисплей и модуль lora на 433мГц
Wi-Fi 802.11 bgn до 150 Мбит/с
4 MAC интерфейса
AMPDU
Bluetooth Поддержка BR/EDR/LE
Поддержка передатчика и класса 1 и класса 2
CPU Двухъядерный Xtensa LX6 до 400DMIPS
До 600DMIPS при напряжении ядра 1.2 В
Размер кода на 15% меньше
6 уровней прерываний
Внутренняя RAM для пользовательского ПО 500kB, 200kB для пользователей
Flash 4 МБ пространства
Настраиваемое отображение таблицы для OTA
Внутренне LDO для внешней Flash 1.8 В/3.3 В
Поддержка отключения питания Flash во время «глубокого сна»
SD/eMMC/SDIO Host да
SPI 4
GPIO 32
UART 2 с DMA
LED PWM поддерживается аппаратно, 16 каналов,
таймеры 20 bit, работающие на тактовой частоте 80 МГц
13bit точности при 1 кГц
15bit точности при 250 Гц
Motor PWM Pluse-counter аппаратно
Удалённое управление поддерживается аппаратно
Таймер 2 таймера 32 bit и 2 таймера 64 bit
1 RTC-таймер 48 bit
Сторожевой таймер (watchdog) 2 системных Watchdog и 1 RTC watch dog
ADC 16 каналов, 12 bit, поддержка аналогового усилителя Low Noise Analog Amplifier
DAC 2 канала, 10 bit
32k Crystal поддержка для режимов «сна»
Датчик сенсора поддерживается, 10 каналов
Датчик температуры да
Шифрование Flash поддерживается аппаратно
E-fuse 1 kB, записывается пользователем, включая MAC-адреса
AES поддержка AES-128, AES-192 и AES-256 стандарта FIPS PUB 197
SHA поддержка SHA-1, SHA-256, SHA-384 и SHA-512 стандарта FIPS PUB 180-4
Восстановление памяти в RTC 8Kbyte, выполняется по инструкции
ULP-сопроцессор поддержка контроля датчиков в режиме «глубокого сна»