IoT

Relógio com ESP8266 e Display OLED

Eletrogate 30 de agosto de 2022

Introdução

Nesse projeto, vamos aprender a fazer um relógio que ajusta as horas automaticamente. Para isso, utilizaremos um Display OLED e um NodeMCU ESP12E, que usará o protocolo NTP.


O que é NTP

A sigla NTP significa “Network Time Protocol”. Este protocolo serve para a sincronização dos relógios dos computadores baseados no protocolo UDP sob a porta 123. É utilizado para sincronização do relógio de um conjunto de computadores e dispositivos em uma redes de dados com latência variável.


Materiais Necessários para o Projeto Relógio com ESP8266 e Display OLED

cta_cart


Montagem do Projeto


Código

#include <Wire.h>
#include "SSD1306Wire.h"

SSD1306Wire  display(0x3c, D5, D6);
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <ESP8266WiFi.h>

#ifndef STASSID
#define STASSID "Nome da sua rede WIFI"
#define STAPSK  "Senha da sua rede WIFI"
#endif

const char* ssid = STASSID;
const char* password = STAPSK;

WiFiUDP udp;
NTPClient ntp(udp, "b.ntp.br" , -3 * 3600, 60000); // mude o fuso horário de acordo com a região onde você está


String hora;//armazena as horas

void setup()
{
   Serial.begin(115200);
   display.init();
   display.flipScreenVertically();


  Serial.println();
  Serial.println();
  Serial.print(F("Connecting to "));
  Serial.println(ssid);

   WiFi.mode(WIFI_STA);
   WiFi.begin(ssid, password);//Conecta ao WiFi.
   delay(2000);//Espera a conexão.
   
   while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(F("."));
  }
  Serial.println();
  Serial.println(F("WiFi connected"));




   ntp.begin();
   ntp.forceUpdate();
}

 void telainicial()
{
  //limpa o display
  display.clear();
  display.setTextAlignment(TEXT_ALIGN_CENTER);
  
  display.setFont(ArialMT_Plain_16);//escolhe a fonte 
  display.drawString(63, 26, hora); // escreve as horas no diplay
  display.display();
}


void loop()
{
   hora = ntp.getFormattedTime();
   Serial.println(hora);

 telainicial();
  

   delay(1000);
}

Bibliotecas

Você vai precisar das bibliotecas:
SSD1306Wire.h

NTPClient.h


Configurações Finais

Em

#ifndef STASSID
#define STASSID "Nome da sua rede WIFI"
#define STAPSK  "Senha da sua rede WIFI"
#endif

Lembre-se de colocar o nome e a senha exatos da sua rede WiFi.

Fusos Horários:
Em

WiFiUDP udp;
NTPClient ntp(udp, "b.ntp.br" , -3 * 3600, 60000); 

Mude o “-3” de acordo com o seu fuso horário.

Fonte: TodaMatéria


Sobre o Autor


Arthur Almeida

Estudante do Ensino médio , aficionado por criar novos projetos eletrônicos e automações, principalmente com o Arduino. No meu tempo livre eu gosto de pesquisar sobre novas tecnologias e tento criar projetos com elas.


Eletrogate

30 de agosto de 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!