folder Tahribat.com Forumları
linefolder C - C++
linefolder ESP32 - Firebase RTDB Bağlantısı Bir Süre Sonra Kopuyor



ESP32 - Firebase RTDB Bağlantısı Bir Süre Sonra Kopuyor

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek
    hipokondriyak bunu yazdı

    cihaz asırı ısınıp kapanıyor olabılır mı ? ya da guc kaynagı yetersız gelıyor olabılır kablloyu kontrol et yoksa yapmaz hayvan gıbı ıslem yaptırtıyoruz sorun olmuyor esp32 de 

     

    yok hocam, 2 gece falan açık bıraktım loglamaları izleyeyim diye, herhangi bir açılıp kapanma olayı yok, bir süre sonra dinlemeyi bırakıyor, gelen komutları işleyen methoda girmiyor bile. kör sağır dilsiz kesiliyor :D


    3D Printing Studio | Anahtarlık • Figür • Kişiye Özel Tasarım | Instagram : @geekbaski
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    BiUyeOlamadim
    BiUyeOlamadim's avatar
    Kayıt Tarihi: 10/Eylül/2005
    Erkek

    Çalışma testi için belirli aralıklarla Telegram'a mesaj attırabilirsin. Attıracağın mesaj ESP32'nin durumunu da içerirse daha faydalı olur. WiFi kopması oluyorsa zaten hiç mesaj gelmez. 

    Reset atıyorsa ESP32 sketch örneklerinden ResetReason'ı da dahil edip, reset atıp WiFi'ye bağlandığında resetleme sebebini de Telegram'a attırabilirsin. 

    Benim kulladığım kütüphane şu: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot

     

    Hatta ben de aynı senin gibi socket.io kullanarak LED'lerin yanıp sönmeleri için uğraşmıştım. PCB bile dizayn edip sipariş verdim :)

     

     

    Reset reason sketch:

     

    /*
    *  Print last reset reason of ESP32
    *  =================================
    *
    *  Use either of the methods print_reset_reason
    *  or verbose_print_reset_reason to display the
    *  cause for the last reset of this device.
    *
    *  Public Domain License.
    *
    *  Author:
    *  Evandro Luis Copercini - 2017
    */
    
    #if CONFIG_IDF_TARGET_ESP32  // ESP32/PICO-D4
    #include "esp32/rom/rtc.h"
    #elif CONFIG_IDF_TARGET_ESP32S2
    #include "esp32s2/rom/rtc.h"
    #elif CONFIG_IDF_TARGET_ESP32C2
    #include "esp32c2/rom/rtc.h"
    #elif CONFIG_IDF_TARGET_ESP32C3
    #include "esp32c3/rom/rtc.h"
    #elif CONFIG_IDF_TARGET_ESP32S3
    #include "esp32s3/rom/rtc.h"
    #elif CONFIG_IDF_TARGET_ESP32C6
    #include "esp32c6/rom/rtc.h"
    #elif CONFIG_IDF_TARGET_ESP32H2
    #include "esp32h2/rom/rtc.h"
    #elif CONFIG_IDF_TARGET_ESP32P4
    #include "esp32p4/rom/rtc.h"
    #else
    #error Target CONFIG_IDF_TARGET is not supported
    #endif
    
    #define uS_TO_S_FACTOR 1000000 /* Conversion factor for micro seconds to seconds */
    
    void print_reset_reason(int reason) {
      switch (reason) {
        case 1:  Serial.println("POWERON_RESET"); break;          /**<1,  Vbat power on reset*/
        case 3:  Serial.println("SW_RESET"); break;               /**<3,  Software reset digital core*/
        case 4:  Serial.println("OWDT_RESET"); break;             /**<4,  Legacy watch dog reset digital core*/
        case 5:  Serial.println("DEEPSLEEP_RESET"); break;        /**<5,  Deep Sleep reset digital core*/
        case 6:  Serial.println("SDIO_RESET"); break;             /**<6,  Reset by SLC module, reset digital core*/
        case 7:  Serial.println("TG0WDT_SYS_RESET"); break;       /**<7,  Timer Group0 Watch dog reset digital core*/
        case 8:  Serial.println("TG1WDT_SYS_RESET"); break;       /**<8,  Timer Group1 Watch dog reset digital core*/
        case 9:  Serial.println("RTCWDT_SYS_RESET"); break;       /**<9,  RTC Watch dog Reset digital core*/
        case 10: Serial.println("INTRUSION_RESET"); break;        /**<10, Instrusion tested to reset CPU*/
        case 11: Serial.println("TGWDT_CPU_RESET"); break;        /**<11, Time Group reset CPU*/
        case 12: Serial.println("SW_CPU_RESET"); break;           /**<12, Software reset CPU*/
        case 13: Serial.println("RTCWDT_CPU_RESET"); break;       /**<13, RTC Watch dog Reset CPU*/
        case 14: Serial.println("EXT_CPU_RESET"); break;          /**<14, for APP CPU, reset by PRO CPU*/
        case 15: Serial.println("RTCWDT_BROWN_OUT_RESET"); break; /**<15, Reset when the vdd voltage is not stable*/
        case 16: Serial.println("RTCWDT_RTC_RESET"); break;       /**<16, RTC Watch dog reset digital core and rtc module*/
        default: Serial.println("NO_MEAN");
      }
    }
    
    void verbose_print_reset_reason(int reason) {
      switch (reason) {
        case 1:  Serial.println("Vbat power on reset"); break;
        case 3:  Serial.println("Software reset digital core"); break;
        case 4:  Serial.println("Legacy watch dog reset digital core"); break;
        case 5:  Serial.println("Deep Sleep reset digital core"); break;
        case 6:  Serial.println("Reset by SLC module, reset digital core"); break;
        case 7:  Serial.println("Timer Group0 Watch dog reset digital core"); break;
        case 8:  Serial.println("Timer Group1 Watch dog reset digital core"); break;
        case 9:  Serial.println("RTC Watch dog Reset digital core"); break;
        case 10: Serial.println("Instrusion tested to reset CPU"); break;
        case 11: Serial.println("Time Group reset CPU"); break;
        case 12: Serial.println("Software reset CPU"); break;
        case 13: Serial.println("RTC Watch dog Reset CPU"); break;
        case 14: Serial.println("for APP CPU, reset by PRO CPU"); break;
        case 15: Serial.println("Reset when the vdd voltage is not stable"); break;
        case 16: Serial.println("RTC Watch dog reset digital core and rtc module"); break;
        default: Serial.println("NO_MEAN");
      }
    }
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(115200);
      delay(2000);
    
      Serial.println("CPU0 reset reason:");
      print_reset_reason(rtc_get_reset_reason(0));
      verbose_print_reset_reason(rtc_get_reset_reason(0));
    
      Serial.println("CPU1 reset reason:");
      print_reset_reason(rtc_get_reset_reason(1));
      verbose_print_reset_reason(rtc_get_reset_reason(1));
    
    #ifndef CONFIG_IDF_TARGET_ESP32H2
      // Set ESP32 to go to deep sleep to see a variation
      // in the reset reason. Device will sleep for 5 seconds.
    #if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2
      esp_sleep_pd_config(ESP_PD_DOMAIN_RC_FAST, ESP_PD_OPTION_OFF);
    #else
      esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);
    #endif
      Serial.println("Going to sleep");
      esp_deep_sleep(5 * uS_TO_S_FACTOR);
    #endif
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    }

     


    The tip of the tongue taking a trip of three steps down the palate to tap, at three, on the teeth. Lo. Lee. Ta.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek

    @BiUyeOlamadim hocam telegram kısmı aslında mantıklıymış, ben pc'yi gündüz gece açık bırakıyordum :D Serial.println yerine telegrama mesaj atması cidden mantıklı geldi :D


    3D Printing Studio | Anahtarlık • Figür • Kişiye Özel Tasarım | Instagram : @geekbaski
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek

    Merhabalar tekrardan,

     

    ben bu sorunu eylül ayından beri çözemedim... 

     

    Esp32 wifi ağına bağlanıyor
    esp32 Firebase'den veriyi çekiyor
    Callback'ler başlatılıyor
    yaklaşık 1.5 - 2 saat sonra "Callback sağlıklı" mesajını görmeme rağmen Firebase'de değişiklik yaptığımda çıktı olarak göremiyorum hiçbir şey...

     

    Telegram'a dakikada bir log basması için kod yazdım, her dakika "SAĞLIKLI" mesajı geliyor ama aslında arkada bağlantı kopmuş oluyor, elimde bir hata kodu vs yok.


    Bu Firebase RTDB ile bağlantı kurduktan sonra 5 dakikada bir refresh token yapan mekanizma da kurdum ama olmadı. En azından  "bak şu github reposu senin istediğin şeye sahip" dediğiniz bir şey varsa ona da bakayım. Büyük ihtimalle bakmışımdır ama tekrar bakayım....


    3D Printing Studio | Anahtarlık • Figür • Kişiye Özel Tasarım | Instagram : @geekbaski
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek

    yapay zekaya çok abanmıyordum, sorularımı sorup kodlamayı ben kendim yapıyordum ama bu sefer VSCode içerisindeki yapay zekaya full yüklendim, çatır çutur değiştirdi bir çok şeyi, test ediyorum şimdi. Eğer bu sefer olursa kullandığım kütüphane kaynaklı bir sorun çünkü FirebaseClient adında bir kütüphaneye çevirdim.

     

    Allah büyük bakalım 1.5 saat sonra güncellerim mesajı :D


    3D Printing Studio | Anahtarlık • Figür • Kişiye Özel Tasarım | Instagram : @geekbaski
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    beytullahgol
    beytullahgol's avatar
    Kayıt Tarihi: 01/Ekim/2005
    Erkek
    GodKlaus bunu yazdı

    yapay zekaya çok abanmıyordum, sorularımı sorup kodlamayı ben kendim yapıyordum ama bu sefer VSCode içerisindeki yapay zekaya full yüklendim, çatır çutur değiştirdi bir çok şeyi, test ediyorum şimdi. Eğer bu sefer olursa kullandığım kütüphane kaynaklı bir sorun çünkü FirebaseClient adında bir kütüphaneye çevirdim.

     

    Allah büyük bakalım 1.5 saat sonra güncellerim mesajı :D

    4 saat olmuş, arkadaş çalışıyor kodlamaya büyük ihtimal ama forum ile bağlantısı kesilmiş :D

    bu sorunlar hep yüksek seviye dillerden kaynaklanıyor, asm ile kodlansa mümkün değil tıkanma buffer dolması falan filan.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    GodKlaus
    GodKlaus's avatar
    Kayıt Tarihi: 13/Ocak/2014
    Erkek
    beytullahgol bunu yazdı
    GodKlaus bunu yazdı

    yapay zekaya çok abanmıyordum, sorularımı sorup kodlamayı ben kendim yapıyordum ama bu sefer VSCode içerisindeki yapay zekaya full yüklendim, çatır çutur değiştirdi bir çok şeyi, test ediyorum şimdi. Eğer bu sefer olursa kullandığım kütüphane kaynaklı bir sorun çünkü FirebaseClient adında bir kütüphaneye çevirdim.

     

    Allah büyük bakalım 1.5 saat sonra güncellerim mesajı :D

    4 saat olmuş, arkadaş çalışıyor kodlamaya büyük ihtimal ama forum ile bağlantısı kesilmiş :D

    bu sorunlar hep yüksek seviye dillerden kaynaklanıyor, asm ile kodlansa mümkün değil tıkanma buffer dolması falan filan.

    Mutluluktan unuttum yazmayı :D

     

    Halloldu, artık sorun yok gibi duruyor, şu loglamayı iyileştirip bir kaç ufak ayar vericem sonrasında 3-4 gün test edicem sabah akşam. Eğer yine sorun olmazsa PCB tasarımını yapmaya başlarım :D

     

    Yapay zeka binbir tane fonksiyon ekleyip kodların sadeliğini bozduğu için bir de sonrasında üstünden benim geçip oralarda da iyileştirmeler yapmam lazım ama Allaha şükürler olsun şuanda maşallahı var :D

    Hayırlısıyla testlerimi de yapayım bir video çekip yüklerim (:


    3D Printing Studio | Anahtarlık • Figür • Kişiye Özel Tasarım | Instagram : @geekbaski
Toplam Hit: 1333 Toplam Mesaj: 18
session lost firebase connection esp32 rtdb