Conectando o Arduino ao Firebase para enviar e receber dados [por ESP8266]
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
Conteudo
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:
- 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.
- Execute o IDE do Arduino, limpe o editor de texto e copie o código a seguir no editor de texto.
- Escolha a placa em: ferramentas > placas e selecione sua placa Arduino.
- Conecte o Arduino ao seu PC e configure a porta COM em tools > port.
- Pressione o botão Upload (sinal de seta).
- 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); }
É possível, por gentileza, explicar os detalhes de como adicionar as funções Firebase a um sketch do Arduino já feito, ou seja, quais as linhas devem ser acrescentadas ao código? Obrigado
Vou criar um artigo mais especifico a firebase + arduino. Aguarde.