Как организовать собственный MQTT для узлов Meshtastic

Тип статьи:
Перевод
Источник:

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

Изображение

Зачем использовать MQTT с Meshtastic?

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

Однако, несмотря на то, что Meshtastic отлично справляется с локальной автономной связью, могут возникнуть ситуации, когда вам необходимо соединить группы, географически разделенные значительными расстояниями, например, в разных частях света. Кроме того, могут возникнуть ситуации, когда у вас нет прямого сигнала к mesh сети, но вы все равно хотите общаться. Именно здесь MQTT (Message Queuing Telemetry Transport) может сыграть решающую роль.

MQTT — это легкий протокол обмена сообщениями, предназначенный для сетей с низкой пропускной способностью, высокой задержкой или ненадежностью. Интегрировав MQTT с Meshtastic, вы можете создать шлюзовое устройство, которое будет служить мостом между двумя или более удаленными сетями Meshtastic, а также обеспечивать резервный путь связи, когда сигнал сетки слаб или недоступен. Вот как это работает в деталях:

Изображение

  1. Локальная связь: Каждая группа, используя устройства Meshtastic, может свободно общаться в пределах своей локальной ячеистой сети. Это означает, что устройства группы A (расположенные в одной части света или в отдаленном районе) могут отправлять сообщения друг другу без подключения к Интернету или Wi-Fi. То же самое относится и к группе B, находящейся в другом месте.
  2. Шлюзовое устройство: Чтобы соединить эти две группы, в каждой из них в качестве шлюза может быть назначено устройство/ устройства Meshtastic (для резервирования в качестве шлюза может выступать более одного устройства). Это устройство-шлюз будет иметь дополнительное подключение к Интернету или локальной сети, способное запустить MQTT-брокер.
  3. Интеграция MQTT: Шлюзовое устройство в группе A подключается к MQTT-брокеру (серверу, который маршрутизирует сообщения между MQTT-клиентами). Этот брокер может быть размещен на локальном сервере или в облачном сервисе. Шлюзовое устройство публикует сообщения из локальной ячеистой сети в определенную тему MQTT. Аналогично, оно подписывается на другую тему для получения сообщений от брокера MQTT.
  4. Ретрансляция сообщений: Брокер MQTT выступает в качестве посредника. Когда шлюзовое устройство в группе A публикует сообщение в теме MQTT, брокер MQTT получает его, а затем пересылает шлюзовому устройству в группе B, и наоборот. Это позволяет передавать сообщения между двумя группами, несмотря на значительные расстояния, разделяющие их.
  5. Глобальная связь: Благодаря этой настройке группа A и группа B могут общаться друг с другом так, как будто они являются частью одной локальной сети. Использование MQTT в качестве моста обеспечивает эффективную передачу сообщений между двумя удаленными группами, используя сильные стороны как Meshtastic для локальной связи, так и MQTT для передачи сообщений на большие расстояния, создавая универсальную и мощную коммуникационную сеть.\
  6. Резервное соединение: В случаях, когда нет сигнала к сети сетки или сигнал сетки слабый, шлюз MQTT обеспечивает надежное резервное соединение. Это обеспечивает непрерывную связь, даже когда основная сеть сетки не доступна.
  7. Более быстрая передача сообщений: Сообщения MQTT могут передаваться гораздо быстрее через Интернет по сравнению с сетчатой сетью. В периоды, когда доступ к интернету доступен, MQTT может разгрузить часть трафика из сети сетки, обеспечивая более быструю и эффективную доставку сообщений.

Как установить MQTT с помощью Docker

1. Установите Docker

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

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

2. Создание базовой папки для конфигурации MQTT

Создайте каталог для хранения файлов конфигурации MQTT:

mkdir mqtt5
cd mqtt5
mkdir config

В этой установке будет храниться файл mosquitto.conf и файл pwfile для управления паролями.

3. Создание файла конфигурации Mosquitto

Создайте файл конфигурации Mosquitto:

nano config/mosquitto.conf

Добавьте следующее базовое содержимое конфигурации, включая поддержку WebSocket:

allow_anonymous false
listener 1883
listener 9001
protocol websockets
persistence true
password_file /mosquitto/config/pwfile
persistence_file mosquitto.db
persistence_location /mosquitto/data/

4. Создание файла паролей Mosquitto

Создайте пустой файл паролей:

touch config/pwfile

5. Создание файла Docker-Compose

Создайте файл docker-compose.yml со следующим содержимым:

nano config/mosquitto.conf
nano docker-compose.yaml

version: «3.7»
services:
  mqtt5:
    image: eclipse-mosquitto
    container_name: mqtt5
    ports:
      — «1883:1883»  # Default MQTT port
      — «9001:9001»  # MQTT port for WebSockets
    volumes:
      — ./config:/mosquitto/config:rw
      — ./data:/mosquitto/data:rw
      — ./log:/mosquitto/log:rw
    restart: unless-stopped

6. Создание и запуск контейнера Docker для MQTT

Если у вас не установлен Docker Compose, вы можете установить его с помощью

sudo apt install docker-compose

Запустите Docker-контейнер:

sudo docker-compose up -d

Проверьте, запущен ли контейнер, и запишите его идентификатор:

sudo docker ps

7. Создайте пользователя/пароль в файле pwfile

