#include <Wire.h>
#include <RTClib.h>
// Instância do RTC
RTC_DS1307 rtc;
void setup() {
Serial.begin(9600);
// Inicializa o RTC
if (!rtc.begin()) {
Serial.println("Não foi possível inicializar o RTC!");
while (1); //
}
if (rtc.isrunning() == false) {
Serial.println("O RTC perdeu a configuração! Ajustando data e hora");
rtc.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop() {
DateTime now = rtc.now();
// Imprime a data e hora
Serial.print("Data: ");
Serial.print(now.day(), DEC);
Serial.print("/");
Serial.print(now.month(), DEC);
Serial.print("/");
Serial.print(now.year(), DEC);
Serial.print(" Hora: ");
Serial.print(now.hour(), DEC);
Serial.print(":");
Serial.print(now.minute(), DEC);
Serial.print(":");
Serial.println(now.second(), DEC);
Wire.beginTransmission(0x68); // Endereço do DS1307
Wire.write(0x11); // Endereço do registrador de temperatura
Wire.endTransmission();
Wire.requestFrom(0x68, 1); // Solicita 1 byte do registrador de temperatura
if (Wire.available()) {
byte tempRaw = Wire.read(); // Lê o valor bruto da temperatura
float temp = tempRaw; // Para simplificação, a temperatura é lida como um valor bruto
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println(" °C");
}
// Aguarda 1 segundo
delay(1000);
}