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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Модуль реле 4-канальний 5В 10А

Модуль реле 4-канальний 5В 10А

4-канальный модуль реле для підключення напряму до дискретного виходу контролера. Світлодіодна індик..

143.14грн.

Мотор безщіточний A2212 1000KV

Мотор безщіточний A2212 1000KV

Мотор трьохфазний безколекторний для мультикоптерів 1000KVKV: 1000 обертів на вольтМаксимальна ..

360.40грн.

Цикли 2 — Цикл for

Цикли 2 — Цикл for

Цикли 2 — Цикл for Вступ Цикл for — один із найчастіше використовуваних інструментів в A..

Уроки Arduino константи для початківців

Уроки Arduino константи для початківців

Привіт, друзі! Я радий презентувати вам новий урок під назвою Arduino константи! Конста..

Arduino SIM800 GPRS HTTP GET запит

Arduino SIM800 GPRS HTTP GET запит

Привіт друзі! Ми з кожним разом знаємо все більш цікаві застосування GSM-модуля SIM800. На цей раз н..