LED controlado por IoT usando o Google Firebase Console e o ESP8266 NodeMCU

Tempo de leitura: 7 minutes

Você já pensou em controlar algum periférico de qualquer lugar do mundo? Sim, a IoT (Internet das Coisas) tornou isso possível controlar qualquer dispositivo de qualquer lugar e existem muitos hardwares e plataformas de nuvem da IoT disponíveis para isso. Abordamos muitos aplicativos de IoT em nosso tutorial anterior. Hoje, usaremos a nuvem do Google Firebase para controlar um LED usando o NodeMCU ESP8266. Se você não sabe o que é o Firebase, tentarei dizer em breve.

O Firebase é a plataforma de banco de dados do Google usada para criar, gerenciar e modificar dados gerados a partir de qualquer aplicativo Android, serviços da web, sensores etc. Para obter mais informações sobre o Firebase, visite o site oficial do Google Firebase.

Para controlar um LED do Firebase, primeiro configuraremos o módulo Wi-Fi NodeMCU ESP8266 e, em seguida, o Google Firebase.

Configuração do módulo Wi-Fi NodeMCU ESP8266:

A configuração do NodeMCU é muito fácil e não leva muito tempo. Isso pode ser feito em alguns componentes simples e etapas simples.

Componentes necessários:

  • NodeMCU ESP8266(12E)
  • LED Verde
  • Resistor 220 Ohms
  • ProtoBoard ou PCB
  • Fios

Se você não possui o NodeMCU ESP8266 (12E), também pode usar o módulo ESP8266 genérico com o Arduino UNO e o Arduino IDE. Para saber como programar o módulo ESP8266 genérico usando o Arduino UNO e o Arduino IDE, basta seguir o link.

Diagrama de circuito

Rele

Quando você estiver pronto com os componentes, siga as etapas simples mencionadas abaixo:

  • Conecte o NodeMCU ao computador.
  • Abra o IDE do Arduino.
  • Vá para “Ferramentas” e selecione “Placas”.
  • Na seção da placa, selecione “NodeMCU V1.0 (módulo ESP-12E)”.
  • Selecione também a porta COM apropriada.
  • Depois de encontrar o “FIREBASE_HOST” e o “FIREBASE_AUTH” seguindo as etapas mencionadas abaixo, edite-o no esboço fornecido abaixo e faça o upload.

Programando o NodeMCU ESP8266 para usar o Google Firebase

Aqui estamos explicando algumas partes importantes do código.

Primeiro, inclua as bibliotecas para usar o ESP8266 e o firebase.

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>

Faça o download e instale as bibliotecas seguindo os links abaixo:

https://github.com/FirebaseExtended/firebase-arduino/blob/master/src/Firebase.h

https://github.com/bblanchon/ArduinoJson

Durante a compilação, se você receber o erro de que a biblioteca ArduinoJson.h não está instalada, instale-a usando o link fornecido acima.

Esses dois parâmetros são muito importantes para se comunicar com o firebase. A configuração desses parâmetros permitirá a troca de dados entre o ESP8266 e o firebase. Para encontrar esses parâmetros para o seu projeto, siga as etapas fornecidas na seção posterior (Configurando o Firebase) abaixo.

#define FIREBASE_HOST "your-project.firebaseio.com"             // o endereço do nome do projeto a partir da ID do Firebase
#define FIREBASE_AUTH "06dEpqanFg***************qAwnQLwLI"      // a chave secreta gerada a partir do firebase

Depois de encontrar as credenciais com sucesso, basta substituir no código acima.

Os parâmetros abaixo são usados para conectar-se à sua rede Wi-Fi doméstica ou à rede que você configurou. Substitua SSID e senha pelo seu SSID e senha de rede. Também é necessária internet para se comunicar com o firebase.

#define WIFI_SSID "xxxxxxxxxxxxx"                  //insira seu nome de wifi em casa ou público
#define WIFI_PASSWORD "xxxxxxxxxxxxxx"             //senha do wifi ssid

Esta declaração tenta se conectar à sua rede Wi-Fi inserida.

WiFi.begin(WIFI_SSID, WIFI_PASSWORD);             //tente se conectar com wifi

Ao se conectar ao Wi-Fi, se ele não se conectar à rede, print(.) Até que não seja conectado com êxito.

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }

Esta declaração tenta se conectar ao servidor firebase. Se o endereço do host e a chave de autorização estiverem corretos, ele será conectado com êxito

Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);            //conectar ao firebase

Esta é a classe fornecida pela biblioteca do firebase para enviar a string ao servidor do firebase. Para usar mais classes, acesse este link. Inicialmente, envie uma string para o caminho inicial. Com a ajuda disso, podemos alterar o status do LED.

Firebase.setString("LED_STATUS", "OFF");                  //envia uma sequência inicial de status de led

Após enviar uma sequência de status para o caminho da base de firmas, escreva esta instrução para obter o status do LED do mesmo caminho e salve-o na variável

fireStatus = Firebase.getString("LED_STATUS");              //obter entrada de status ld do firebase

Se a sequência recebida estiver “ON” ou “on”, basta ligar o LED embutido e o LED conectado externamente.

  if (fireStatus == "ON" || fireStatus == "on") {               // comparar a entrada do status do led recebido do firebase
    Serial.println("Led Turned ON");                         
    digitalWrite(LED_BUILTIN, HIGH);                            // faça construído em led ON
    digitalWrite(led, HIGH);                                    // fazer led externo ON
  } 

