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