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
O 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.
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
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!