ESP8266 - Sensor de Temperatura

Este tutorial ensina você a usar o sensor de temperatura 1-wire DS18B20 à prova d'água com o ESP8266. Este sensor tem ótimo custo-benefício, é simples de usar e tem uma aparência atraente.

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×Protoboard
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 o Sensor de Temperatura One Wire - DS18B20

Pinagem do Sensor de Temperatura

O sensor de temperatura DS18B20 tem três pinos que precisam ser conectados de uma maneira específica:

  • Pino GND: deve ser conectado ao terra (0V)
  • Pino VCC: deve ser conectado à fonte de tensão (5V ou 3.3V)
  • Pino DATA: é o barramento de dados 1-wire e deve ser conectado a um pino digital da placa ESP8266.

O sensor normalmente vem em duas variedades: encapsulamento TO-92 (que se parece com um transistor) e sonda à prova d'água. Neste tutorial, usaremos a versão com sonda à prova d'água.

Pinagem do sensor de temperatura DS18B20

Conectar um sensor de temperatura DS18B20 a um Arduino requer um resistor de pull-up, o que pode ser trabalhoso. Felizmente, alguns fabricantes facilitaram as coisas oferecendo um adaptador de ligação com resistor de pull-up integrado e bornes de parafuso, simplificando o processo de ligação.

Diagrama de Ligação

  • Diagrama de ligação usando uma protoboard.
Diagrama de ligação do sensor de temperatura com ESP8266 NodeMCU

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.

  • Diagrama de ligação usando o adaptador de ligação (recomendado).
Diagrama de ligação do DS18B20 com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Recomendamos comprar um sensor DS18B20 junto com o adaptador de ligação para uma montagem sem complicações. Este adaptador inclui um resistor integrado, eliminando a necessidade de um resistor adicional na ligação. Também o testamos e funcionou bem.

Como Programar o Sensor de Temperatura DS18B20

  • Inclua a biblioteca no seu projeto.
#include <OneWire.h> #include <DallasTemperature.h>
  • Declare um objeto do tipo OneWire, correspondente ao pino conectado ao pino DATA do sensor. Além disso, declare um objeto do tipo DallasTemperature.
OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library
  • Inicie o processo de configuração do sensor:
DS18B20.begin(); // initialize the sensor
  • Envie o comando para obter as temperaturas.
DS18B20.requestTemperatures();
  • Leia a temperatura em Celsius.
temperature_C = DS18B20.getTempCByIndex(0);
  • Calcule Fahrenheit a partir de Celsius:
temperature_F = temperature_C * 9 / 5 + 32;

Código ESP8266

/* * 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-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN D7 // The ESP8266 pin connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); float temperature_C; // temperature in Celsius float temperature_F; // temperature in Fahrenheit void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. DS18B20.begin(); // initialize the DS18B20 sensor } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures temperature_C = DS18B20.getTempCByIndex(0); // read temperature in °C temperature_F = temperature_C * 9 / 5 + 32; // convert °C to °F Serial.print("Temperature: "); Serial.print(temperature_C); // print the temperature in °C Serial.print("°C"); Serial.print(" ~ "); // separator between °C and °F Serial.print(temperature_F); // print the temperature in °F Serial.println("°F"); delay(500); }

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 ESP8266 a um computador usando um cabo USB.
  • Abra o Arduino IDE e selecione a placa e a porta apropriadas.
  • Clique no ícone Libraries na barra lateral esquerda do Arduino IDE.
  • Pesquise por “Dallas” e localize a biblioteca DallasTemperature criada por Miles Burton.
  • Pressione o botão Install para instalar a biblioteca DallasTemperature.
Biblioteca Dallas Temperature para ESP8266 NodeMCU
  • Você será solicitado a instalar a dependência. Clique no botão Install All para instalar a biblioteca OneWire.
Biblioteca OneWire para ESP8266 NodeMCU
  • Copie o código e abra-o com o Arduino IDE.
  • Clique no botão Upload na IDE para transferir o código para o ESP8266.
  • Coloque o sensor em água quente e fria ou segure-o na mão.
  • Confira os resultados no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

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!