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.
























4 Comentários
Ola o link com o arquivo INO esta corrompido.
ResponderExcluirOi, eu testei aqui e funcionou normalmente. Voce salvou o arquivo ino dentro de uma pasta com o mesmo nome do arquivo? Um abraço!
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirOI o arquivo esta corrompido
ResponderExcluir