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

Информация о статье

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

Содержание

Изображение

Несколько месяцев назад я рассказывал о своих экспериментах по отправке голосовых сообщений через сети Meshtastic. Этот проект привлек большое внимание и показал мне, насколько сообщество стремится вывести эти сетевые устройства за традиционные рамки. Сегодня я предлагаю вам нечто новое: полноценную систему ботов с искусственным интеллектом, которая обеспечивает ответы на основе GPT непосредственно в вашей сети mesh

Что мы создаем

Этот ИИ-бот превращает любой узел Meshtastic с доступом в интернет в интеллектуальный хаб для всей вашей ячеистой сети. Любой человек в сети может задавать вопросы, отправляя сообщения с командным префиксом (например, "!"), а бот отвечает на них сгенерированными искусственным интеллектом ответами. Считайте, что вы наделили свою сеть мозгом.

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

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

Понимание архитектуры

Система работает по модели «хаб и точка»:

Узел-концентратор (ИИ-бот):
  • Подключен к mesh сети и интернету
  • Запускает приложение Python с графическим интерфейсом
  • Обрабатывает входящие команды и запрашивает API OpenAI
  • Управляет длиной ответа, чтобы соответствовать ограничениям Meshtastic
  • Транслирует ответы обратно в mesh сеть.
Участники mesh сети:
  • Отправляют запросы, используя префикс команды (по умолчанию: "!")
  • Получают ответы ИИ в виде обычных текстовых сообщений
  • Не требуется специального программного обеспечения или конфигурации
  • Работает с любым устройством Meshtastic.

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

Необходимые условия и требования

Прежде чем мы приступим к сборке, вот что вам понадобится:

Оборудование:

  •  Как минимум одно устройство Meshtastic (T-Beam, Heltec, LilyGo и т. д.)
  •  USB-кабель для подключения устройства
  •  Компьютер с ОС Windows, Mac или Linux
  •  Интернет-соединение для узла бота.
Программное обеспечение:
  •  Python 3.7 или новее
  •  Ключ API OpenAI (для надежности рекомендуется платный аккаунт)
  •  Необходимые библиотеки Python (подробно описаны ниже).
Настройка сети:
  •  Функционирующая mesh сеть Meshtastic
  •  Как минимум еще одно устройство для тестирования

Установка и настройка

Давайте запустим эту штуку. Я проведу вас через все шаги.

Шаг 1: Клонирование репозитория
  1. git clone https://github.com/TelemetryHarbor/meshtastic-ai-bot.git
  2. cd meshtastic-ai-bot
Шаг 2: Установка зависимостей Python

Для работы бота требуется несколько пакетов Python. Установите их с помощью

  1. pip install -r requirements.txt

Если вы работаете в Linux, вам может понадобиться установить tkinter отдельно:

  1. sudo apt-get install python3-tk
Шаг 3: Подключение оборудования

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

Шаг 4: Получите ключ API OpenAI

Зайдите на сайт OpenAI и создайте аккаунт, если у вас его нет. Вам потребуется:

  •  Перейти в раздел API
  •  Создать новый API-ключ
  •  Добавить немного кредитов на свой счет (бот использует GPT-4o-mini, который очень дешев).

Держите этот API-ключ под рукой — он понадобится вам на следующем шаге.

Шаг 5: Запуск приложения

Запустите бота с помощью:

  1. python meshtastic_ai_bot.py

У вас должно появиться окно графического интерфейса с несколькими разделами для настройки.

Обзор конфигурации

Интерфейс разбит на логические секции. 

Изображение

Настройки подключения

Выбор COM-порта: Нажмите кнопку обновления (⟳), чтобы просканировать доступные порты. Ваше устройство Meshtastic должно появиться в выпадающем списке. Выберите его и нажмите «Подключить».

В журнале будет показан статус соединения

  1. [2025-01-15 10:30:15] Connecting to Meshtastic device on COM3...
  2. [2025-01-15 10:30:16] Connected to Meshtastic device successfully
  3. [2025-01-15 10:30:16] Connected to node: 123456789

Настройки ИИ

