Arduino Nano ESP32 - RTC

Neste guia, vamos aprender a usar o Arduino Nano ESP32 com o Módulo Relógio de Tempo Real DS3231. Em detalhes, vamos abordar os seguintes tópicos:

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Módulo Relógio de Tempo Real (RTC) DS3231
1×Bateria CR2032
1×Fios Jumper
1×Protoboard
1×(Opcional) Conector de Alimentação DC
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Módulo Relógio de Tempo Real DS3231

O Arduino Nano ESP32 tem algumas funções relacionadas ao tempo, como millis(), micros(). No entanto, elas não conseguem fornecer 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 Relógio de Tempo Real (RTC), como o DS3231 ou o DS1307. O módulo DS3231 tem maior precisão que o DS1307. Veja DS3231 vs DS1307

Pinagem

O módulo Relógio de Tempo Real DS3231 inclui 10 pinos:

  • Pino 32K: fornece o relógio de referência estável (compensado por temperatura) e preciso.
  • Pino SQW: fornece uma boa onda quadrada em 1Hz, 4kHz, 8kHz ou 32kHz e pode ser controlado por programação. Ele também pode ser usado como interrupção devido a uma condição de alarme em muitas aplicações baseadas em tempo.
  • Pino SCL: é um pino de clock da interface I2C.
  • Pino SDA: é um pino de dados da interface I2C.
  • Pino VCC: fornece energia ao módulo. Pode ficar entre 3.3V e 5.5V.
  • Pino GND: é um pino de terra.

Para uso normal, é preciso usar 4 pinos: VCC, GND, SDA, SCL

Pinagem do Módulo Relógio de Tempo Real DS3231

O módulo DS3231 também tem um suporte de bateria.

  • Se inserirmos uma bateria CR2032, ela mantém o relógio do módulo funcionando quando a alimentação principal está desligada.
  • Se não inserirmos a bateria, a informação de hora é perdida quando a alimentação principal é desligada e você precisa ajustar a hora novamente.

Diagrama de Ligação

Diagrama de Ligação do Relógio de Tempo Real DS3231 com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Módulo RTC DS3231

DS1307 RTC Module Arduino Nano ESP32
Vin 3.3V
GND GND
SDA A4
SCL A5

Como Programar o Módulo RTC DS3231

  • Inclua a biblioteca:
#include <RTClib.h>
  • Declare um objeto RTC:
RTC_DS3231 rtc;
  • Inicialize o RTC:
if (! rtc.begin()) { Serial.println("RTC module is NOT found"); while (1); }
  • Na primeira vez, ajuste o RTC para a data e hora do PC em que o sketch foi compilado
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  • Lê as informações de data e hora do módulo RTC
DateTime now = rtc.now(); Serial.print("Arduino Nano ESP32 RTC Date Time: "); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(" ("); Serial.print(now.dayOfTheWeek()); Serial.print(") "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.println(now.second(), DEC);

Código do Arduino Nano ESP32 – Como obter a data e a hora

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-rtc */ #include <RTClib.h> RTC_DS3231 rtc; char daysOfWeek[7][12] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; void setup () { Serial.begin(9600); // SETUP RTC MODULE if (! rtc.begin()) { Serial.println("RTC module is NOT found"); Serial.flush(); while (1); } // automatically sets the RTC to the date & time on PC this sketch was compiled rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // manually sets the RTC with an explicit date & time, for example to set // January 21, 2021 at 3am you would call: // rtc.adjust(DateTime(2021, 1, 21, 3, 0, 0)); } void loop () { DateTime now = rtc.now(); Serial.print("ESP32 RTC Date Time: "); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(" ("); Serial.print(daysOfWeek[now.dayOfTheWeek()]); Serial.print(") "); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.println(now.second(), DEC); delay(1000); // delay 1 seconds }

Passos Rápidos

Para começar com o Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
  • Ligue os componentes de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Abra o Library Manager clicando no ícone Library Manager na barra de navegação à esquerda do Arduino IDE.
  • Pesquise “RTClib” e encontre a biblioteca RTC da Adafruit
  • Clique no botão Install para instalar a biblioteca RTC.
Biblioteca RTC do Arduino Nano ESP32
  • Uma janela pode aparecer pedindo para você instalar as dependências da biblioteca
  • Instale todas as dependências da biblioteca clicando no botão Install All.
Biblioteca Adafruit BusIO do Arduino Nano ESP32
  • Copie o código acima e cole no Arduino IDE
  • Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload do Arduino IDE
  • Abra o Serial Monitor no Arduino IDE
  • Veja a saída no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:35 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:36 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:37 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:38 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:39 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:40 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:41 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:42 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:43 Arduino Nano ESP32 RTC Date Time: 2022/08/26 (Friday) 15:21:44
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!