ESP32 MQTT клиент с термопарой K-типа и модулем MAX6675

В этом проекте мы рассмотрим, как собрать простую систему измерения высокой температуры с использованием термопары K-типа, модуля MAX6675 и микроконтроллера ESP32. Данные будут передаваться на MQTT-брокер, что позволяет интегрировать систему в проекты интернета вещей и удалённый мониторинг.

Необходимое оборудование и компоненты

  • Микроконтроллер ESP32
  • Модуль термопары MAX6675
  • Термопара K-типа
  • Блок питания 5 В (USB или адаптер)
  • Соединительные провода
  • Базовый MQTT-брокер (например, Mosquitto или облачный сервис HiveMQ, EMQX)

Схема подключения и принцип работы

Модуль MAX6675 преобразует аналоговый сигнал от термопары K-типа в цифровой и передает данные по интерфейсу SPI. ESP32 получает данные температуры и отправляет их на MQTT-брокер через Wi-Fi. Далее значения можно просматривать в приложении Home Assistant, Node-RED или любой другой IoT-платформе.

MAX6675 ESP32
VCC 3.3V
GND GND
SCK GPIO18
CS GPIO5
SO GPIO19

Пример кода для ESP32


// Подключаем необходимые библиотеки
#include <WiFi.h>
#include <PubSubClient.h>
#include <max6675.h>

// Пины подключения MAX6675
int thermoSO = 19;   // MISO
int thermoCS = 5;    // CS
int thermoSCK = 18;  // SCK

MAX6675 thermocouple(thermoSCK, thermoCS, thermoSO);

// Данные для Wi-Fi
const char* ssid = "Ваш_SSID";
const char* password = "Ваш_Пароль";

// Данные для MQTT
const char* mqtt_server = "broker.hivemq.com"; // можно использовать локальный брокер
const int mqtt_port = 1883;
const char* mqtt_topic = "esp32/temperature";

WiFiClient espClient;
PubSubClient client(espClient);

void setup_wifi() {
  delay(10);
  Serial.println();
  Serial.print("Подключение к ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi подключен");
  Serial.print("IP адрес: ");
  Serial.println(WiFi.localIP());
}

void reconnect() {
  // Переподключение к MQTT при обрыве
  while (!client.connected()) {
    Serial.print("Попытка подключения к MQTT...");
    if (client.connect("ESP32Client")) {
      Serial.println("Подключено");
    } else {
      Serial.print("Ошибка, код=");
      Serial.print(client.state());
      Serial.println(" Повтор через 5 секунд");
      delay(5000);
    }
  }
}

void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, mqtt_port);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  // Считываем температуру
  double celsius = thermocouple.readCelsius();
  Serial.print("Температура: ");
  Serial.println(celsius);

  // Отправляем данные в MQTT
  char msg[50];
  dtostrf(celsius, 6, 2, msg);
  client.publish(mqtt_topic, msg);

  delay(3000); // отправка каждые 3 секунды
}

Применение и расширение проекта

  • Мониторинг температуры печей, котлов и нагревателей.
  • Удалённое измерение температуры в промышленном оборудовании.
  • Интеграция в умный дом через Home Assistant или Node-RED.
  • Создание системы многоканального измерения с несколькими модулями MAX6675.
  • Передача данных не только в MQTT, но и в базы данных или облачные сервисы.

Заключение

Используя ESP32 и модуль MAX6675 с термопарой K-типа, можно легко построить систему измерения температуры с передачей данных по MQTT. Такой проект будет полезен как для учебных целей, так и для реальных промышленных или бытовых задач.

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

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

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

Светодиод 5мм

Светодиод диаметром 5мм. LED Максимальный ток 20 мА ..

1.98грн.

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

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

3 бесплатных MQTT-сервера для тестирования ESP32 При разработке IoT-проектов на ESP32 почти все..

Оптопара EL817 SMD

Оптопара EL817 SMD

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

4.28грн.

Умный дом #10: Датчик CO2

Умный дом #10: Датчик CO2

Умный дом #10: Датчик CO₂ Контроль качества воздуха в помещении — один из ключевых элем..

Вольтметр амперметр цифровой 100В 10А

Вольтметр амперметр цифровой 100В 10А

Цифровой вольтметр и амперметр постоянного токаДиапазон измерения напряжения 0 ...100 ВДиапазон..

127.39грн.