OpenAI API Key: Вставьте сюда свой ключ API. Поле маскируется для безопасности, но ключ сохраняется в памяти во время работы приложения.

Command Prefix: Задайте символ, который вызывает реакцию ИИ. По умолчанию это «!», но вы можете использовать любой символ. Например:

    «! Когда закат?»
    «? Как лечить растяжение?»
    «@Расскажите мне о местной дикой природе».

Максимальная длина ответа: В Meshtastic есть ограничение в ~240 символов для текстовых сообщений. Я рекомендую ограничиться 200, чтобы быть в безопасности. Бот автоматически обрезает более длинные ответы.

После настройки нажмите «Включить AI», чтобы активировать соединение с OpenAI

Управление ботами

Bot Status: Показывает, активно ли бот слушает команды.

Start/Stop Bot: подключившись к Meshtastic и OpenAI, нажмите «Запустить бота», чтобы начать прослушивать команды в mesh-сети.

Send Test Message: Полезно для проверки работоспособности вашей настройки перед запуском

Как использовать бота

После того как все настроено и запущено, пользоваться ботом очень просто:

Для операторов бота
  • Убедитесь, что ваше устройство подключено и бот показывает «Active»
  • Следите за журналом входящих запросов и ответов
  • Система обрабатывает все автоматически
  • Вы можете останавливать/запускать бота по мере необходимости.
Для пользователей mesh-сетей

Отправляйте любые сообщения, начинающиеся с настроенного вами префикса

! Как разжечь костер в сырых условиях?
! Что такое 150 километров в милях?
! Определите симптомы высотной болезни
! Лучший способ очистки воды из ручьев?

ИИ будет отвечать на вопросы лаконичными и актуальными ответами:

ИИ: Разведите огонь во влажных условиях: 1) Найдите сухое топливо в сухих ветках 2) Постройте платформу из сухих бревен 3) Используйте бересту/толстое дерево 4) Создайте ветрозащиту 5) Начните с малого, постепенно наращивайте. Носите с собой сухую золу в водонепроницаемом контейнере.

Понимание технической реализации

Давайте разберемся, как это работает на самом деле.

Поток обработки сообщений
  • Обнаружение входящих сообщений: Бот подписывается на события сообщений Meshtastic с помощью библиотеки pubsub. Каждое текстовое сообщение обрабатывается методом on_receive.
  • Распознавание команд: Сообщения проверяются на наличие префикса команды. Если он найден, префикс удаляется, а оставшийся текст становится запросом.
  • Форматирование ответа: Ответ AI при необходимости усекается и отправляется обратно в mesh-сеть с помощью interface.sendText().
  • Широковещательная рассылка: Meshtastic занимается распространением ответа по всем узлам сети.

Обработка ИИ: Запрос отправляется в OpenAI с системной подсказкой, которая подчеркивает краткость:

  1. system_prompt = f"""You are a helpful assistant responding via Meshtastic radio network.
  2. Your response MUST be under {self.max_response_length} characters. Be concise and helpful.
  3. If the query requires a long answer, provide the most important information first."""
  4.  

Обработка ошибок

Система включает в себя несколько уровней обработки ошибок:
  •  Сбои соединения: Бот изящно останавливается, если Meshtastic отсоединяется
  •  Ошибки API: Отправляет сообщения об ошибках обратно в сеть
  •  Ограничение скорости: Встроенные задержки предотвращают злоупотребление API
  •  Дедупликация сообщений: Предотвращает обработку одного и того же сообщения дважды
Соображения по производительности

Затраты на API: GPT-4o-mini очень доступен. Типичные запросы стоят доли копейки. Даже при интенсивном использовании стоимость не превышает $5 в месяц.

Время отклика: Большинство запросов выполняются за 2-5 секунд, в зависимости от интернет-соединения и времени отклика API.

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

Расширенная конфигурация

Настройка поведения при ответе

Вы можете изменить системный запрос в коде, чтобы изменить реакцию ИИ

  1. system_prompt = f"""You are a survival expert responding via radio.
  2. Responses must be under {self.max_response_length} characters.
  3. Prioritize safety and practical advice."""

