1
resposta

Eu estou usando o seguinte código e o NODEMCU so conecta em wifi`s de rede móvel

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

Olá, tudo bem ?

Vi que está parado aqui faz uma semana, será que já conseguiu solucionar isso ? Se sim fala para gente como fez?