ESP8266 - Sistema de Aquecimento

Neste tutorial, vamos usar o ESP8266, uma resistência de aquecimento e o sensor de temperatura DS18B20 para controlar a temperatura de um ambiente.

Além disso, o código pode ser adaptado para outros sensores de temperatura, como DHT11, DHT22 ou LM35, no lugar do sensor DS18B20.

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
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×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) Placa de Expansão com Bornes de Parafuso para ESP8266

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.

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 a Resistência de Aquecimento e o Sensor de Temperatura DS18B20

A resistência de aquecimento usada neste tutorial requer uma fonte de alimentação de 12V. Se a energia for fornecida à resistência de aquecimento, ela gera calor. Para controlar a resistência de aquecimento com o ESP8266, é preciso usar um relé como intermediário.

Se você não conhece os sensores de temperatura e as resistências de aquecimento (pinagem, funcionamento, programação etc.), os tutoriais a seguir podem ajudar:

Diagrama de Ligação

ESP8266 NodeMCU sistema de aquecimento diagrama de ligação

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

Como o Sistema Funciona

  • O ESP8266 monitora a temperatura do sensor de temperatura.
  • Se a temperatura cair abaixo de um certo limite inferior, o ESP8266 ativa as resistências de aquecimento.
  • Quando a temperatura excede um limite superior específico, o ESP8266 desativa as resistências de aquecimento.

O ciclo se repete continuamente.

Código ESP8266 para Sistema de Resfriamento com sensor DS18B20

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

No código acima, quando a temperatura é menor que 15°C, o ESP8266 ativa a resistência de aquecimento. A resistência de aquecimento permanece ligada até a temperatura subir acima de 20°C.

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Ligue os componentes como mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Conecte o seu ESP8266 ao computador com um cabo USB
  • Abra o Arduino IDE e selecione a placa e a porta corretas
  • Clique no ícone Libraries na barra à esquerda do Arduino IDE.
  • Pesquise por “Dallas” e localize a biblioteca DallasTemperature de Miles Burton.
  • Pressione o botão Install para instalar a biblioteca DallasTemperature.
ESP8266 NodeMCU biblioteca Dallas Temperature
  • Você será solicitado a instalar a dependência. Clique no botão Install All para instalar a biblioteca OneWire.
ESP8266 NodeMCU biblioteca onewire
  • Copie o código acima e abra-o com o Arduino IDE.
  • Clique no botão Upload no Arduino IDE para compilar e fazer upload do código para o ESP8266.
  • Mude a temperatura do ambiente ao redor do sensor.
  • Veja a temperatura da resistência de aquecimento e do ambiente.

Conhecimento Avançado

A técnica mencionada acima é o controlador liga-desliga, também chamado de controlador sinalizador ou "bang-bang". É muito fácil implementar esse método.

Existe uma abordagem alternativa conhecida como controlador PID. Esse método de controle de temperatura é mais estável, mas é complexo e difícil de entender e colocar em prática. Por isso, o controlador PID não é muito usado.

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