3 бесплатных MQTT-сервера для тестирования ESP32

При разработке IoT-проектов на ESP32 почти всегда возникает один и тот же вопрос: где быстро взять MQTT-сервер для тестов?

Нужно ли поднимать брокер локально? Использовать компьютер, телефон, отдельный сервер? Платные сервисы или есть бесплатные варианты? А если сервер нужен всего на несколько дней для отладки скетча?

Именно эта неопределённость часто выбивает из рабочего потока. Вместо написания кода приходится тратить время на поиск, установку и настройку MQTT-брокера.

В этой статье я собрал 3 бесплатных MQTT-сервера, которые полностью готовы к использованию. Никаких установок, регистраций и сложной конфигурации — просто берёте параметры и сразу тестируете свои ESP32-скетчи.


Общий принцип тестирования MQTT на ESP32

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

  • ESP32 подключается к Wi-Fi
  • Затем подключается к MQTT-серверу
  • Каждые 5 секунд отправляет сообщение-счётчик в MQTT-топик
  • Принимает сообщения из того же топика и выводит их в Serial Monitor

В качестве клиента используется библиотека 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 КБ
  • Все данные очищаются каждую ночь

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

При тестировании сервер работает стабильно, подключение проходит уверенно, а количество лишних сообщений значительно меньше, чем у Mosquitto.

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 доступных порта
  • Нет логина и пароля
  • Очень быстрое подключение

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

Главное преимущество

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

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 и сертификатами

Я сам периодически возвращаюсь к этому списку, чтобы быстро выбрать нужный сервер под конкретную задачу.


Разработка устройств и плат под заказ

Моя основная работа — проектирование и производство электронных плат, а также разработка устройств на базе программируемых контроллеров (ESP32, ESP8266, Arduino и другие).

Я специализируюсь на удалённом беспроводном сборе данных с электронных датчиков и отправке информации в облако.

Портфолио реализованных проектов

Если у вас есть идея — просто опишите задачу простыми словами, и мы вместе превратим её в рабочий коммерческий продукт.


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

<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Одна кнопка — три команды на Arduino UNO: клик, двойной клик и длинное нажатие

Одна кнопка — три команды на Arduino UNO: клик, двойной клик и длинное нажатие

Одна кнопка — три команды: клик, длинное нажатие и двойной клик на Arduino UNO В большинств..

Диммер регулятор мощности симисторный 220В 8А

Диммер регулятор мощности симисторный 220В 8А

Регулятор мощности на основе симистора BTA16-600Принцип регулирования состоит в том, что через нагру..

111.67грн.

Штекер Micro USB 2.0 разборный

Штекер Micro USB 2.0 разборный

Разборный штекер микро-USB с выводами под пайкуЦвет чорный..

12.78грн.

Arduino Nano I2C связь между контроллерами

Arduino Nano I2C связь между контроллерами

Давайте разберемся с самой удобной коммуникацией физически заложенной в контроллеры Arduino I2C э..

Умный дом #7: ESP32 — тёплый пол с автоматическим регулированием температуры по DS18B20 и WEB-управлением

Умный дом #7: ESP32 — тёплый пол с автоматическим регулированием температуры по DS18B20 и WEB-управлением

Умный дом #7: ESP32 — тёплый пол с автоматическим регулированием температуры по DS18B20 и WEB-уп..