|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
test.mosquitto.org
Время создания: 13.09.2025 23:04
Автор: alensav
Текстовые метки: test.mosquitto.org
Раздел: PLATFORMIO - Atiny
Запись: alensav/MyTetra2/main/base/1757793871iuvv7zlm74/text.html на raw.githubusercontent.com
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Как подключиться клиентом и направить топики из сервера? Qwen3-Next-80B-A3B10:56 PM Отлично! Вы привели полный технический текст с сайта test.mosquitto.org — теперь давайте превратим его в понятную, практическую инструкцию, как подключиться к этому MQTT-брокеру и отправлять/получать сообщения — с кодом, командами и примерами для вашего проекта с ATtiny85 + ESP-01. ✅ Руководство: Как подключиться к test.mosquitto.org и использовать MQTT для управления реле 🎯 Цель:
🔍 Что такое MQTT? MQTT (Message Queuing Telemetry Transport) — это легковесный протокол передачи сообщений по модели “публикация/подписка”:
💡 Это как радио: 🌐 Доступ к test.mosquitto.org ✅ Основные параметры брокера
✅ Для вашего проекта — используйте порт 1883, без авторизации. 🛠️ Как подключиться? — 4 способа ✅ Способ 1: Подключение через Arduino IDE (для ESP-01) (Как в вашем проекте — уже готовый код) ✔️ В вашем коде ESP-01 #1 (кнопка) и ESP-01 #2 (реле) используйте: cpp 2 const char* mqtt_server = "test.mosquitto.org"; // ✅ РАБОТАЕТ! const int mqtt_port = 1883; // ✅ НЕЗАШИФРОВАННЫЙ ПОРТ ⚠️ НЕ используйте 8883 или другие порты — они требуют TLS, что сложно на ESP-01 без сертификатов. ✅ Код из предыдущего ответа уже полностью рабочий — просто скопируйте его. ✅ Способ 2: Проверить через терминал (Linux/macOS/WSL) Установите клиент Mosquitto: bash 2 3 4 5 # Ubuntu/Debian sudo apt update && sudo apt install mosquitto-clients # macOS brew install mosquitto ➤ Подписаться на все сообщения (в реальном времени): bash mosquitto_sub -h test.mosquitto.org -t "#" -v -t "#" — подписаться на все топики 👉 Откройте ещё одно окно терминала и отправьте сообщение: bash mosquitto_pub -h test.mosquitto.org -t "home/button/1/toggle" -m "TOGGLE" home/button/1/toggle TOGGLE ✅ Это означает: брокер работает, сообщение дошло. ✅ Способ 3: Через веб-клиент (без установки) 🔗 Перейдите: Настройте:
Нажмите Connect → затем Subscribe Теперь в другом браузере откройте тот же сайт → введите:
Нажмите Publish → и вы увидите сообщение в первом окне! ✅ Это идеально для тестирования без кода. ✅ Способ 4: Подключиться через Python (для мониторинга) Установите библиотеку paho-mqtt: bash pip install paho-mqtt python 2 3 4 5 6 7 8 9 10 11 12 ⌄ import paho.mqtt.client as mqtt def on_message(client, userdata, msg): print(f"[ПОЛУЧЕНО] {msg.topic}: {msg.payload.decode()}") client = mqtt.Client() client.on_message = on_message client.connect("test.mosquitto.org", 1883) client.subscribe("home/#") # Подписываемся на все топики home/* print("Ожидание сообщений...") client.loop_forever() Запустите — и отправьте команду через mosquitto_pub: bash mosquitto_pub -h test.mosquitto.org -t "home/button/1/toggle" -m "TOGGLE" [ПОЛУЧЕНО] home/button/1/toggle: TOGGLE 🧩 Какие топики использовать для вашего проекта?
💡 Используйте логичную структуру: Пример:
⚠️ Важные ограничения test.mosquitto.org
🔧 Добавьте Retain, если хотите, чтобы реле “помнило” своё состояние после перезагрузки: cpp client.publish("home/relay/1/state", "ON", true); // true = retain 📦 Пример: Полная цепочка (ваш проект) graph LR A[ATtiny85<br>Нажал кнопку] -->|UART: "TOGGLE"| B[ESP-01 #1<br>MQTT-клиент] B -->|publish "home/button/1/toggle"|"test.mosquitto.org" C[ESP-01 #2<br>MQTT-клиент] -->|subscribe "home/button/1/toggle"| B C -->|переключает реле| D[Реле] D -->|отправляет состояние| C C -->|publish "home/relay/1/state ON"| "test.mosquitto.org" E[Ваш телефон/ПК] -->|sub "home/relay/1/state"| "test.mosquitto.org" ✅ Теперь вы можете:
💡 Бонус: Как сделать умное уведомление? Запустите простой Python-скрипт, который отправляет Telegram-уведомление, когда реле включается: python 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ⌄ ⌄ ⌄ import paho.mqtt.client as mqtt import requests TELEGRAM_TOKEN = "YOUR_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" def send_telegram(message): url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage" data = {"chat_id": CHAT_ID, "text": message} requests.post(url, data=data) def on_message(client, userdata, msg): if msg.topic == "home/relay/1/state" and msg.payload.decode() == "ON": send_telegram("🔌 Реле включено!") client = mqtt.Client() client.on_message = on_message client.connect("test.mosquitto.org", 1883) client.subscribe("home/relay/1/state") client.loop_forever() ?? Чтобы получить Telegram-бота:
✅ Итоговая таблица: Что делать?
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Так же в этом разделе:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|