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. Такий проєкт стане у пригоді як для навчальних завдань, так і для реальних промислових чи побутових застосувань.
ESP32: цифрові входи та виходи (Digital Inputs & Outputs) з прикладами
ESP32: цифрові входи та виходи Мікроконтролер ESP32 має десятки універсальних GPIO (General Purpo..
Ніжки для лазерного гравера CNC 4 шт. с кріпленням
Ніжки з МДФ для побудови CNC лазерного гравера. Виконують роль власне ніжок, а також повноцінного кр..
179.78грн.
Подвійний шилд розширення для WeMos D1 Mini
Шилд для паралельної розбудови модулів плати WiFi контролера WeMos D1 MiniТака побудова дозволя..
40.40грн.
Мотор безщіточний A2212 1000KV
Мотор трьохфазний безколекторний для мультикоптерів 1000KVKV: 1000 обертів на вольтМаксимальна ..
360.40грн.
Таймери Arduino UNO — Частина 4. Використання таймерів для керування сервоприводами
Таймери Arduino UNO — Частина 4. Використання таймерів для керування сервоприводами Теорія ..





