3 безкоштовні MQTT-сервери для тестування ESP32

Під час розробки IoT-проєктів на ESP32 майже завжди виникає одне й те саме питання: де швидко взяти MQTT-сервер для тестування?

Чи потрібно підіймати брокер локально? Використовувати комп’ютер, телефон, окремий сервер або хмару? Платний сервіс чи існують безкоштовні варіанти? А що робити, якщо сервер потрібен лише на кілька днів для налагодження скетча?

Саме ця невизначеність часто вибиває з робочого ритму. Замість того щоб зосередитися на написанні коду, доводиться витрачати час на пошук, встановлення та налаштування MQTT-брокера.

У цій статті я зібрав 3 безкоштовні MQTT-сервери, які повністю готові до використання. Без інсталяцій, без реєстрації, без складних налаштувань — просто берете параметри і одразу тестуєте свої ESP32-скетчі.


Загальний принцип тестування MQTT на ESP32

Для демонстрації роботи кожного брокера використовується простий тестовий скетч:

  • ESP32 підключається до Wi-Fi
  • Після цього підключається до MQTT-сервера
  • Кожні 5 секунд надсилає повідомлення-лічильник у MQTT-топік
  • Приймає повідомлення з того ж топіка та виводить їх у Serial Monitor

Як MQTT-клієнт використовується бібліотека EspMQTTClient, яка автоматично керує підключенням до Wi-Fi та MQTT.

Рекомендується використовувати унікальні назви топіків, оскільки всі сервери публічні й ними одночасно користуються інші розробники.




1. test.mosquitto.org — публічний брокер Mosquitto

Перший сервер — test.mosquitto.org. Це публічний MQTT-брокер, до якого може підключитися будь-який клієнт з інтернету.

Основні особливості

  • Доступ без реєстрації
  • Кілька портів для тестування
  • Підтримка шифрування та сертифікатів

Доступні порти

  • 1883 — без шифрування, без логіна та пароля
  • 1884 — з логіном і паролем
  • Додаткові порти з TLS та сертифікатами

Повідомлення на сервері зберігаються приблизно 20 секунд, чого цілком достатньо для налагодження.

Недоліки

  • Налаштування розкидані по сторінці та не завжди очевидні
  • Сервер часто перевантажений
  • Перше підключення може бути досить повільним

Під час тестування через MQTT Explorer видно велику кількість чужих топіків, тому використання власних унікальних назв є обов’язковим.

#include <EspMQTTClient.h>

const char* WIFI_SSID     = " ";
const char* WIFI_PASSWORD = " ";

const char* MQTT_HOST     = "test.mosquitto.org";
const int   MQTT_PORT     = 1884;
const char* MQTT_USER     = "rw";
const char* MQTT_PASS     = "readwrite";
const char* MQTT_CLIENT_ID = "esp32_client_1";

const char* MQTT_TOPIC    = "esp32-wroom";

EspMQTTClient client(
  WIFI_SSID,
  WIFI_PASSWORD,
  MQTT_HOST,
  MQTT_USER,
  MQTT_PASS,
  MQTT_CLIENT_ID,
  MQTT_PORT
);

unsigned long lastSend = 0;
int counter = 0;

void onConnectionEstablished() {
  client.subscribe(MQTT_TOPIC, [](const String &payload) {
    Serial.print("Получено из топика ");
    Serial.print(MQTT_TOPIC);
    Serial.print(": ");
    Serial.println(payload);
  });
}

void setup() {
  Serial.begin(115200);
  delay(1000);
  Serial.println("Start ESP32 MQTT example");
}

void loop() {
  client.loop();   // обязательно вызывать в loop()

  unsigned long now = millis();
  if (now - lastSend >= 5000) {  // каждые 2 секунды
    lastSend = now;

    String msg = String(counter++);
    if(client.isMqttConnected()){
      client.publish(MQTT_TOPIC, msg);
      Serial.print("Опубликовано в ");
      Serial.print(MQTT_TOPIC);
      Serial.print(": ");
      Serial.println(msg);
    }
  }
}


2. mqtt.pro — зручна демо-пісочниця

Другий брокер — mqtt.pro. Це один з найзручніших варіантів для швидких тестів та експериментів.

