Arduino Nano ESP32 - Sensor de Temperatura - OLED

Este tutorial ensina como ler a temperatura do sensor one wire DS18B20 e exibi-la em um OLED.

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×Display OLED I2C SSD1306 128x64
1×Display OLED I2C SSD1306 128x32
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×Protoboard
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.

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.

Buy Note: If you want a bigger OLED display, use the 2.42 inch OLED Display 128x64 .

Sobre o OLED e o Sensor de Temperatura DS18B20

Se você não conhece o OLED e o Sensor de Temperatura DS18B20 (pinagem, como funciona, como programar ...), saiba mais nos tutoriais a seguir:

Diagrama de Ligação

Diagrama de Ligação do Sensor de Temperatura DS18B20 com OLED no Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Sugerimos comprar um sensor DS18B20 que vem com adaptador de ligação para facilitar a conexão. O adaptador tem um resistor embutido, eliminando a necessidade de um resistor separado na ligação.

Código Arduino Nano ESP32 - Temperatura do Sensor de Temperatura DS18B20 exibida no OLED

/* * 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-temperature-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to DS18B20 sensor's data pin Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library String temperature; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display DS18B20.begin(); // initialize the sensor temperature.reserve(10); // to avoid fragmenting memory when using String } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float tempCelsius = DS18B20.getTempCByIndex(0); // read temperature in Celsius temperature = String(tempCelsius, 2); // two decimal places temperature += char(247) + String("C"); Serial.println(temperature); // print the temperature in Celsius to Serial Monitor oledDisplayCenter(temperature); } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

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 os componentes de acordo com o diagrama fornecido.
  • 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.
  • Clique no ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise “SSD1306” e encontre a biblioteca SSD1306 da Adafruit
  • Clique no botão Install para instalar a biblioteca.
Biblioteca OLED do Arduino Nano ESP32
  • Será solicitado que você instale algumas outras dependências de biblioteca
  • Clique no botão Install All para instalar todas as dependências de biblioteca.
Biblioteca Adafruit GFX do Arduino Nano ESP32
  • Pesquise “DallasTemperature” na caixa de busca e procure a biblioteca DallasTemperature de Miles Burton.
  • Clique no botão Install para instalar a biblioteca DallasTemperature.
Biblioteca Dallas Temperature do Arduino Nano ESP32
  • Será solicitado que você instale a dependência. Clique no botão Install All para instalar a biblioteca OneWire.
Biblioteca onewire do Arduino Nano ESP32
  • Copie o código acima e abra com o Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o ESP32
  • Coloque o sensor em água quente e fria, ou segure o sensor com a mão
  • Veja o resultado no OLED

※ Nota:

O código acima alinha automaticamente o texto ao centro, na horizontal e na vertical, no display OLED

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!