Как организовать собственный 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 - Как собрать свое устройство при помощи FakeTec PCB и NRF52840

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

Как добавить ChatGPT в свою сеть Meshtastic

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

Как добавить экран в устройство FakeTec NRF52840 Meshtastic

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

Понимание и оптимизация использования каналов в устройствах Meshtastic

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

Как включить Paxcounter (счетчик прохожих)  на узле Meshtastic

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

Как подключить датчик телеметрии (температуры и т.д.) BME280 в устройство FakeTec Meshtastic

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

Как создать свой собственный узел Meshtastic из ESP32 и Lora Radio

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

Как добавить метеодатчик BME280 в узел Heltec Lora v3 Meshtastic

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

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

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

Краткий обзор / рейтинг устройств Meshtastic

На рынке Meshtastic уже довольно много устройств, которые стали популярны у пользователей.
Так что же лучше, Heltec v4 или LilyGo T-Beam? ProMicro Faketec или Wireless Tracker? Разберем в этом обзоре. 

Как добавить GPS к узлу Meshtastic

Расскажем, как добавить GPS-модуль к существующему узлу Heltec V3 Lora ESP32 Meshtastic Node. Это руководство также подойдет для любых плат ESP32, но могут потребоваться небольшие изменения.

Выбор аккумулятора для питания устройства Мештастик

Пошаговое руководство по добавлению аккумулятора к Heltec LoRa v3. Выбираем литий-полимерные (LiPo) или литий-ионные (Li-ion) аккумуляторы — наше руководство поможет вам принять обоснованное решение, исходя из ваших конкретных потребностей.

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

Усовершенствуйте свой узел Meshtastic Node, добавив энкодер для быстрого выбора стандартных ответов — сообщений. 

Топ рейтинг корпусов для Meshtastic

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

Что такое Meshtastic? - Полное руководство по началу работы

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

Как добавить клавиатуру в узел Meshtastic

Узнайте, как легко интегрировать клавиатуру M5Stack CardKB Keyboard в ваш узел Meshtastic, превратив его в автономное коммуникационное устройство. 

Удаленное управление узлом Meshtastic с помощью телефона через сеть Mesh

В этом блоге мы расскажем вам о том, как удаленно управлять узлом Meshtastic с помощью телефона через сеть Mesh. Этот метод гораздо проще, чем использование командной строки, и вам не понадобится подключение по Bluetooth или Wi-Fi (после первоначальной настройки).

Как добавить датчик пламени в узел Meshtastic

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

Отличие Meshtastic от обычной УКВ рации

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

Как добавить датчик дождя/снега к вашему узлу Meshtastic

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

Как передавать звук при помощи Meshtastic

Вы когда-нибудь задумывались, можно ли отправлять голосовые заметки через сеть Meshtastic с низкой пропускной способностью? Я точно задумывался, и с удовольствием поделюсь своим уик-эндом, посвященным попытке реализовать эту идею.

Лучшая антенна для портативного узла Meshtastic

Ознакомьтесь с лучшими антеннами Meshtastic с помощью нашего подробного руководства. 

Как добавить зуммер (пассивный) к вашему узлу Meshtastic

Добавляем пищалку — оповещение о входящих, к любой ноде.

Как добавить датчик телеметрии BME280 к DIY ESP32 Meshtastic

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

Квадрифлярная антенна 433МГц своими руками

Как самому сделать QFA антенну с хорошими параметрами. 

Как добавить датчик звука / охранную сигнализацию к ноде Meshtastic

Добавление датчика звука позволит реагировать на события, проникновение на охраняемый обьект и так далее.

Как добавить тревожную кнопку к узлу Meshtastic

Простая интеграция SOS кнопки в ваше устройство Meshtastic

Как устроена лучшая антенна для Meshtastic

Благодаря участнику канала Мештастик Россия, появились фото внутреннего устройства антенны Gizont 868 МГц

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