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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Монтажный шилд для NodeMcu ESP8266

Монтажный шилд для NodeMcu ESP8266

Монтажный модуль расширения для WiFi контроллера NodeMcu ESP8266Позволяет выполнять монтаж прое..

90.58грн.

Таймеры Arduino UNO — Часть 1. Введение

Таймеры Arduino UNO — Часть 1. Введение

Таймеры Arduino UNO — Часть 1. Введение Теория Что такое таймер в микроконтроллере ATm..

Пружина для натяжения ремня 6мм

Пружина для натяжения ремня 6мм

Стальная пружина для натяжки зубчатого ремня GT2 шириной 6 ммИспользуется в 3d принтерах и CNC-станк..

4.82грн.

Уроки Arduino константы для начинающих

Уроки Arduino константы для начинающих

Здравствуйте друзья! Я рад, презентовать вам новый урок под названием Arduino константы! ..

Автоматическое управление твердотопливным котлом Arduino Nano

Автоматическое управление твердотопливным котлом Arduino Nano

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