Se a sequência de caracteres recebida estiver “OFF” ou “off”, basta desligar o LED embutido e o led conectado externamente.

  else if (fireStatus == "OFF" || fireStatus == "off") {           // comparar a entrada do status do led recebido do firebase
    Serial.println("Led Turned OFF");
    digitalWrite(LED_BUILTIN, LOW);                                // faça construído em led OFF
    digitalWrite(led, LOW);                                        // desligue o led externo
  }

Se a sequência de caracteres recebida não for uma dessas, ignore e imprima alguma mensagem de erro.

  else {
    Serial.println("Credencial errada! Por favor, envie ON/OFF");
  } 

Configurando o Firebase Console

Se você estiver usando o Firebase pela primeira vez, poderá demorar um pouco para configurá-lo. Tenha paciência e siga estas etapas.

1. Se você possui o ID do Gmail, não precisa se inscrever no firebase; se não possui o ID do Gmail, inscreva-se em um e pode seguir para a próxima etapa.

2. Abra o navegador e acesse “firebase.google.com”

3. No canto superior direito, vá para “Ir para o console”

FireBase

4. Clique em “Adicionar projeto”

FireBase

5. Insira o nome do seu projeto.

FireBase

6. Aceite os termos e condições, crie projeto e clique em “Continuar”

FireBase

Você criou seu projeto com sucesso. Procure o nome do host e a chave de autorização, também conhecidos como chave secreta. Para isso, siga as etapas abaixo:

7. Vá para o ícone Configurações (ícone de engrenagem) e clique em “Configurações do projeto”

FireBase

8. Agora clique em “Contas de serviço”

FireBase

9. Você pode ver duas opções “Firebase admin SDK” e “Database Secrets”

10. Clique em “Segredos do banco de dados”

11. Role no nome do seu projeto e a opção “Mostrar” aparece no lado direito do seu projeto

12. Clique em “Mostrar” e agora você pode ver a chave secreta criada para o seu projeto

FireBase

13. Copie a chave secreta e salve-a no bloco de notas. Esta é a sua string “FIREBASE_AUTH” que escrevemos no programa Arduino acima.

FireBase

14. Agora vá em “Banco de Dados” na barra de controle esquerda e clique nele

15. Role para baixo e clique em “Criar banco de dados”

FireBase

16. Escolha “Iniciar no modo de teste” e clique em “Ativar”

FireBase

17. Agora seu banco de dados foi criado e você terá que acessar esta seção novamente para controlar o LED

18. Agora, logo acima do banco de dados, você pode ver

“https://your_project_name.firebaseio.com/”

FireBase

19. Apenas copie “your_project_name.firebaseio.com” sem nenhuma barra e https e salve-o novamente no bloco de notas que você salvou para chave secreta

20. Esta é a sua string “FIREBASE_HOST” que escrevemos no programa Arduino acima

21. Você pode explorar a base do fogo, mas vamos terminar o tutorial primeiro.

FireBase

Agora coloque “FIREBASE_HOST” e “FIREBASE_AUTH” no programa Arduino e faça o upload do sketch. E terminamos de configurar as duas seções. O Programa Arduino completo é fornecido no final.

FireBase

Abra o banco de dados do firebase e escreva “ON” ou “OFF” ou “on” ou “off” na seção “LED_STATUS” para controlar o LED no console do Google Firebase.

Código

/* Controlando o LED usando o console Firebase */
#include <ESP8266WiFi.h>              // esp8266 library
#include <FirebaseArduino.h>          // firebase library

#define FIREBASE_HOST "your-project.firebaseio.com"                         // o endereço do nome do projeto a partir da ID do Firebase
#define FIREBASE_AUTH "06dEpqanFg***************qAwnQLwLI"                  // a chave secreta gerada a partir do firebase
#define WIFI_SSID "xxxxxxxxxxxxx"                                           // insira seu nome de wifi em casa ou público
#define WIFI_PASSWORD "xxxxxxxxxxxxxx"                                      // senha do wifi ssid

String fireStatus = "";                                                      // status de led recebido do firebase
int led = D3;                                                                // para led externo
void setup() {
  Serial.begin(9600);
  delay(1000);
  pinMode(LED_BUILTIN, OUTPUT);      
  pinMode(led, OUTPUT);                 
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);                                      //tente se conectar com wifi
  Serial.print("Conectando à ");
  Serial.print(WIFI_SSID);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("Conectado a ");
  Serial.println(WIFI_SSID);
  Serial.print("Endereço IP é: ");
  Serial.println(WiFi.localIP());                                                      //imprimir endereço IP local
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);                                        //conectar ao firebase
  Firebase.setString("LED_STATUS", "OFF");                                             //envia uma sequência inicial de status de led
}

void loop() {
  fireStatus = Firebase.getString("LED_STATUS");                                      // obter entrada de status ld do firebase
  if (fireStatus == "ON") {                                                           // comparar a entrada do status do led recebido do firebase
    Serial.println("Led ligado");                         
    digitalWrite(LED_BUILTIN, LOW);                                                  // faça construído em led ON
    digitalWrite(led, HIGH);                                                         // fazer led externo ON
  } 
  else if (fireStatus == "OFF") {                                                    // comparar a entrada do status do led recebido do firebase
    Serial.println("Led desligado");
    digitalWrite(LED_BUILTIN, HIGH);                                                // faça LED interno OFF
    digitalWrite(led, LOW);                                                         // faça LED externo OFF
  }
  else {
    Serial.println("Credencial errada! Por favor, envie ON/OFF");
  }
}

TAG : IoT, ESP8266, NodeMCU, LED, Google Cloud

Esperamos que você tenha achado útil este tutorial mostrando o Firebase com Esp8266. Se você tiver mais duvidas sobre o FireBase, escrevendo um comentário abaixo.

Obrigado pela leitura

Visits: 2 Visits: 1199810