# #firebase #firebase-realtime-database #iot #esp32 #arduino-ide
Вопрос:
цифровой диммер,запрограммированный в ESP32 с помощью IDE ARDUINO, этот диммер управляется приложением, приложение сделано в MIT App inventor, проблема в том, что когда я немного изменяю код, я загружаю новую программу, после этого ESP32 перестает получать данные от firebase или firebase перестает их отправлять, но если я отправляю данные из приложения в firebase, это получает я знаю это, потому что изменяет значение переменных, кстати, я приведу свой код для демонстрации примера, поэтому я надеюсь, что вы можете мне помочь или сказать мне, что не так или почему причина сбой связи Firebase ESP32.
#include <WiFi.h>
#include "FirebaseESP32.h"
#define FIREBASE_HOST "link of to firebase"
#define FIREBASE_AUTH "AUTH OF FIREBASE"
#define WIFI_SSID "NAME OF NETWORK
#define WIFI_PASSWORD "PASSWORD"
FirebaseData firebaseData;
#define LEDC_CHANNEL_0 0 // use first channel of 16 channels (started from zero)
#define LEDC_TIMER_8_BIT 8 // use 8 bit precission for LEDC timer
#define LEDC_BASE_FREQ 5000 // use 5000 Hz as a LEDC base frequency
#define LED_PIN 15 // PWM
String nodo = "/Sensores";
bool iterar = true;
String MYINCOMINGDATA;
String MYINCOMINGDATA1;
int SHINE= 250; //TO CONTROL THE BRIGHT
void setup()
{
Serial.begin(115200);
ledcSetup(LEDC_CHANNEL_0, LEDC_BASE_FREQ, LEDC_TIMER_8_BIT); // Setup timer and attach timer to a led pin
ledcAttachPin(LED_PIN, LEDC_CHANNEL_0);
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
MYINCOMINGDATA = "";
MYINCOMINGDATA1 == "";
Serial.println();
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Conectado al Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
Serial.println("1"); //CONFIRMATION TO FIREBASE
}
void loop()
{
while(iterar){
Firebase.getInt(firebaseData, nodo "/sensor1");
//Serial.println(firebaseData.intData());
delay(1000);
Firebase.getString(firebaseData, nodo "/sensor2");
//Serial.println(firebaseData.stringData());
if (Firebase.getString(firebaseData, nodo "/sensor2")) {
MYINCOMINGDATA = (firebaseData.stringData());
if (MYINCOMINGDATA == "1")
{ digitalWrite(2,HIGH);
Serial.println("ON"); //
delay(100);
SHINE= SHINE- 10;
if (SHINE== 170) {
Firebase.setString(firebaseData, nodo "/sensor2", "0");}
delay(100);
if (SHINE== 90) {
Firebase.setString(firebaseData, nodo "/sensor2", "0");}
if (SHINE<= 0) { //***EXAMPLE IF I CHANGE THE VALUE TO <=90 OR fewer values other than zero the ESP32, stop receiving data, even changing in FIREBASE manually, dont work.***
SHINE= 0;}
}
}
if (Firebase.getString(firebaseData, nodo "/sensor3")) {
MYINCOMINGDATA1 = (firebaseData.stringData());
if (MYINCOMINGDATA1 == "1")
{ digitalWrite(4,HIGH);
Serial.println("ON");
delay(100);
SHINE= SHINE 10; ***//EXAMPLE IF I CHANGE THE VALUE of 10 to 30 or higher values the ESP32, stop receiving data, even changing in FIREBASE manually, dont work.***
if (SHINE== 80) {
Firebase.setString(firebaseData, nodo "/sensor3", "0");}
//if (SHINE == 180) {
//Firebase.setString(firebaseData, nodo "/sensor3", "0");}
if (SHINE>= 255) {
SHINE= 255;}
}
}
Serial.println("T3=" String(digitalRead(22)) " T0=" String(digitalRead(23)) " Brillo=" String(brillo));
ledcWrite(LEDC_CHANNEL_0, brillo);
}
}// End Loop