Módulo RTC com NodeMCU

Neste artigo iremos aprender a utilizar o módulo RTC com o NodeMCU, para acompanhar este artigo iremos necessitar dos seguintes artigos:



Neste artigo, iremos criar um servidor capaz de monitorizar a temperatura e humidade de uma divisão usando o NodeMCU esp8266 com o DHT11.

Para acompanhar este tutorial precisará dos seguintes artigos:

Imagem Produto Comprar
 

 

 

NodeMcu Esp8266

 


 

 

 

Módulo RTC

 


 

 

 

Cabos Jumper Macho-Femêa

 


Sobre RTC

Relógio Digital DS3231 (“Real Time Clock” ou RTC) é um relógio de tempo real de alta precisão e de baixo consumo de energia. Na placa está embutido um sensor de temperatura e um cristal oscilador para melhorar a sua precisão. Este módulo DS3231 é capaz de fornecer informações como segundos, minutos, dia, data, mês e ano. Correções como meses com menos de 31 dias e anos bissextos são corrigidos automaticamente e pode operar tanto no formato 12 horas como 24 horas

Em caso de falha de energia o DS3231 aciona automaticamente a bateria que acompanha o módulo para evitar perda de dados. O endereço e as informações são transferidas via protocolo I2C.

RTC DS3231

Especificações

  • Tensão de operação: 3,3-5V;
  • Chip: DS3231;
  • Indica segundos, minutos, horas, dias da semana, dias do mês, meses e anos;
  • Sensor de temperatura com ± 3 °C de precisão;
  • Chip de memória: AT24C32 (capacidade de 32K bytes que podem ser usadas como RAM extendida do microcontrolador);
  • Interface I2C;
  • Circuito de deteção de falha de energia;
  • Consome menos de 500nA no modo bateria com oscilador em funcionamento;
  • Faixa de temperatura: 0 a 40°C;
  • Dimensões: 38 x 22 x 14mm;
  • Peso: 8g.

Esquema de Montagem

Esquema de Montagem

Código Utilizado

#include <Wire.h> 
#include <RtcDS3231.h>

RtcDS3231<TwoWire> Rtc(Wire);

void setup() 
{
Serial.begin(115200); 
Rtc.Begin(); 

RtcDateTime tempoatual = RtcDateTime(__DATE__,__TIME__); 
Rtc.SetDateTime(tempoatual); 
}

void loop() 
{
RtcDateTime instante = Rtc.GetDateTime(); 
char valores[20]; 

sprintf(valores, "%d/%d/%d %d:%d:%d", 
instante.Year(), 
instante.Month(), 
instante.Day(), 
instante.Hour(), 
instante.Minute(),
instante.Second() 
);

Serial.println(valores);
delay(20000); 
}

Para mais projetos, percorram o nosso blog, onde podem encontrar vários artigos interessantes relacionados com electrónica, robótica e muito mais! Visitem também o nosso site, onde encontram tudo para eletrónica e robótica!