Arduino Nano ESP32 - Módulo Termopar MAX6675

Todos os outros tutoriais de temperatura desta série - o DHT11/DHT22, o DS18B20, o TMP36 - têm a mesma fraqueza: nenhum deles sobrevive a ser colocado em algo realmente quente. Seus encapsulamentos de plástico e suas pastilhas de silício começam a ceder bem abaixo de 150°C, o que descarta torrar um lote de grãos de café, vigiar um forno de cerâmica ou conferir a temperatura da chaminé de um fogão a lenha.

A solução é uma tecnologia de medição totalmente diferente, chamada termopar, combinada com uma pequena placa breakout que transforma sua saída em um número que o Arduino Nano ESP32 consegue ler. Este tutorial mostra como ligar e programar o módulo termopar MAX6675 com o Arduino Nano ESP32.

Módulo termopar MAX6675 com Arduino Nano ESP32

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×MAX6675 Thermocouple Module
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Módulo Termopar MAX6675

O que chega como "um módulo MAX6675" são na verdade duas coisas juntas: uma pequena placa breakout construída em torno do chip MAX6675 e uma sonda termopar Tipo K ligada a ela.

Pinagem do módulo termopar MAX6675
image source: diyables.io

O Que É um Termopar?

Tirando o marketing, um termopar nada mais é do que dois fios de metais diferentes soldados em uma ponta, chamada de junção quente. Aqueça essa junção e uma pequena tensão aparece entre os fios, aumentando ou diminuindo conforme a temperatura muda. Não há chip, não há silício, nada para derreter - e é exatamente por isso que um termopar pode ser colocado em lugares que matariam na hora um sensor comum.

Os termopares vêm em vários tipos (J, K, E, T e outros), batizados com o nome do par de metais usado. O Tipo K - feito de Chromel e Alumel - é o que você mais vai encontrar, e cobre confortavelmente de cerca de -328°F a +2300°F.

Sozinho, porém, esse sinal na casa dos milivolts é difícil de trabalhar. Ele precisa ser amplificado, linearizado e convertido em um valor de temperatura de verdade antes que um Arduino Nano ESP32 possa fazer algo útil com ele - e esse trabalho de conversão fica por conta do MAX6675.

Pinagem do Módulo MAX6675

A placa breakout amostra constantemente a pequena tensão da sonda, passa por um conversor analógico-digital de 12 bits e entrega a leitura pronta ao Arduino Nano ESP32 por um link de 3 fios somente de leitura:

  • VCC: entrada de alimentação, aceita de 3.0V a 5.5V.
  • GND: referência de terra.
  • SCK: clock serial, controlado pelo Arduino Nano ESP32 para deslocar cada leitura para fora.
  • CS: chip select - o Arduino Nano ESP32 coloca este pino em nível baixo sempre que quer fazer uma leitura.
  • SO: saída de dados serial, a linha MISO do módulo, que leva o resultado de 12 bits de volta ao Arduino Nano ESP32. Não existe pino MOSI, já que o chip nunca precisa receber dados.

Na borda oposta há Bornes de Parafuso de 2 pinos para a sonda: o fio vermelho entra no +, o fio azul entra no -.

A sonda que acompanha o módulo tem cerca de 18 polegadas de comprimento e é especificada apenas para 0°C a 80°C, embora o próprio chip MAX6675 consiga digitalizar leituras de 0°C até 1024°C. Para medir qualquer coisa acima de 80°C, é preciso trocar por uma sonda Tipo K com especificação de temperatura mais alta.

Especificações rápidas:

  • Tensão de Operação: 3.0V - 5.5V
  • Faixa Digitalizada: 0 - 1024°C (sonda incluída limitada a 0-80°C)
  • Precisão: ±3°C
  • Resolução: cerca de 0.25°C

Diagrama de Ligação

A lógica do próprio Arduino Nano ESP32 roda em 3.3V, e o módulo MAX6675 funciona bem entre 3.0V e 5.5V, então alimente o VCC pelo pino 3V3 da placa e ligue o GND ao GND. Escolha quaisquer três pinos digitais livres para SCK, CS e SO e depois encaixe os fios vermelho e azul da sonda nos terminais + e - do módulo.

Diagrama de ligação do módulo termopar MAX6675 com Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Tabela de ligação do Módulo MAX6675 e do Arduino Nano ESP32

