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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Символьний індикатор LCD 2004

Символьний індикатор LCD 2004

Чотирьохрядковий символьний рідкокристалічний індикатор з блакитною підсвіткою LCD2004.Напруга живле..

205.21грн.

Arduino управління двигунами постійного струму

Arduino управління двигунами постійного струму

Arduino управління двигунами постійного струму1. Управління маленькими моторчикамиУправління маленьк..

Моно підсилювач потужності 18 Вт TDA2030A

Моно підсилювач потужності 18 Вт TDA2030A

Модуль одноканального підсилювача потужності звукової частоти на основі легендарної мікросхеми TDA20..

62.86грн.

Цифровий датчик температури та вологості DHT11

Цифровий датчик температури та вологості DHT11

Вимірювання відносної вологості в межах 20 ... 90 %Точність вимірювання вологості ± 5,0 %RHВимірюван..

59.29грн.

Обмін даними між двома Arduino за допомогою програмного UART

Обмін даними між двома Arduino за допомогою програмного UART

Обмен данными между двумя Arduino при помощи программного UARTКоммуникация по последовательному порт..