IOT - internet of things - Com GoogleFirebase Realtime

Implementar comunicação com firebase realtime em um "coisa".

Neste projeto usaremos o ESP-32, um sensor de temperatura LM35 e um botão interruptor.

O esp-32 envia e recebe infomações do database que pode ser integrado a outras aplicações como um aplicativo APP ou uma pagina web, ou até mesmo outro arduino, ou ainda um sistema de controle de dados com regras de negócio, como no caso de um sistema de controle de temperatura de uma sala.

A programação do Esp-32.


Sem rodeios:

A idéia é bastante simples - Leitura de uma porta ADC e envio desta leitura para o firebase. 

Se você não sabe como fazer leitura de uma porta adc utilizando lm35 confira este post aqui

Uma plataforma de desenvolvimento para o esp-32 com programação por blocos que facilita muito a vida na hora da integração:

Link Aqui.

Para o arduino ainda temos a pinagem e outras configurações que podem ser encontradas aqui.


No código abaixo você deve inserir o host e auth do seu firebase.
Onde encontro meu FIREBASE_HOST ?

Onde encontro a chave FIREBASE_AUTH? 



Código do arduino:

 Este código foi feito utilizando esta plataforma:  Link Aqui.
// Generated with a lot of love//
// with TUNIOT FOR ESP32 //
// Website: Easycoding.tn //
/////////////////////////////////
#include <WiFi.h>
#include <FirebaseESP32.h>
#define FIREBASE_HOST "AQUI VOCÊ COLOCA O ENDEREÇO DO SEU DATABASE"
#define FIREBASE_AUTH "AQUI É A CHAVE DO FIREBASE." // É IMPORTANTE RESALTAR QUE EXISTEM OUTRAS FORMAS DE INTEGRAR COM O FIREBASE, ESTE MÉTODO // É O MAIS SIMPLES DE SER IMPLEMENTAO
FirebaseData fbdo;
int i= 0;
// DEFININDO PORTA ANALÓGICA E VARIÁVEIS.
const int analogIn = 34;
int RawValue= 0;
double Voltage = 0;
double tempC = 0;
double tempF = 0; // INICIO DO SETUP, DEFINIÇÕES DE CONFIGURAÇÃO INICIAL
void setup()
{
pinMode(23, OUTPUT); // DEFININDO PINOS DE SAÍDA
pinMode(22, OUTPUT);
Serial.begin(9600);
Serial.begin(9600);
i = (Firebase.getString(fbdo, "/Equipamento")); // RECEBENDO DADOS DA BASE, PASTA Equipamento.
WiFi.begin("AQUI É O NOME E SENHA DO WIFI");
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
} // APOS O SETUP - INICIO DO LOOP
void loop()
{ // ROWVALUE RECEBE A LEITURA DA PORTA ANALOGICA RawValue = analogRead(analogIn); // Transformando a variação de tensão em temperatura em Celcius.
Voltage = (RawValue / 2048.0) * 3300; // 5000 to get millivots.
tempC = (Voltage * 0.1)+9; //Verifica se o firebase foi iniciado
if (Firebase.getInt(fbdo, "/Equipamento")) {
Serial.println("Int Variabel");
Serial.println((fbdo.intData()));// Envia para a saida serial o valor contido no firebase         // Aqui é onde o esp-32 verifica no firebase o estado e se 1 liga e 0 desliga
if((fbdo.intData())==1){
digitalWrite(22,HIGH);
}else if((fbdo.intData())==0){
digitalWrite(22,LOW);
}
}
if (i=1){22 // o i é a string recebida do firebase no momento do setup.
,HIGH;
}
delay(10000); // delay para a leitura da porta.
int sensor = analogRead(34); // define a variavel sensor com o valor da leitura adc
// verificando se o dado foi enviado. if ((Firebase.setDouble(fbdo, "/DATA", tempC)) == true) {
Serial.printf("Data enviada");
} else {
Serial.printf("não foi possivel enviar...");
}

Comentários

Postagens mais visitadas deste blog

O que é PSOC??

Controle de motor de passo via serial - part2 (programa)

Integrando esp32 e ads1115