ESP8266 NodeMCU: термопара K-типа с усилителем MAX6675
В этом руководстве вы узнаете, как считывать температуру с помощью термопары K-типа с усилителем MAX6675 и платы ESP8266 NodeMCU. Термопара K-типа — это тип датчика температуры с широким диапазоном измерений, например от −200 до 1260°C (от −326 до 2300°F).
В этом руководстве рассматривается, как подключить термопару K-типа к плате ESP8266, установить необходимую библиотеку и использовать простой скетч для отображения показаний датчика в мониторе последовательного порта (Serial Monitor).
В этом руководстве мы рассмотрим следующие темы:
Что такое термопара K-типа?
Термопара — это устройство, состоящее из двух различных электрических проводников, образующих электрическое соединение — термическое соединение. Изменение температуры на соединении создаёт небольшое, но измеримое напряжение на опорном (эталонном) соединении, которое можно использовать для расчёта температуры.
Термопара может быть изготовлена из различных металлов. Используемые металлы влияют на диапазон напряжения, стоимость и чувствительность. Существуют стандартизированные комбинации металлов, которые дают различные типы термопар: B, E, J, N, K, R, T и S.
Наше руководство посвящено термопаре K-типа. Термопара K-типа изготовлена из проводников хромеля и алюмеля и имеет общий диапазон температур от −200 до 1260°C (от −328 до 2300°F).
Усилитель MAX6675
Для получения температуры от термопары нам нужен усилитель для термопары. Выходная температура от усилителя термопары зависит от напряжения, считываемого на опорном соединении. Напряжение на опорном соединении зависит от разности температур между опорным соединением и термическим соединением. Таким образом, нам необходимо знать температуру на опорном соединении.
Усилитель термопары MAX6675 оснащён датчиком температуры для измерения температуры на опорном соединении (компенсация холодного спая) и усиливает крошечное напряжение на опорном соединении, чтобы мы могли считать его с помощью наших микроконтроллеров. Усилитель MAX6675 обменивается данными с микроконтроллером по протоколу связи SPI, а данные выводятся с 12-битным разрешением.
Обычно вы можете приобрести комплект с термопарой K-типа и усилителем MAX6675. Ниже приведён список наиболее важных характеристик MAX6675. Для более подробного описания, пожалуйста, обратитесь к даташиту MAX6675.
Прямое цифровое преобразование выходного сигнала термопары K-типа
Компенсация холодного спая
Простой последовательный интерфейс, совместимый с SPI
Диапазон рабочего напряжения: от 3,0 до 5,5 В
Диапазон рабочих температур: от −20 до 85°C
Разрешение температуры 0,25°C, позволяет считывать показания до 1024°C (1875°F).
Подключение термопары K-типа к усилителю MAX6675
Как упоминалось ранее, MAX6675 обменивается данными с микроконтроллером по протоколу связи SPI.
MAX6675 |
Микроконтроллер |
|---|---|
SO |
MISO |
CS |
CS |
SCK |
CLK |
VCC |
VCC (3,3 В или 5 В) |
GND |
GND |
Получение температуры с термопары K-типа и усилителя MAX6675
В этом разделе вы узнаете, как получить температуру с вашей термопары K-типа. Мы покажем вам простой пример, который считывает температуру и отображает её в мониторе последовательного порта Arduino IDE.
Необходимые компоненты
Для выполнения этого руководства вам понадобятся следующие компоненты:
Соединительные провода (мама-мама)
Вы можете использовать ссылки выше или перейти непосредственно на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!
Схема подключения — ESP8266 с термопарой K-типа и усилителем MAX6675
Подключите усилитель MAX6675 к ESP8266, как показано на следующей схеме.
Вы также можете воспользоваться следующей таблицей.
MAX6675 |
ESP8266 |
|---|---|
GND |
GND |
VCC |
3.3V |
SCK |
GPIO 14 |
CS |
GPIO 15 |
SO |
GPIO 12 |
Установка библиотеки MAX6675 для Arduino
Существуют различные библиотеки для получения температуры с термопары K-типа с использованием усилителя MAX6675. Мы будем использовать библиотеку max6675 от Adafruit.
Выполните следующие шаги для установки библиотеки в Arduino IDE:
Откройте Arduino IDE и перейдите в Sketch > Include Library > Manage Libraries. Должен открыться менеджер библиотек.
Введите «max6675» в поле поиска и установите библиотеку от Adafruit.
Код — получение температуры с термопары K-типа и усилителя MAX6675
Получение температуры с термопары K-типа с помощью ESP8266 очень просто. Библиотека предоставляет пример, который получает температуру и отображает результаты в мониторе последовательного порта Arduino IDE.
Код был адаптирован из примера, предоставленного библиотекой, чтобы сделать его совместимым с ESP8266.
// this example is public domain. enjoy! https://learn.adafruit.com/thermocouple/
#include "max6675.h"
int thermoDO = 12;
int thermoCS = 15;
int thermoCLK = 14;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void setup() {
Serial.begin(9600);
Serial.println("MAX6675 test");
// wait for MAX chip to stabilize
delay(500);
}
void loop() {
// basic readout test, just print the current temp
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
// For the MAX6675 to update, you must delay AT LEAST 250ms between reads!
delay(1000);
}
Как работает код
Сначала подключите библиотеку max6675.h.
#include "max6675.h"
Определите пины, которые подключены к усилителю термопары MAX6675.
int thermoDO = 12;
int thermoCS = 15;
int thermoCLK = 14;
Создайте объект MAX6675 с именем thermocouple на пинах, которые мы определили ранее.
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
В функции setup() инициализируйте монитор последовательного порта со скоростью 9600 бод.
Serial.begin(9600);
В функции loop() мы считываем температуру и отображаем её в мониторе последовательного порта. Библиотека предоставляет метод для считывания температуры в градусах Цельсия и метод для считывания температуры в градусах Фаренгейта.
thermocouple.readCelsius(): возвращает температуру в градусах Цельсия.
thermocouple.readFahrenheit(): возвращает температуру в градусах Фаренгейта.
Следующие строки считывают температуру и отображают её в мониторе последовательного порта.
Serial.print("C = ");
Serial.println(thermocouple.readCelsius());
Serial.print("F = ");
Serial.println(thermocouple.readFahrenheit());
Как видите, получить показания температуры с помощью термопары K-типа и усилителя MAX6675 очень просто.
Демонстрация
Загрузите код на плату ESP8266. Не забудьте выбрать используемую плату в Tools > Board и выбрать COM-порт, к которому подключена ваша плата, в Tools > Port.
После загрузки кода на ESP8266 откройте монитор последовательного порта со скоростью 9600 бод. Нажмите встроенную кнопку RST на ESP8266.
Новые показания температуры отображаются в мониторе последовательного порта каждую секунду.
Заключение
В этом руководстве вы узнали, как считывать температуру с помощью термопары K-типа и усилителя MAX6675. Термопары имеют широкий диапазон измерения температуры и позволяют считывать очень высокие температуры — до 1024°C (1875°F) при использовании термопары K-типа с MAX6675.
У нас есть руководства для других популярных датчиков с платой ESP8266, которые могут вам понравиться:
Узнайте больше о ESP8266 из наших ресурсов: