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

Циклы 7 — Циклы и задержки

Циклы 7 — Циклы и задержки Введение В Arduino часто используется функция delay() для создания па..

Винт М2,5х14мм нержавейка

Винт М2,5х14мм нержавейка

Винт из нержавейки с резьбой М2,5 для крепления элементов любительских проектовДлина резьбы 14 мм..

1.11грн.

Пушка Гауса

Пушка Гауса

Подключаем к контроллеру Arduino, stm32, Raspberry PI пушку Гауса через электропускателиА если ещё с..

Умный дом #3: ESP32 + датчик температуры и влажности (DHT22/SHT21)

Умный дом #3: ESP32 + датчик температуры и влажности (DHT22/SHT21)

Умный дом #3: ESP32 + датчик температуры и влажности (DHT22/SHT21) Контроль температуры и в..

Подключение кнопки к Arduino

Подключение кнопки к Arduino

Изначально собирался написать статью о фильтрации дребезга кнопки, подключенной к контроллеру Arduin..