Biblioteca

Firebase e Banco de Dados em Tempo Real com ESP32

•2 min

Firebase é uma plataforma do Google destinado a ser um back-end para aplicações web, o que o torna uma ótima opção para integração IoT com ESP32 pois possibilita projetos mais sofisticados capaz de se comunicar em qualquer lugar do mundo.

Aplicações

  • Telemetria de dados;
  • Ponte de integração entre plataformas;
  • Banco de dados;
  • IoT.

Firebase o que é?

Firebase é uma plataforma desenvolvida pelo Google para a criação de aplicativos móveis e da web focada em back-end. Contém vários recursos integrados com plano pago e também gratuito, para as aplicações que iremos demonstrar não precisaram de plano pago.

Firebase primeiros passos

Para iniciar no Firebase é só acessar este link e criar um projeto, depois criar o ‘Realtime Database’ como mostra no vídeo abaixo:

Após fazer todas as tarefas, será necessário obter o link “path” e a autenticação/chave de segurança “Auth”, sem essa chave o Firebase irá negar qualquer comunicação.

Firebase e ESP32

A biblioteca que foi usada é FirebaseESP32 feito por Mobizt e está disponível para download no github. Embora o nome seja para ESP32, não testamos no ESP8266 mas tudo indica que não haja problema.

#include <WiFi.h>
#include <FirebaseESP32.h>

#define FIREBASE_HOST "PATH"
#define FIREBASE_AUTH "AUTH"
#define WIFI_SSID     "SSID"
#define WIFI_PASSWORD "SENHA"

FirebaseData firebaseData;
String path = "/";



void setup() {
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println(WiFi.localIP());

  Serial.begin(9600);
  
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
  Firebase.reconnectWiFi(true);
  Firebase.setReadTimeout(firebaseData, 1000 * 60);
  Firebase.setwriteSizeLimit(firebaseData, "tiny");

  if(Firebase.getShallowData(firebaseData, "/")){
    Serial.println(firebaseData.payload());
  }
}

void loop() {
  int r = random(0, 99999);
  Serial.println(String(r));                                                         
  Firebase.setInt(firebaseData, path + "random", r);
  delay(2000);
}

Funcionamento

Inicialmente no vídeo o ESP32 estava em modo boot para não ficar enviando dados assim que iniciasse a gravação. Após sair do modo boot o ESP32 tenta se conectar a rede WiFi que foi configurado, faz as autenticações com o google e por fim inicia o envio de valores randômicos para o Realtime Database.

O este exemplo trata apenas o envio de dados do ESP32 para o Firebase mas pode ser uma comunicação bilateral, porém isso será trato em um outro post. Caso queria ficar por dentro de novos post, considere se inscrever em nosso canal no Telegram.

Gustavo Cereza

Written by

Gustavo Cereza

Desenvolvedor de firmware e sistemas embarcados, com foco na criação de dispositivos completos aplicados a problemas reais. Atuo no desenvolvimento de produtos tecnológicos, integrando hardware, firmware e comunicação de dados em soluções voltadas a automação, monitoramento e sistemas embarcados. Sou criador da Elcereza, onde compartilho conhecimento técnico e desenvolvo projetos práticos baseados em necessidades reais do dia a dia. Minha experiência inclui o desenvolvimento de sistemas para aplicações em campo, envolvendo comunicação de longo alcance, integração de dispositivos e validação em ambientes reais.

View other articles

Leave a comment

Acompanhe a Elcereza Tutoriais, lançamentos, projetos e bastidores dos projetos. WhatsApp Telegram YouTube Instagram GitHub