#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>//biblioteca do banco de dados
#include <ESP8266WiFiMulti.h>
#include <ESP8266WebServer.h>
ESP8266WiFiMulti WiFiMulti;//gerenciador de conexao
#define firebaseURl "arduino2-4f556.firebaseio.com" //url do banco
#define authCode "E2ufcRn7ebJ6l1k9ICqv1gwzz4BOB3NigdSniJBb"// chave primaria
ESP8266WebServer server(80);
#define wifiName "GVT-E8A8"
#define wifiPass "0160503447"
void setupFirebase() {
Firebase.begin(firebaseURl, authCode);//conecta ao banco
if (Firebase.failed()) {
Serial.print("setting /number failed:");
Serial.println(Firebase.error());
return;
}
Serial.print(" firebase conectado ");
}
void findWifi(){
Serial.println();
Serial.println("Starting setup");
Serial.print("Scan start ... ");
int n = WiFi.scanNetworks(); // mostra o número de redes
Serial.print(n);
Serial.println(" network(s) found");
for (int i = 0; i < n; i++)
{
Serial.println(WiFi.SSID(i)); //mostra nome da rede
}
Serial.println();
}
void setupWifi(){
WiFi.softAP(wifiName, wifiPass); // faz conectar ao wifi
Serial.println("Hey i 'm connecting...");
//WiFiMulti.addAP(wifiName, wifiPass);// estabelece a conexao
Serial.print("Wait for WiFi... ");//espera conectar
while(WiFi.status() != WL_CONNECTED) { // WL_CONNECTED APARECE QUANDO CONECTA
Serial.print(".");
delay(500);
}
if (WL_CONNECTED){
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); // retorna o ip da rede
}
}
void setup() {
Serial.begin(9600); // Inicializa a serial
findWifi(); // procurar a rede
setupWifi(); // mandar conectar
setupFirebase(); // conectar com o banco de dados
pinMode(16,OUTPUT);
digitalWrite(16,LOW);
}
String chipID = "123";
void getData(){
String path = chipID + "/states"; // acessar as especificacoes do banco de dados
FirebaseObject object = Firebase.get(path); // acessa ate o terceiro ramo do banco
bool led1 = object.getBool("001");
if(led1 == 1){
digitalWrite(16,HIGH);
}
if (led1 == 0){
digitalWrite(16, LOW);
}
Serial.println("LED1: ");
Serial.println(led1);
}
void loop() {
getData();
}