Você está na página 1de 40

Google

Firebase

Por Fernando Koyanagi


Intenção dessa aula

Ligar e desligar Módulos de Relê para ESP-01


utilizando o app Fernando K e Firebase
Recursos usados
• ESP8266 ESP-01
• Módulo Relê para ESP-01
• Fonte 5v
Ainda você pode usar...

• ESP8266 ESP-01
• Módulo Relê para ESP-01
• Fonte 5v
https://www.banggood.com/custlink/mK3htKDdEK

https://www.banggood.com/custlink/KmGYHvDhK2 https://www.banggood.com/custlink/Kv3yP3KRvw
Links onde
comprei os
componentes

Em www.fernandok.com

5
forum.fernandok.com
Instagram
fernandok_oficial

Telegram
fernandok_oficial

7
Bibliotecas
Biblioteca Firebase Arduino
https://github.com/FirebaseExtended/firebase-arduino

Clique aqui

Depois aqui para baixar


Descompacte em C:\Users\<SEU_USUARIO>\Documents\Arduino\libraries
Ou caso use portable DIRETORIO_ARDUINO_PORTABLE\portable\sketchbook\libraries
Fluxograma
Código
Código Declarações e variáveis

#include <ESP8266WiFi.h> // Biblioteca com as funções de WiFi


#include <FirebaseArduino.h> // Biblioteca do Firebase

// Dados da rede WiFi. Troque pelos da sua rede.


#define WIFI_SSID "SSID" // Nome da rede
#define WIFI_PASSWORD "PASSWORD" // Senha da rede

// URL do Firebase
#define FIREBASE_HOST "xxxxxxxxxxxxxxx.firebaseio.com“

// Chave de autenticação do Firebase (nesse caso não estamos usando)


#define FIREBASE_AUTH ""

// O path do Firebase que este ESP será responsável


//Modifique para cada ESP
#define PATH "/relay1"

//Pino onde está o módulo do relê


//No caso do módulo específico para ESP-01 que estamos usando é o GPIO 0.
#define RELAY_PIN 0
Código Setup
void setup()
{
//Iniciamos a serial
Serial.begin(115200);

//Colocamos o pino do relê como saída


pinMode(RELAY_PIN, OUTPUT);

//Desligamos o relê. Pela lógica do nosso relê: HIGH desliga e LOW liga
digitalWrite(RELAY_PIN, HIGH);

//Conectamos na rede WiFi


setupWiFi();

//Iniciamos a biblioteca do Firebase


Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

//Informamos que queremos receber os dados do path indicado por stream (tempo real)
Firebase.stream(PATH);
}
Código SetupWiFi

//Função que conecta o WiFi utilizando os dados


//de ssid e senha informados anteriormente
void setupWiFi()
{
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);

Serial.print("Conectando WiFi");

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

Serial.println("\nConectado");
}
Código Loop
void loop()
{
// Se o WiFi se desconectou, tentamos reconectar
if(!WiFi.isConnected())
{
Serial.println("Desconectado, reconectando...");
WiFi.reconnect();
}

//Se aconteceu algum erro na conexão do Firebase


if (Firebase.failed())
{
Serial.println("streaming error");
Serial.println(Firebase.error());
delay(10000);
ESP.restart();
}
Código
//Se temos algum dado novo vindo do Firebase
if (Firebase.available())
{
//Fazemos a leitura do evento
FirebaseObject event = Firebase.readEvent();

//Verificamos qual o tipo do evento


String eventType = event.getString("type");

//Coloca tudo em maiúsculo (daí comparamos com tudo maiúsculo também,


//assim independe a maneira que chegou)
eventType.toUpperCase();

//Mostramos qual o tipo de evento


Serial.print("event ==> ");
Serial.println(eventType);
Código
//Se for do tipo "PUT"
if (eventType == "PUT")
{
//Guardamos o path e os dados
//Nesse exemplo o path sempre será "/" pois é relativo
//ao path que estamos conectados no momento
String path = event.getString("path");
String data = event.getString("data");

//Exibe qual o path


Serial.print("path ==> ");
Serial.println(path);

//Exibe o que chegou ("on" ou "off")


Serial.print("data ==> ");
Serial.println(data);

//Coloca tudo em maiúsculo (daí comparamos com tudo maiúsculo também,


//assim independe a maneira que chegou)
data.toUpperCase();
Código
if(data == "ON")
{
//Liga o relê. Pela lógica do nosso relê:
//HIGH desliga e LOW liga.
digitalWrite(RELAY_PIN, LOW);
}
else if(data == "OFF")
{
//Desliga o relê. Pela lógica do nosso relê:
//HIGH desliga e LOW liga.
digitalWrite(RELAY_PIN, HIGH);
}
} //if (eventType == "PUT")
} //if (Firebase.available())
} //loop
Firebase
Firebase https://console.firebase.google.com/

Clique em
“Adicionar
projeto”
Firebase
Digite o nome
do projeto e
clique em
“Continuar”
Firebase
Desative a
opção Analytics
já que não
vamos utilizar
neste exemplo.
Clique em
“Criar Projeto”
Firebase
Clique em
“Database”
Firebase
Na seção Realtime Database

Clique em “Criar banco de dados”


Firebase

Selecione modo teste

Clique em “Ativar”
Firebase

Esta é a url que se coloca em FIREBASE_HOST no código


fonte (sem https:// no .ino) e também no databaseURL
do app Fernando K (com https://)
App Fernando K
AppFernandoK
Clique Aqui
AppFernandoK

Clique em
“Connection”
AppFernandoK

Clique aqui
AppFernandoK
Clique aqui

Adicione nome
para a conexão e
adicione
dataBaseURL
(o mesmo em
FIREBASE_HOST
do .ino) com https://
e clique em “Add”
AppFernandoK

A conexão aparecerá
na lista. Clique nela.
AppFernandoK

Se tudo ocorreu
bem o ícone
ficará verde Agora feche a lista
clicando aqui
AppFernandoK

Clique em
“Add Components”
AppFernandoK
Adicione um botão
que irá ligar o relê com
o seguinte código:
relay1 on

Clique em “Add”
AppFernandoK
Adicione um botão
que irá desligar o relê
com o seguinte código:
relay1 off

Clique em “Add”
AppFernandoK

Repita para cada ESP


com path diferente.
Agora basta clicar
no botão “RelayX on”
para ligar o relê ou
“RelayX off” quando
quiser desligar.
AppFernandoK

Você pode
mover os
botões
clicando
aqui

IMPORTANTE!!!
Lembre-se de
salvar tudo o
que fez
Em www.fernandok.com
Download arquivos PDF e INO do código fonte

40

Você também pode gostar