Хабрахабр

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

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

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

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

image

Источник.

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

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

Технически это означает, что выборки сигналов должны быть переданы в одно место для вычисления ВКФ. Математически второй подход базируется на взаимнокорреляционной функции (ВКФ). То есть, для построения задуманной системы TDOA-позиционирования LoRa, надо поставить на каждый измеритель по SDR-приемнику с программным демодулятором LoRa, например, таким, какой описан в этой русскоязычной популярной статье. При этом необходимо на всех измерителях, участвующих в позиционировании, выделить по времени отсчеты одного источника излучения. Центральный вычислитель тогда сможет при приеме пакетов отсчетов с одним ID запустить процедуру вычисления ВКФ и процедуру позиционирования. Далее, на каждом SDR-измерителе-приемнике нужно выделять 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. И вам потребуется быстрый интернет. Потом этот поток сжимается, получается около 3-4 Мбит/с выходит из Raspberry в сторону нашего сервера непрерывно. 4 Мбит/с.

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

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

image

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

mkdir build
cd build
cmake ..
make

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

./Bolt5_Client host port [frequency]

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

image

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

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

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

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

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

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

image

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

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

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

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»