Переваги

  • Готові налаштування для копіювання
  • Логін і пароль уже задані
  • Реєстрація не потрібна

Обмеження

  • Не більше 20 повідомлень за секунду з одного IP
  • Максимальний розмір повідомлення — 1 КБ
  • Дані очищаються кожної ночі

Логін і пароль періодично змінюються, що захищає сервер від надмірного навантаження.

Під час тестування сервер працює стабільно, а кількість сторонніх повідомлень значно менша, ніж на test.mosquitto.org.

const char* MQTT_HOST     = "public.mqtt.pro";
const int   MQTT_PORT     = 1883;
const char* MQTT_USER     = "ajbkvbp/test-user";
const char* MQTT_PASS     = "mIajDWuzPaTcvsnj";
const char* MQTT_CLIENT_ID = "esp32_client_1";

const char* MQTT_TOPIC    = "esp32-wroom";


3. HiveMQ (mqtt-dashboard.com) — швидкий та «чистий» сервер

Третій сервер у цьому огляді надається компанією HiveMQ. Налаштування доступні через сервіс mqtt-dashboard.com.

Особливості

  • 4 доступні порти
  • Відсутній логін і пароль
  • Дуже швидке підключення

Відсутність авторизації — серйозний мінус для комерційних проєктів, але для швидкої перевірки роботи MQTT це дуже зручний варіант.

Головна перевага

На сервері відсутні сторонні та системні топіки. Відображаються лише користувацькі дані, що робить налагодження максимально наочним.

HiveMQ одразу попереджає, що цей сервер призначений виключно для тестування і не підходить для продакшена.

const char* MQTT_HOST     = "broker.hivemq.com";
const int   MQTT_PORT     = 1883;
const char* MQTT_USER     = "";
const char* MQTT_PASS     = "";
const char* MQTT_CLIENT_ID = "esp32_client_1";

const char* MQTT_TOPIC    = "esp32-wroom";


Порівняння MQTT-серверів


Кожен із розглянутих брокерів підходить для своїх задач:

  • HiveMQ mqtt-dashboard.com — максимальна простота без логіна та пароля
  • mqtt.pro/public-broker/ — тестування з автентифікацією
  • test.mosquitto.org — робота з TLS та сертифікатами

Цей список зручно використовувати як швидкий довідник під час розробки IoT-проєктів.


Розробка електроніки та плат під замовлення

Моя основна діяльність — проєктування та виробництво електронних плат, а також розробка пристроїв на базі програмованих контролерів ESP32, ESP8266, Arduino та інших.

Я спеціалізуюся на віддаленому бездротовому зборі даних з електронних датчиків і передачі інформації в хмару.

Ознайомитися з прикладами виконаних робіт можна в портфоліо реалізованих електронних проєктів.

Якщо у вас є ідея — просто опишіть задачу простими словами, і ми разом перетворимо її на робочий комерційний продукт.


Ця стаття — зручний практичний довідник, до якого можна повертатися під час кожного нового проєкту.

<< Проекти << Усі товари >> Статті, уроки >>

Написати відгук

Примітка: HTML размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
ЦАП цифро-аналоговий перетворювач I2C

ЦАП цифро-аналоговий перетворювач I2C

Цифро-аналоговий перетворювач з I2C інтерфейсом на основі мікросхеми MCP4725Використовуєть..

139.58грн.

Модуль блока питания 3,3В 1А

Модуль блока питания 3,3В 1А

Зручний модуль живлення з 220В AC в 3,3В постійного струму. Розроблений для встановлення на друкован..

153.96грн.

Автоматичне відкриття вікна за температурою — проект на Arduino

Автоматичне відкриття вікна за температурою — проект на Arduino

Скільки разів ви прокидалися від холоду влітку чи восени, забувши закрити вікно перед сном? Надто ..

Arduino - що це таке?

Arduino - що це таке?

Arduino це недорога, доступна для покупки електронна плата з мікроконтролером та виводами входів-вих..

Преобразование Char в Integer и обратно

Преобразование Char в Integer и обратно

Преобразование целочисленных переменных int в символьные переменные char в Arduino IDE - довольно пр..