Arduino - Sistema de Aquecimento

Neste tutorial, vamos controlar a temperatura do ambiente usando um elemento de aquecimento e um sensor de temperatura DS18B20. Quando a temperatura estiver muito fria, ligamos o elemento de aquecimento. Quando a temperatura estiver quente, desligamos o elemento de aquecimento. Você também pode adaptar o código para outros sensores de temperatura, como DHT11, DHT22 ou LM35, em vez do sensor DS18B20.

Hardware Necessário

1×Arduino Uno R3
1×Cabo USB 2.0 tipo A/B (para PC com USB-A)
1×Cabo USB 2.0 tipo C/B (para PC com USB-C)
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×4.7 kΩ Resistor
1×Relé
1×Elemento de Aquecimento
1×Fonte de Alimentação 12V
1×Conector de Alimentação DC
1×Fios Jumper
1×(Recomendado) Shield com Bornes de Parafuso para Arduino Uno
1×(Recomendado) Sensors/Servo Expansion Shield for Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Case para Arduino Uno
1×(Recomendado) Placa Base de Prototipagem e Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
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.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

Sobre o Elemento de Aquecimento e o Sensor de Temperatura DS18B20

O elemento de aquecimento usado neste tutorial usa uma fonte de alimentação de 12v. Se o elemento de aquecimento recebe alimentação, ele emite calor. Para controlar o elemento de aquecimento pelo Arduino, precisamos usar um relé entre eles.

Se você ainda não conhece o sensor de temperatura e o elemento de aquecimento (pinagem, como funciona, como programar ...), aprenda sobre eles nos seguintes tutoriais:

Diagrama de Ligação

  • Diagrama de ligação com protoboard
Diagrama de ligação do sistema de aquecimento com Arduino

This image is created using Fritzing. Click to enlarge image

  • Diagrama de ligação com adaptador (recomendado)
Diagrama de ligação do sistema de aquecimento controlado por temperatura com Arduino

This image is created using Fritzing. Click to enlarge image

Como o Sistema Funciona

  • O Arduino lê a temperatura do sensor de temperatura
  • Se a temperatura cair abaixo de um limite inferior, o Arduino liga o elemento de aquecimento
  • Se a temperatura subir acima de um limite superior, o Arduino desliga o elemento de aquecimento

O processo acima se repete infinitamente no loop.

Código Arduino para Sistema de Aquecimento com sensor DS18B20

/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 2 // Arduino pin connected to DS18B20 sensor's DQ pin #define RELAY_PIN A5 // Arduino pin connected to relay which connected to heating element const int TEMP_THRESHOLD_UPPER = 20; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 15; // lower threshold of temperature, change to your desire value OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial sensors.begin(); // initialize the sensor pinMode(RELAY_PIN, OUTPUT); // initialize digital pin as an output } void loop() { sensors.requestTemperatures(); // send the command to get temperatures temperature = sensors.getTempCByIndex(0); // read temperature in Celsius if(temperature > TEMP_THRESHOLD_UPPER) { Serial.println("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

No código acima, o Arduino liga o elemento de aquecimento quando a temperatura cai abaixo de 15°C e mantém o elemento de aquecimento ligado até que a temperatura fique acima de 20°C

Passos Rápidos

  • Conecte o Arduino ao PC por meio do cabo USB
  • Abra o Arduino IDE e selecione a placa e a porta corretas
  • Vá até o ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise “DallasTemperature” e encontre a biblioteca DallasTemperature de Miles Burton.
  • Clique no botão Install para instalar a biblioteca DallasTemperature.
Biblioteca Dallas Temperature para Arduino
  • Será solicitado que você instale a dependência da biblioteca
  • Clique no botão Install All para instalar a biblioteca OneWire.
Biblioteca OneWire para Arduino
  • Copie o código acima e abra-o no Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Deixe o ambiente ao redor do sensor mais quente ou mais frio
  • Verifique a temperatura do elemento de aquecimento e do seu ambiente

Conhecimento Avançado

O método de controle acima é o controlador liga-desliga (on-off), também conhecido como sinalizador ou controlador "bang-bang". Esse método é muito simples de implementar.

Existe um método alternativo chamado controlador PID. Com o controlador PID, a temperatura desejada fica mais estável, mas ele é muito difícil de entender e implementar. Por isso, o controlador PID não é popular no controle de temperatura.

※ 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!