Recents in Beach


Receba o meu conteúdo GRATUITAMENTE


IoT de baixíssimo custo!

 



Internet das Coisas com ênfase no baixo custo. Esse é o tema do vídeo de hoje. Vamos ligar e desligar módulos de relê para ESP-01 utilizando o APP Fernando K e Firebase. Confira!

 


 

 

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



 

BIBLIOTECAS

Firebase Arduino

https://github.com/FirebaseExtended/firebase-arduino



 

FLUXOGRAMA



 

CÓDIGO

Declarações e variáveis

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

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

// 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 "xxxxxxxxxxxxxx.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

 


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);
}

 


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");  
}

 


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();
    }

    //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);

        //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();

            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);
            }
        }
    }
}

 

 

 

FIREBASE

https://console.firebase.google.com/


Digite o nome do projeto e clique em “Continuar”


Desative a opção Analytics já que não vamos utilizar neste exemplo.

Clique em “Criar Projeto”







 

APP FERNANDO K




Adicione nome para a conexão e  adicione dataBaseURL (o mesmo em FIREBASE_HOST

do .ino) com https://e clique em “Add”


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






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.




 

FAÇA O DOWNLOAD DOS ARQUIVOS:

 

Postar um comentário

4 Comentários

  1. Ola o link com o arquivo INO esta corrompido.

    ResponderExcluir
    Respostas
    1. Oi, eu testei aqui e funcionou normalmente. Voce salvou o arquivo ino dentro de uma pasta com o mesmo nome do arquivo? Um abraço!

      Excluir