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 — Вложенные циклы Введение Вложенные циклы — это конструкция, при которой один ц..

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

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

Генератор импульсов на NE555 Генератор прямоугольных импульсов на основе популярной микросхемы NE..

42.30грн.

Клавиатура для панели управления аналоговая

Клавиатура для панели управления аналоговая

Аналоговая клавиатура может использоваться как джойстик управления или как панель управления менюшко..

100.02грн.

Как не сжечь Arduino и ESP32: GPIO, токи и напряжения простыми словами

Как не сжечь Arduino и ESP32: GPIO, токи и напряжения простыми словами

Как не сжечь Arduino и ESP32: GPIO, токи и напряжения простыми словами Arduino и ESP32 не «нежные..