ESP32 - RTC
Neste guia, vamos aprender a usar o ESP32 com o módulo de Relógio de Tempo Real DS3231. Em detalhes, vamos ver os seguintes tópicos:
- Como conectar o módulo RTC DS3231 ao ESP32.
- Como programar o ESP32 para ler a data e a hora do módulo RTC DS3231 (segundo, minuto, hora, dia, data, mês e ano)
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Módulo de Relógio de Tempo Real DS3231
O próprio ESP32 tem algumas funções relacionadas a tempo, como millis() e micros(). Porém, elas não fornecem a data e a hora (segundos, minutos, horas, dia, data, mês e ano). Para obter a data e a hora, precisamos usar um módulo de Relógio de Tempo Real (RTC), como o DS3231 ou o DS1307. O módulo DS3231 tem precisão maior que o DS1307. Veja DS3231 vs DS1307
Pinagem
O módulo de Relógio de Tempo Real DS3231 tem 10 pinos:
- Pino 32K: fornece um clock de referência estável (com compensação de temperatura) e preciso.
- Pino SQW: fornece uma onda quadrada em 1Hz, 4kHz, 8kHz ou 32kHz, que pode ser controlada por programação. Ele também pode ser usado como interrupção por condição de alarme em muitas aplicações baseadas em tempo.
- Pino SCL: é o pino de clock da interface I2C.
- Pino SDA: é o pino de dados da interface I2C.
- Pino VCC: alimenta o módulo. Pode receber qualquer tensão entre 3.3V e 5.5V.
- Pino GND: é o pino de terra.
Para uso normal, basta usar 4 pinos: VCC, GND, SDA, SCL

O módulo DS3231 também tem um suporte para bateria.
- Se você colocar uma bateria CR2032, o módulo continua contando o tempo quando a alimentação principal está desligada.
- Se você não colocar a bateria, a informação de tempo é perdida quando a alimentação principal é desligada e você precisa acertar o horário novamente.
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
ESP32 - Módulo RTC DS3231
| Módulo RTC DS1307 | ESP32 |
|---|---|
| Vin | 3.3V |
| GND | GND |
| SDA | GPIO21 |
| SCL | GPIO22 |
Como Programar o Módulo RTC DS3231
- Inclua a biblioteca:
- Declare um objeto RTC:
- Inicialize o RTC:
- Na primeira vez, ajuste o RTC para a data e a hora do PC em que o sketch foi compilado
- Leia as informações de data e hora do módulo RTC
Código ESP32 – Como obter data e hora
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente do ESP32 na Arduino IDE.
- Faça a ligação como na imagem acima.
- Conecte a placa ESP32 ao seu PC por um cabo micro USB
- Abra a Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
- Abra o Library Manager clicando no ícone Library Manager na barra de navegação esquerda da Arduino IDE
- Pesquise “RTClib” e encontre a biblioteca RTC da Adafruit
- Clique no botão Install para instalar a biblioteca RTC.

- Pode ser que a Arduino IDE peça para instalar as dependências da biblioteca
- Instale todas as dependências da biblioteca clicando no botão Install All.

- Copie o código acima e cole na Arduino IDE
- Compile e faça o upload do código para a placa ESP32 clicando no botão Upload da Arduino IDE
- Abra o Serial Monitor na Arduino IDE
- Veja a saída no Serial Monitor.