Módulo MAX6675 Arduino Nano ESP32
VCC → 3V3
GND → GND
SCK → D4
CS → D3
SO → D2

Código Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-max6675-thermocouple-module */ #include "max6675.h" // Define the Arduino Nano ESP32 pins the MAX6675 module is connected to int SCK_PIN = D4; // Clock (SCK) pin int CS_PIN = D3; // Chip Select (CS) pin int SO_PIN = D2; // Serial Out (SO) pin // Create the thermocouple object using the pins above MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN); void setup() { Serial.begin(9600); delay(500); // give the MAX6675 time to stabilize before the first read } void loop() { // Read the current temperature in both units float temperature_C = thermocouple.readCelsius(); float temperature_F = thermocouple.readFahrenheit(); Serial.print("Thermocouple reading: "); Serial.print(temperature_C); Serial.print("\xC2\xB0"); // degree symbol Serial.print("C / "); Serial.print(temperature_F); Serial.print("\xC2\xB0"); // degree symbol Serial.println("F"); delay(1000); // MAX6675 only refreshes its conversion roughly once per second }

Passos Rápidos

Para começar com o Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente do Arduino Nano ESP32 no Arduino IDE.
  • Ligue o módulo MAX6675 ao Arduino Nano ESP32 de acordo com a tabela e o diagrama acima.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Abra o Library Manager clicando no ícone Library Manager na barra de navegação esquerda do Arduino IDE
  • Digite "MAX6675" na caixa de busca e procure a biblioteca MAX6675 da Adafruit.
  • Clique no botão Install para instalar a biblioteca.
  • Search for MAX6675 library created by Adafruit and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Library Manager
Type:
All
Topic:
All
MAX6675 library by Adafruit
Arduino library for interfacing with MAX6675 thermocouple amplifier More info
1.1.2
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
Arduino Nano ESP32 on COM15
1
  • Copie o código acima e cole no Arduino IDE.
  • Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload do Arduino IDE.
  • Encoste a ponta do termopar no que você quiser medir - uma caneca de água quente funciona bem para um primeiro teste.
  • Abra o Serial Monitor para ver as leituras chegando.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Thermocouple reading: 24.75°C / 76.55°F Thermocouple reading: 24.75°C / 76.55°F Thermocouple reading: 26.25°C / 79.25°F Thermocouple reading: 29.50°C / 85.10°F Thermocouple reading: 34.00°C / 93.20°F Thermocouple reading: 38.75°C / 101.75°F Thermocouple reading: 41.25°C / 106.25°F
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

※ Nota:

Se o Serial Monitor continuar imprimindo o mesmo valor ou algo claramente errado, confira de novo a ligação de SCK/CS/SO com os pinos usados no sketch e verifique se os fios vermelho e azul da sonda estão realmente presos dentro do bloco de bornes, e não apenas encostando nele.

Explicação do Código

O sketch começa incluindo o cabeçalho da biblioteca MAX6675, que cuida da comunicação de baixo nível com o chip.

#include "max6675.h"

Em seguida, três números de pino são definidos para a conexão entre o Arduino Nano ESP32 e as linhas de clock, chip-select e saída de dados do módulo.

int SCK_PIN = D4; // Clock (SCK) pin int CS_PIN = D3; // Chip Select (CS) pin int SO_PIN = D2; // Serial Out (SO) pin

Depois é criado um objeto MAX6675 chamado thermocouple, informando à biblioteca qual pino tem qual função.

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

O setup() abre a conexão Serial e faz uma breve pausa, dando ao módulo um momento para se estabilizar antes que o sketch peça a primeira leitura.

void setup() { Serial.begin(9600); delay(500); }

Dentro do loop(), duas funções da biblioteca fazem todo o trabalho: thermocouple.readCelsius() e thermocouple.readFahrenheit() disparam cada uma uma nova conversão no chip e retornam o resultado na unidade pedida.

float temperature_C = thermocouple.readCelsius(); float temperature_F = thermocouple.readFahrenheit();

Os dois valores são então impressos em uma única linha do Serial Monitor, seguidos de um atraso de um segundo, no mesmo ritmo em que o MAX6675 consegue de fato produzir novas conversões.

Serial.print("Thermocouple reading: "); Serial.print(temperature_C); Serial.print("\xC2\xB0"); // degree symbol Serial.print("C / "); Serial.print(temperature_F); Serial.print("\xC2\xB0"); // degree symbol Serial.println("F"); delay(1000);

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!