#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
// DS18B20 temperature sensor pins
#define ONE_WIRE_BUS 2
// LED display pins
#define RS 7
#define EN 8
#define D4 9
#define D5 10
#define D6 11
#define D7 12
// Message to display
const char *message = "Water Temperature: ";
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);
void setup() {
sensors.begin();
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print(message);
}
void loop() {
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
// Convert temperature to a string
char temperatureString[6];
sprintf(temperatureString, "%.1f°C", temperature);
// Display the temperature on the LCD
lcd.setCursor(0, 1);
lcd.print(temperatureString);
// Shift the message to the right
for (int i = 0; i < 16; i++) {
lcd.setCursor(i, 0);
lcd.print(message[i]);
delay(500);
lcd.setCursor(i, 0);
lcd.print(" ");
}
lcd.setCursor(0, 0);
lcd.print(message);
}