Conectando o Arduino ao Firebase para enviar e receber dados [por ESP8266]

Tempo de leitura: 3 minutes

Neste tutorial, você aprenderá a fazer upload e download de dados de/para um banco de dados Firebase com o módulo Arduino UNO e ESP8266.

Armazenar dados (como dados de sensores) em um banco de dados que pode ser acessado de qualquer lugar pela internet pode ser muito útil. O Firebase facilita o armazenamento e a recuperação de dados.

O que você aprenderá

  • Como fazer um banco de dados no Firebase
  • Como fazer upload (download) de dados para (do) Firebase
  • Como usar o ESP8266 como uma conexão entre o Arduino e o Firebase

 

O que é Firebase?

Firebase é uma plataforma de desenvolvimento de aplicativos mobile e web desenvolvida pela Firebase, Inc. em 2011, então adquirida pelo Google em 2014. Em outubro de 2018, a plataforma Firebase tinha 18 produtos que são usados por 1,5 milhão de aplicativos.

O Firebase oferece vários serviços da seguinte forma:

  • Firebase Analytics, que é uma solução gratuita de medição de aplicativos que fornece informações sobre o uso do aplicativo e o envolvimento do usuário.
  • Firebase Cloud Messaging (FCM), que é uma solução de plataforma cruzada para mensagens e notificações para Android, iOS e aplicativos da web, que é gratuita a partir de 2016.
  • Firebase Auth, um serviço que pode autenticar usuários usando apenas código do lado do cliente. Ele suporta provedores de login social Facebook, GitHub, Twitter e Google (e Google Play Games). Além disso, inclui um sistema de gerenciamento de usuários por meio do qual os desenvolvedores podem habilitar a autenticação do usuário com login por e-mail e senha armazenados no Firebase.

 

Materiais requeridos

Arduino UNO R3 × 1
ESP8266-12N WiFi Module × 1

 

Conectando o Arduino ao Firebase

Primeiro, você deve criar uma conta no Firebase. É muito fácil criar uma conta; Vá para “firebase.google.com”, clique em Console, acesse sua conta do Google e faça um novo projeto. Depois de criar um novo projeto, adicione um nome e ative o modo de teste. Você pode adicionar algum valor manualmente na parte do banco de dados em tempo real. Você pode obter a forma JSON de seus dados adicionando “.json” no final da URL do banco de dados. Assista ao vídeo a seguir para obter mais informações:

 

Você pode ler ou transferir dados de seu banco de dados por Arduino e ESP8266. Você precisa de um nome de host e uma chave Auth do seu projeto Firebase. Em seguida, você deve adicionar a biblioteca Firebase Arduino e fazer upload do código. Se for a primeira vez que você está usando uma placa Arduino, basta seguir estas etapas:

  1. Acesse www.arduino.cc/en/Main/Software e baixe o software Arduino compatível com o seu sistema operacional. Instale o software IDE conforme as instruções.
  2. Execute o IDE do Arduino, limpe o editor de texto e copie o código a seguir no editor de texto.
  3. Escolha a placa em: ferramentas > placas e selecione sua placa Arduino.
  4. Conecte o Arduino ao seu PC e configure a porta COM em tools > port.
  5. Pressione o botão Upload (sinal de seta).
  6. Tudo pronto!

 

O circuito

 

Código

#include <ESP8266WiFi.h">
#include <FirebaseArduino.h>
 
// Defina-os para executar o exemplo.
#define FIREBASE_HOST "example.firebaseio.com" 
#define FIREBASE_AUTH "token_or_secret" 
#define WIFI_SSID "SSID" 
#define WIFI_PASSWORD "PASSWORD" 
 
void setup() { 
  Serial.begin(9600); 
 
  // conecte-se ao wi-fi.
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD); 
  Serial.print("connecting"); 
  while (WiFi.status() != WL_CONNECTED) { 
    Serial.print("."); 
    delay(500); 
  } 
  Serial.println(); 
  Serial.print("connected: "); 
  Serial.println(WiFi.localIP()); 
   
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); 
} 
 
int n = 0; 
 
void loop() { 
  // definir valor
  Firebase.setFloat("number", 42.0); 
  // lidar com o erro
  if (Firebase.failed()) { 
      Serial.print("/configuração /número falhou:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  delay(1000); 
   
  // atualizar valor
  Firebase.setFloat("number", 43.0); 
  // lidar com o erro
  if (Firebase.failed()) { 
      Serial.print("configuração /número falhou:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  delay(1000); 
 
  // Obter valor
  Serial.print("number: "); 
  Serial.println(Firebase.getFloat("number")); 
  delay(1000); 
 
  // remove o valor
  Firebase.remove("number"); 
  delay(1000); 
 
  // definir o valor da string
  Firebase.setString("message", "hello world"); 
  // lidar com o erro
  if (Firebase.failed()) { 
      Serial.print("configuração /mensagem falhou:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  delay(1000); 
   
  // definir o valor bool
  Firebase.setBool("truth", false); 
  // lidar com o erro
  if (Firebase.failed()) { 
      Serial.print("configuração /verdade falhou:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  delay(1000); 
 
  // acrescenta um novo valor a /logs
  String name = Firebase.pushInt("logs", n++); 
  // lidar com o erro
  if (Firebase.failed()) { 
      Serial.print("push /logs falhou:"); 
      Serial.println(Firebase.error());   
      return; 
  } 
  Serial.print("empurrado: /logs/"); 
  Serial.println(name); 
  delay(1000); 
}
Visits: 3 Visits: 1191171