top of page
Crescer (fundo transparente)_Negativo_pn
Você sabia que a Crescer ensina, fornece e faz soluções de automação e IoT com Arduino e ESP32?

Fale com um especialista

2.png
3.png
1.png
Foto do escritorThales Gonçalves Ferreira

PLC32 - Relógio em tempo real RTC

Em projetos de Internet das Coisas (IoT) e dispositivos embarcados, obter informações precisas de data e horário é fundamental para uma variedade de aplicações. Sabendo disso, equipamos o hardware do PLC32 com um circuito de relógio em tempo real

(RTC), que fornece uma fonte confiável de tempo mesmo em casos de reinicialização ou falta de energia.

 

Neste artigo, você vai aprender como utilizar o RTC do PLC32.



Sumário



1. Visão geral


O PLC32 possui um relógio em tempo real (RTC) com bateria, permitindo que a data e a hora sejam mantidas mesmo quando a alimentação é removida. Isso capacita o ESP32 a armazenar informações de data e hora com precisão. Para essa aplicação, utilizamos o PCF8563T conectado ao barramento I2C da placa. Os pinos utilizados podem ser vistos na tabela a seguir.



Na figura a seguir podemos ver a região da placa destinada ao RTC, onde IC2 é o soquete para bateria do RTC.




2. Como utilizar o relógio em tempo real

 

Para demonstrar como utilizar o RTC do PLC32, desenvolvemos um firmware para exibir no monitor serial a data e a hora obtidas do relógio. Primeiramente, será necessário instalar a biblioteca "RTClib". Para isso, devemos utilizar o gerenciador de bibliotecas.

 

Na IDE do Arduino, vá em "Ferramentas" e depois em "Gerenciador de bibliotecas". Pesquise por "RTClib". Na figura a seguir, podemos ver a biblioteca que será utilizada.



A seguir podemos ver o firmware desenvolvido.


#include <Wire.h>
#include <RTClib.h>

RTC_PCF8563 rtc;

void setup() {
  Serial.begin(9600);
  Wire.begin(33, 5);  // Inicializa o barramento I2C com SDA no pino 16 e SCL no pino 5

  if (!rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, let's set the time!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  DateTime now = rtc.now();

  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();

  delay(1000);
}

Podemos destacar alguns pontos do código. Precisamos adicionar as bibliotecas que serão utilizadas, "Wire" e "RTClib". Utilizamos as linhas mostradas a seguir:


#include <Wire.h>
#include <RTClib.h>

Utilizamos "RTC_PCF8563 rtc" para criar o objeto "rtc" que será utilizado para comunicação com o relógio.

 

Dentro do "setup", vamos configurar a comunicação serial, inicializar o barramento I2C (definindo os pinos SDA e SCL como mostrado anteriormente) e também podemos definir a data e hora do RTC utilizando "rtc.adjust". Lembrando que o "rtc.adjust" deve ser executado somente uma vez, ou somente nos momentos que desejamos ajustar a data e/ou hora.

 

Dentro do "loop", vamos realizar a leitura do RTC e enviar os valores pela serial. Para obter os valores, utilizamos "rtc.now()", salvamos os valores em uma variável do tipo "DateTime". Depois, os valores são enviados pela serial, utilizando now.year(), now.month(), now.day() e outros mostrados no código.

 

O resultado pode ser visto na figura a seguir.



Neste blog, aprendemos como ler a data e a hora do RTC presente no PLC32. Com essa ferramenta, o PLC32 é capaz de saber a data e a hora com precisão e confiabilidade.

 

Se você deseja ver mais detalhes sobre a PLC32, acessar o seu manual ou adquirir uma unidade, clique neste link.

 

Posts recentes

Ver tudo

Comentários


ícone do whatsapp

Fale com um
especialista:

bottom of page