Arduino Nano ESP32 - Módulo RTC DS1307

Neste guia, vamos aprender a usar o módulo RTC DS1307 com o Arduino Nano ESP32. Em detalhes, vamos aprender 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) DS1307
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 DS1307

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 DS1307 inclui 12 pinos. No entanto, para uso normal, é preciso usar 4 pinos: VCC, GND, SDA, SCL:

  • 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.
Pinagem do Módulo Relógio de Tempo Real DS1307

O módulo DS1307 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 DS1307 com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Módulo RTC DS1307

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

Como Programar o Módulo RTC DS1307

  • Inclua a biblioteca:
#include <RTClib.h>
  • Declare um objeto RTC:
RTC_DS1307 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-ds1307-rtc-module */ #include <RTClib.h> RTC_DS1307 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/22 (Monday) 09:31:35 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:36 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:37 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:38 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:39 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:40 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:41 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:42 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:43 Arduino Nano ESP32 RTC Date Time: 2022/08/22 (Monday) 09:31:44
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Vídeo

Tutoriais Relacionados

※ 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!