Интернет вещей по-русски. Baseband-отель LoRaWAN для владельцев RTL-SDR

в 13:09, , рубрики: baseband hotel, baseband-отель, diy или сделай сам, internet of things, IoT, lora, lora baseband hotel, LoRaWAN, tdoa, Беспроводные технологии, Интернет вещей, интернет вещей Iot, интернет вещей в россии, Разработка для интернета вещей, Стандарты связи

Концепция переноса обработки сигналов в облако не нова. Во-первых, VRAN (virtual radio access network) это основной способ построения сети операторов сотовой связи. Во-вторых, IoT-сеть компании SigFox строится по тому же принципу, это видно из ее патентов. Проще говоря, это все нереальная круть! Так что же можем сделать мы с вами, чтобы не сидеть на обочине прогресса, а приобщиться к теме?

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

Наиболее экономичный способ позиционирования — разностно-дальномерный, в англо-язычной терминологии time difference of arrival (TDOA). Измерители при этом способе могут быть одноканальными, что выгодно отличает их от многоканальных при угломерных методах позиционирования (angle of arrival, AOA). Метод требует измерения относительного времени прихода сигналов на разнесенные в пространстве измерители.

image

Источник.

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

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

Математически второй подход базируется на взаимнокорреляционной функции (ВКФ). Технически это означает, что выборки сигналов должны быть переданы в одно место для вычисления ВКФ. При этом необходимо на всех измерителях, участвующих в позиционировании, выделить по времени отсчеты одного источника излучения. То есть, для построения задуманной системы TDOA-позиционирования LoRa, надо поставить на каждый измеритель по SDR-приемнику с программным демодулятором LoRa, например, таким, какой описан в этой русскоязычной популярной статье. Далее, на каждом SDR-измерителе-приемнике нужно выделять ID излучающего средства и отправлять в центральный вычислитель выборку отсчетов с этим ID. Центральный вычислитель тогда сможет при приеме пакетов отсчетов с одним ID запустить процедуру вычисления ВКФ и процедуру позиционирования. Эта структура показалась мне слишком требовательной к производительности оборудования и сложности софта измерителя. Да и при пиковой нагрузке она давала бы излишнюю нагрузку на канал связи. Поэтому я вспомнил подход к построению структуры обработки сигналов сотовых сетей, который они используют уже давно, а в поколении 5G этот подход должен стать обязательным.

Этот подход называется Virtual Radio Access Network (V-RAN). Можете погуглить по этому сочетанию слов. Я нашел какое-то описание только на английском. Чего-то осмысленно в Wiki по V-RAN нет, зато есть по самой последней концепции — Cloud Radio Access Network или Centralized Radio Access Network (C-RAN). Концепция кажется далекой от реальности — "космические корабли бороздят просторы вселенной".

image

Источник.

Как следует из названия, основная особенность заключается в том, что демодуляция сигнала и все последующие стадии обработки переносятся в облако (Baseband hotel). При таком подходе затраты покупку на оборудование снижаются, но появляются затраты на аренду облачных вычислителей, количество которых можно регулировать довольно быстро и удобно, и главное — в соответствии с насущными требованиями. Это приносит экономию. Экономия поверхностно рассматривается в этой статье. А это более подробное изучение концепции.

Удивительно, но низкоскоростная природа IoT делает возможным применение такого "космического" подхода в народном хозяйстве!

Для этого нужно взять Raspberry (или любой другой комп с Linux с поддержкой RTL-SDR и SOAPY) и саму RTL-SDR, которые сейчас имеются у относительно большого числа домохозяйств людей, скачать исходники или бинарники программы, подключиться к облаку и наблюдать сообщения в агрегаторе IoT-сообщений LoRa, таком, например, как The Things Network.

image

И вам потребуется быстрый интернет. Сейчас поток рассчитывается так: 200 кГц * 32 бита (I, Q) = 6.4 Мбит/с. Потом этот поток сжимается, получается около 3-4 Мбит/с выходит из Raspberry в сторону нашего сервера непрерывно.

Теперь давайте разберем процесс сборки и запуска поэтапно.

Вот RTL-SDR, вставленный в Raspberry Pi 3.

image

Здесь исходники софта, который берет отсчеты с RTL-SDR, фильтрует и прореживает их и отправляет по вашему интернету в облако. Это делается, чтобы уменьшить скорость передачи данных, требуемую для доставки цифрового сигнала в облако. Софт можно собрать такими необычайно оригинальными командами:

mkdir build
cd build
cmake ..
make

Затем надо настроить частоту приема (по умолчанию 868.1 МГц), адрес и порт сервера обработки при запуске:

./Bolt5_Client host port [frequency]

и запустить программу. Если она выдаст

image

, то все идет нормально и можно конфигурировать The Things Network (TTN). Это подробно описано здесь.

Для передачи сообщения вам понадобится LoRa-нод. Мы для простоты использовали такой комплект на Arduino:
image

Затем нужно собственно передать тестовое сообщение и убедиться, что облачная LoRa работает. Пример отправки сообщения с помощью Arduino и LoraWAN shield можно найти тут.
В данный момент возможна отправка сообщения по системе ABP (Activation By Personalization, Активация путем персонализации).

В нашем случаи отправляемое сообщение выглядит так:
image

Сообщение, принятое и записанное в TTN выглядит так:
image

Сейчас система работает в опытном, ручном режиме. Возможны разные чудеса, но мы стремимся, чтобы все стало стабильно как можно скорее. Так как основной нашей целью является позиционирование LoRa, то мы ищем добровольцев, готовых подключить свое железо (RTL-SDR и Raspberry или другой компьютер) к нашему серверу только в одном определенном районе Санкт-Петербурга: метро Пионерская, Удельная и Коломяги. У нас уже есть два измерителя: один на перекрестке Коломяжского проспекта и улицы Королева, второй в БЦ "Лайнер" на Вербной улице. Мы хотим с вашей помощью создать сеть с геометрией, которая позволит позиционировать LoRa в районе Удельного парка.

image

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

Включайтесь вместе с нами в майнинг радио-эфира для интернета вещей!

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

Автор: itsar

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js