Войдите в интерактивном режиме в контейнер MQTT:

sudo docker exec -it <container-id> sh

Создайте новый файл паролей и добавьте пользователя (он запросит пароль):

mosquitto_passwd -c /mosquitto/config/pwfile user1

Чтобы добавить дополнительных пользователей (без опции -c):

mosquitto_passwd /mosquitto/config/pwfile user2

Чтобы удалить пользователя:

mosquitto_passwd -D /mosquitto/config/pwfile <user-name-to-delete>

Выйти из контейнера:

exit

Перезапустите контейнер, чтобы применить изменения:

sudo docker restart <container-id>

Как установить MQTT на Windows

1. Загрузите и установите Mosquitto

Загрузите программу установки Mosquitto с официального сайта Mosquitto. Запустите программу установки и следуйте инструкциям на экране.

2. Настройте Mosquitto

После установки настройте Mosquitto:

  • Перейдите в каталог установки Mosquitto (обычно C:\Program Files\Mosquitto).
  • Откройте файл mosquitto.conf в текстовом редакторе и настройте его необходимым образом. Вы можете использовать те же параметры конфигурации, что и для Docker.

allow_anonymous false
listener 1883
listener 9001
protocol websockets
persistence true
password_file /mosquitto/config/pwfile
persistence_file mosquitto.db
persistence_location /mosquitto/data/

3. Запустите Mosquitto

Запустите Mosquitto с помощью командной строки:

cd «C:\Program Files\Mosquitto»
mosquitto -c mosquitto.conf

Как установить MQTT в Linux

1. Установите Mosquitto

Установите Mosquitto с помощью менеджера пакетов:

sudo apt install mosquitto

2. Настройте Mosquitto

Отредактируйте файл конфигурации Mosquitto:

sudo nano /etc/mosquitto/mosquitto.conf

Добавьте следующую конфигурацию:

bashCopy codeallow_anonymous false
listener 1883
listener 9001
protocol websockets
persistence true
password_file /etc/mosquitto/pwfile
persistence_file mosquitto.db
persistence_location /var/lib/mosquitto/

3. Создание файла паролей

Создайте файл паролей и добавьте пользователя:

touch /etc/mosquitto/pwfile
sudo mosquitto_passwd -c /etc/mosquitto/pwfile user1

4. Запустите Mosquitto

Запустите службу Mosquitto:

sudo systemctl start mosquitto
sudo systemctl enable mosquitto

💡 Чтобы убедиться, что вы можете подключиться к MQTT-брокеру, вам нужно знать IP-адрес или доменное имя машины, на которой запущен брокер. Кроме того, вы должны убедиться, что необходимые порты MQTT открыты и доступны

Настройки для Meshtastic

После запуска брокера MQTT настройте узлы Meshtastic для подключения к нему:

 Перейдите в раздел Настройки
 Затем MQTT
 Включено: Включите модуль MQTT.
    MQTT Proxy Enabled: Пусть устройство использует сетевое соединение телефона для подключения к серверу MQTT.
    Шифрование включено: Включите эту опцию, если вам нужны зашифрованные пакеты.
    JSON Disabled: Для нашего использования мы отключим поддержку пакетов JSON для упрощения интеграции с другими системами.
    Map Reporting Enabled: Периодически отправлять отчет о карте на MQTT-сервер.
    Map Report Publish Interval: Установите периодичность публикации отчета о карте.
    Map Report Position Precision: Установка точности для позиции в отчете карты.
    Корневая тема: Установка корневой темы для организации сообщений MQTT. ' msh/mymesh
    Адрес сервера: Задайте адрес вашего пользовательского MQTT-сервера.
    Имя пользователя: имя пользователя для вашего MQTT-сервера.
    Пароль: пароль для вашего MQTT-сервера.
    TLS Enabled: TLS для безопасного соединения, если вы настроили SSL-сертификаты на своем сервере. В этом руководстве мы пока отключим его.

Вернитесь в настройки
Затем Каналы
Выберите канал, для которого вы хотите включить MQTT, Включить Uplink/Downlink.

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

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

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

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

Нет комментариев. Ваш будет первым!

Похожие статьи

В этом руководстве подробно описана сборка недорогого, экономичного узла Meshtastic с использованием микросхемы NRF52840 Pro, LoRa-модуля HT-RA62 и печатной платы FakeTec.

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

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

Использование каналов — это ключ к эффективной связи. Мониторинг и оптимизация использования каналов имеют решающее значение для здоровой сети.

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

Мы расскажем вам, как добавить модуль телеметрии в устройство FakeTec Meshtastic Device для измерения давления воздуха, температуры и влажности

 Создайте свой собственный узел Meshtastic LoRa Node с помощью нашего простого руководства DIY. Полный шаг за шагом для создания вашей собственной распределенной коммуникационной системы.

Мы расскажем вам о том, как добавить модуль BME280 (температура, влажность, давление, качество воздуха)  к существующему узлу Heltec V3 Lora ESP32 Meshtastic Node. 

Встройте датчик вибрации/землетрясения в ваш узел Meshtastic на базе ESP32 LoRa с помощью нашего руководства, подходящего для таких плат, как Heltec V3 Lora, TTGo или T-Beam. Такая настройка позволяет сети передавать предупреждения при обнаружении сейсмической активности.

Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.