Ведение лога и мониторинг

Приложение регистрирует все действия в графическом интерфейсе и может быть расширено для регистрации в файлах

  1. [2025-01-15 10:35:22] Received message from 987654321: !How to treat burns?
  2. [2025-01-15 10:35:24] AI Response (156 chars): For burns: 1) Cool with water 10-20 mins 2) Remove jewelry/clothing 3) Don't use ice/butter 4) Cover with clean cloth 5) Seek help for severe burns
  3. [2025-01-15 10:35:25] Message sent successfully

Поиск и устранение неисправностей

«No COM ports found»
  • Проверьте подключение USB
  • Установите драйверы устройства Meshtastic
  • Попробуйте другой кабель/порт USB
  • Убедитесь, что устройство включено.
«Failed to connect to OpenAI API»
  • Проверьте правильность ключа API
  • Проверьте подключение к Интернету
  •  Убедитесь, что на счету API есть кредиты
  • Попробуйте регенерировать ключ API.
«Messages not being received»
  • Проверьте возможность подключения к mesh-сети
  • Проверьте, могут ли другие устройства взаимодействовать
  • Убедитесь, что бот действительно запущен (а не просто подключен)
  • Попробуйте сначала отправить тестовое сообщение.
«Responses too long»
  • Уменьшите максимальную длину ответа
  • ИИ иногда игнорирует ограничения длины при сложных запросах
  • Рассмотрите возможность разделения сложных вопросов на части

Ограничения и соображения

Давайте реалистично оценим, что может и чего не может эта система:

Зависимость от сети:
  • Бот-узлу требуется доступ в интернет
  • Если интернет не работает, функциональность AI прекращается
  • Сама mesh-сеть продолжает работать в обычном режиме
  • Пока работает только на публичном канале.
Качество ответа:
  •  Ограничен ~200 символами, что означает только простые ответы
  •  Память пока не реализована, поэтому последующие вопросы не будут работать. (Открытое PR, если вы хотите возразить)
  •  ИИ может иногда давать неверную информацию.
Производительность:
  • Время ответа зависит от скорости интернета
  • Ограничения скорости API могут вызвать задержки при интенсивном использовании
Стоимость:
  • Требуется платный аккаунт OpenAI
  • Стоимость использования зависит от объема запросов
  • Следите за использованием API, чтобы избежать неожиданностей.

Приложения реального мира

Группы туристов: туристы могут спрашивать о состоянии тропы, погоде, первой помощи или идентификации растений, не покидая mesh-сети.

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

Образовательные экспедиции: Студенты могут задавать вопросы по геологии, биологии или местной истории, поддерживая связь через устройства Meshtastic.

Технические полевые работы: Инженеры и техники получают мгновенный доступ к спецификациям, шагам по устранению неполадок или инструментам для расчетов, работая в удаленных местах.

Будущие усовершенствования

Это только начало. Вот некоторые улучшения, над которыми мы можем работать:

Поддержка нескольких моделей: Добавление поддержки различных моделей ИИ или специализированных API и возможностей вызова инструментов (погода, идентификация и т.д.).

Потоковая передача сообщений (история): Разрешить последующие вопросы, которые ссылаются на предыдущий контекст.

Кэширование ответов: локальное хранение общих вопросов для уменьшения количества вызовов API и улучшения времени ответа.

Приоритетная очередь: Обработка экстренных запросов быстрее, чем общих вопросов.

Улучшения интеграции: Улучшение интеграции с функциями управления узлами и маршрутизации Meshtastic. Возможно, поддержка MQTT в приложениях?

Заключение

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

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

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

Meshtastic - Как собрать свое устройство при помощи FakeTec PCB и NRF52840

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

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

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

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

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

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

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

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

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

Прямые ссылки на онлайн радиостанции России.Только потоки.

Ссылки на прямые радиопотоки для вставки в радиоплеер, в Web-радио и так далее. Все то, что обычно прячут.

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

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

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

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

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

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

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

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

Как добавить датчик землетрясения в устройство 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 для мониторинга температуры, влажности и давления воздуха.

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

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

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

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

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

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

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

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

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