Neste post vamos fazer um projeto de um termômetro digital utilizando o sensor de temperatura DS18B20 e um display OLED.
Para o nosso projeto vamos utilizar o ambiente de simulação do site do Wokwi, abaixo é mostrado uma imagem com a montagem do circuito:
Para que o sensor de temperatura funcione é importante ligar o resistor de pullup no terminal de dados. O valor utilizado é de 4k7.
No vídeo a seguir são mostrados detalhes de como fazer a simulação e detalhes do projeto:
Código
Abaixo é apresentado o código que foi utilizado no projeto:
#include "U8glib.h" //Instala a biblioteca do display no Sketch
#include <OneWire.h>
#include <DallasTemperature.h>
U8GLIB_SSD1306_128X64 myDisplay(U8G_I2C_OPT_NO_ACK); //Display Oled 0.96'
#define ONE_WIRE_BUS 10 // Define o terminal onde está conectado o sensor
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float temp = 0;
void setup()
{
sensors.begin();
}
void loop()
{
sensors.requestTemperatures(); //Manda comando para o sensor
temp = sensors.getTempCByIndex(0); // Lê a temperatura
/*
* Função que atualiza os valores no display
*/
myDisplay.firstPage();
do
{
myDisplay.setFont(u8g_font_fub17);
myDisplay.setPrintPos(20, 40);
myDisplay.print (temp);
myDisplay.setPrintPos(98, 40);
myDisplay.print ("C");
} while( myDisplay.nextPage());
}
É muito importante verificar se todas as bibliotecas estão instaladas no IDE do Arduino para que o circuito funcione adequadamente.
Conclusão
Neste post vimos o projeto de um termômetro digital utilizando projetos anteriores que estão disponíveis aqui no blog Wantronics. É importante notar que foram utilizados componentes diferentes, ligações diferentes e o código foi adaptado, ganhando uma economia de tempo de desenvolvimento
Abaixo links para os post anteriores do BLOG e link para o site Wokwi: