#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Pin where the DS18B20 sensor is connected
const int oneWireBus = A0;
OneWire oneWire(oneWireBus);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27, 16, 2); // 0x27 is the I2C address, adjust as needed
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
float temperatureC = sensors.getTempCByIndex(0);
if (temperatureC == DEVICE_DISCONNECTED_C) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Error: Sensor");
lcd.setCursor(0, 1);
lcd.print("Disconnected");
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperatureC, 2); // Display temperature with 2 decimal places
lcd.print("C");
// If you want to display Fahrenheit, uncomment the following lines:
// float temperatureF = sensors.toFahrenheit(temperatureC);
// lcd.setCursor(0, 1);
// lcd.print("Temp: ");
// lcd.print(temperatureF, 2); // Display temperature with 2 decimal places
// lcd.print("F");
}
delay(1000); // Update the display every 1 second
}
Loading
ds18b20
ds18b20