// =======================================================
// DS18B20 - ĐỌC NHIỆT ĐỘ (°C & °F)
// =======================================================
#include <OneWire.h>
#include <DallasTemperature.h>
// chân DATA nối DS18B20
#define ONE_WIRE_BUS 12
// khởi tạo OneWire và sensor
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
sensors.begin(); // khởi động cảm biến
}
void loop() {
// yêu cầu đo nhiệt độ
sensors.requestTemperatures();
// đọc nhiệt độ C
float tempC = sensors.getTempCByIndex(0);
// chuyển sang độ F
float tempF = tempC * 9.0 / 5.0 + 32;
// kiểm tra lỗi
if (tempC == DEVICE_DISCONNECTED_C) {
Serial.println("Loi doc cam bien!");
} else {
Serial.print("Nhiet do: ");
Serial.print(tempC);
Serial.print(" °C | ");
Serial.print(tempF);
Serial.println(" °F");
}
delay(1000);
}