Page 4 of 5 FirstFirst 12345 LastLast
Results 46 to 60 of 68

Thread: WEB Radio

  1. #46
    dishwasher val's Avatar
    Join Date
    14 Jul 2007
    Location
    DTX
    Posts
    1,940
    Mentioned
    36 Post(s)
    Rep Power
    100

    Default ESP32-MiniWebRadio

    Revin la acest proiect, azi am reusit sa-l montez in carcasa.






    Sursa este: https://github.com/schreibfaul1/ESP32-MiniWebRadio ; configuratia aleasa este: ESP32-S3 N16R8 (16 Mb Flash, 8 Mb PsRam), display ILI9341 de 2,8" cu touchscreen, I2S DAC - PCM5102, amplificator 2 x 3 W, card SD de 32 Gb si telecomanda (se foloseste in paralel cu touch-ul dispalay-ului)



    Autorul propune optional un modul de emisie bluetooth si un modul pentru reglarea automata a luminozitatii display-ului; le am dar nu le-am montat.

    Proiectul beneficiaza de interfata web pentru setari:





    Posturile de radio le-am cautat si adaugat pe SD card direct din webif:



    Radioul beneficiaza si de Player audio, fisierele fiind copiate pe SD Card:







    Tot din Interfata Web se adauga si telecomanda Ir, buton cu buton:



    Ce nu am probat inca, functia DLNA:



    Cam atat, mi-a dat ceva bataie de cap dar a meritat.

    UFS910, Nokia d-Box1, Nokia d-Box2, Optibox500, Vu+ Zero4K

  2. #47
    Standard RSP member cipryDXfeed's Avatar
    Join Date
    17 Nov 2008
    Location
    ALBA
    Posts
    1,838
    Mentioned
    1 Post(s)
    Rep Power
    78

    Default

    Va salut. se poate adapta un script ceva la acest cod in sensul ca daca pica internetul sa se reconecteze automat.

    /* ==================================================================================================== ========
    * ёRadio
    * ==================================================================================================== ========
    * Web-radio based on
    * ESP32-audioI2S https://github.com/schreibfaul1/ESP32-audioI2S
    * or/and
    * ESP32-vs1053_ext https://github.com/schreibfaul1/ESP32-vs1053_ext
    * libraries
    * ==================================================================================================== ========
    * Project home https://github.com/e2002/yoradio
    * Wiki https://github.com/e2002/yoradio/wiki
    * Описание на 4PDA https://4pda.to/forum/index.php?s=&s...st&p=112992611
    * Как это прошить? https://4pda.to/forum/index.php?act=...il-112992611-2
    * ==================================================================================================== ========
    * Here goes!
    * ==================================================================================================== ========
    */
    #include "Arduino.h"
    #include "src/core/options.h"
    #include "src/core/config.h"
    #include "src/core/telnet.h"
    #include "src/core/player.h"
    #include "src/core/display.h"
    #include "src/core/network.h"
    #include "src/core/netserver.h"
    #include "src/core/controls.h"
    #include "src/core/mqtt.h"
    #include "src/core/optionschecker.h"

    extern __attribute__((weak)) void yoradio_on_setup();

    void setup() {
    Serial.begin(115200);
    if(LED_BUILTIN!=255) pinMode(LED_BUILTIN, OUTPUT);
    if (yoradio_on_setup) yoradio_on_setup();
    config.init();
    display.init();
    player.init();
    network.begin();
    if (network.status != CONNECTED && network.status!=SDREADY) {
    netserver.begin();
    initControls();
    display.putRequest(DSP_START);
    while(!display.ready()) delay(10);
    return;
    }
    if(SDC_CS!=255) {
    display.putRequest(WAITFORSD, 0);
    Serial.print("##[BOOT]#\tSD search\t");
    }
    config.initPlaylistMode();
    netserver.begin();
    telnet.begin();
    initControls();
    display.putRequest(DSP_START);
    while(!display.ready()) delay(10);
    #ifdef MQTT_ROOT_TOPIC
    mqttInit();
    #endif
    if (config.getMode()==PM_SDCARD) player.initHeaders(config.station.url);
    player.lockOutput=false;
    if (config.store.smartstart == 1) player.sendCommand({PR_PLAY, config.store.lastStation});
    }

    void loop() {
    telnet.loop();
    if (network.status == CONNECTED || network.status==SDREADY) {
    player.loop();
    //loopControls();
    }
    loopControls();
    netserver.loop();
    }

    #include "src/core/audiohandlers.h"

  3. #48
    Happy fery21's Avatar
    Join Date
    18 Feb 2008
    Location
    Big Bang
    Posts
    2,552
    Mentioned
    8 Post(s)
    Rep Power
    86

    Default

    Foloseste un interval de reconectare

    EX:
    const long interval = 10000; // Interval de reconectare in milisecunde (10 secunde)
    ..::EGAMI TEAM::..

  4. #49
    Standard RSP member cipryDXfeed's Avatar
    Join Date
    17 Nov 2008
    Location
    ALBA
    Posts
    1,838
    Mentioned
    1 Post(s)
    Rep Power
    78

    Default

    Unde vine introdus in codul de sus?

  5. #50
    Happy fery21's Avatar
    Join Date
    18 Feb 2008
    Location
    Big Bang
    Posts
    2,552
    Mentioned
    8 Post(s)
    Rep Power
    86

    Default

    Ai un exemplu in care folosesti millis.

    #include <WiFi.h>

    const char* ssid = "MyWiFi";
    const char* password = "12345678";

    unsigned long previousMillis = 0;

    void setup() {
    Serial.begin(115200);
    WiFi.begin(ssid, password);
    Serial.println("Conectat la rețeaua Wi-Fi...");
    }

    void loop() {
    if (WiFi.status() != WL_CONNECTED) {
    unsigned long currentMillis = millis();

    if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    Serial.println("Conexiunea pierdută. Se încearcă reconectarea...");
    WiFi.disconnect();
    WiFi.begin(ssid, password);
    }
    } else {
    Serial.println("Conectat la rețeaua Wi-Fi.");
    }

    delay(1000); // Faceți o pauză de 1 secundă pentru a evita supraîncărcarea buclei
    }
    ..::EGAMI TEAM::..

  6. #51
    Happy fery21's Avatar
    Join Date
    18 Feb 2008
    Location
    Big Bang
    Posts
    2,552
    Mentioned
    8 Post(s)
    Rep Power
    86

    Default

    Testează si spunemi daca se reconecteaza.

    În cazul în care folosești MQTT, poate fi util să reconectezi și clientul MQTT după ce conexiunea WiFi este restabilită.

    Code:
    #include "Arduino.h"
    #include "src/core/options.h"
    #include "src/core/config.h"
    #include "src/core/telnet.h"
    #include "src/core/player.h"
    #include "src/core/display.h"
    #include "src/core/network.h"
    #include "src/core/netserver.h"
    #include "src/core/controls.h"
    #include "src/core/mqtt.h"
    #include "src/core/optionschecker.h"
    
    extern __attribute__((weak)) void yoradio_on_setup();
    
    unsigned long lastReconnectAttempt = 0;
    const unsigned long reconnectInterval = 10000; // Interval pentru reconectare (10 secunde)
    
    void setup() {
        Serial.begin(115200);
        if (LED_BUILTIN != 255) pinMode(LED_BUILTIN, OUTPUT);
        if (yoradio_on_setup) yoradio_on_setup();
        config.init();
        display.init();
        player.init();
        network.begin();  // Pornire inițială a rețelei
    
        if (network.status != CONNECTED && network.status != SDREADY) {
            netserver.begin();
            initControls();
            display.putRequest(DSP_START);
            while (!display.ready()) delay(10);
            return;
        }
    
        if (SDC_CS != 255) {
            display.putRequest(WAITFORSD, 0);
            Serial.print("##[BOOT]#\tSD search\t");
        }
        config.initPlaylistMode();
        netserver.begin();
        telnet.begin();
        initControls();
        display.putRequest(DSP_START);
        while (!display.ready()) delay(10);
    
    #ifdef MQTT_ROOT_TOPIC
        mqttInit();
    #endif
    
        if (config.getMode() == PM_SDCARD) player.initHeaders(config.station.url);
        player.lockOutput = false;
        if (config.store.smartstart == 1) player.sendCommand({PR_PLAY, config.store.lastStation});
    }
    
    void loop() {
        telnet.loop();
        
        if (network.status == CONNECTED || network.status == SDREADY) {
            player.loop();
        } else {
            attemptReconnect();  // Verifică și încearcă să reconecteze dacă este nevoie
        }
    
        loopControls();
        netserver.loop();
    }
    
    // Funcție pentru a încerca reconectarea la rețea
    void attemptReconnect() {
        unsigned long currentMillis = millis();
        
        if (currentMillis - lastReconnectAttempt > reconnectInterval) {
            lastReconnectAttempt = currentMillis;
            Serial.println("Conexiune pierdută! Încerc să reconectez...");
            display.putRequest(DSP_MSG, "Reconectare WiFi...");
            network.begin();  // Reîncearcă conectarea la rețea
    
            if (network.status == CONNECTED) {
                Serial.println("Reconectat la WiFi!");
                display.putRequest(DSP_MSG, "Conexiune restabilită.");
            } else {
                Serial.println("Reconectarea a eșuat.");
            }
        }
    }
    ..::EGAMI TEAM::..

  7. #52
    Standard RSP member cipryDXfeed's Avatar
    Join Date
    17 Nov 2008
    Location
    ALBA
    Posts
    1,838
    Mentioned
    1 Post(s)
    Rep Power
    78

    Default

    La compilare imi da eroare

    <!----><div style="text-align: center;"><a href="https://acosbot.com/en/blog/amazon-brand-store-what-is-it-and-how-to-set-it-up/" title="Eselt - amazon brand store" target="_blank"><img src="https://img.eselt.de/img/16753785_fEDPyuDoVMj19yF4/ad.jpg" style="margin-bottom: 16px;"></a><!----><!----></div>

    - - - Updated - - -


    - amazon brand store

    ---------- Post added at 20:54 ---------- Previous post was at 20:50 ----------


    amazon book ads

  8. #53
    Happy fery21's Avatar
    Join Date
    18 Feb 2008
    Location
    Big Bang
    Posts
    2,552
    Mentioned
    8 Post(s)
    Rep Power
    86

    Default

    Da e si normal, nu am definito, daca nu stiu ce display folosesti, dami detali.
    Dacă nu există DSP_MSG, poți utiliza o altă constantă deja definită, sau adăuga manual una.

    1. Înlocuiește DSP_MSG cu altă comandă existentă:
    Poți încerca cu o constantă existentă, cum ar fi DSP_TEXT (dacă biblioteca o definește):
    [CCODE]display.putRequest(DSP_TEXT, "Reconectare WiFi...");[\CODE]

    2. Definește DSP_MSG manual:
    Dacă vrei să păstrezi DSP_MSG, îl poți defini tu:
    Adaugă în fișierul display.h sau la începutul fișierului principal:
    [CODE]display.putRequest(DSP_TEXT, "Reconectare WiFi...");[\CODE]
    Acest cod poate varia în funcție de biblioteca folosită.
    Trebuie să te asiguri că valoarea constantă nu intră în conflict cu alte valori deja existente.

    3. Verifică funcția putRequest()
    Este posibil ca biblioteca display să utilizeze alt mod pentru a afișa mesaje. Verifică documentația sau fișierul display.h pentru a identifica cum poate fi trimis un mesaj text.
    Dacă ai nevoie de mai multe informații despre structura proiectului tău sau despre modul în care funcționează biblioteca display, trimite-mi mai multe detalii. Te pot ajuta să rezolvăm eroarea!

    ---------- Post added at 06:51 ---------- Previous post was at 06:48 ----------

    Quote Originally Posted by fery21 View Post
    Da e si normal, nu am definito, daca nu stiu ce display folosesti, dami detali.
    Dacă nu există DSP_MSG, poți utiliza o altă constantă deja definită, sau adăuga manual una.

    1. Înlocuiește DSP_MSG cu altă comandă existentă:
    Poți încerca cu o constantă existentă, cum ar fi DSP_TEXT (dacă biblioteca o definește):
    Code:
    display.putRequest(DSP_TEXT, "Reconectare WiFi...");
    2. Definește DSP_MSG manual:
    Dacă vrei să păstrezi DSP_MSG, îl poți defini tu:
    Adaugă în fișierul display.h sau la începutul fișierului principal:
    Code:
    display.putRequest(DSP_TEXT, "Reconectare WiFi...");
    Acest cod poate varia în funcție de biblioteca folosită.
    Trebuie să te asiguri că valoarea constantă nu intră în conflict cu alte valori deja existente.

    3. Verifică funcția putRequest()
    Este posibil ca biblioteca display să utilizeze alt mod pentru a afișa mesaje. Verifică documentația sau fișierul display.h pentru a identifica cum poate fi trimis un mesaj text.
    Dacă ai nevoie de mai multe informații despre structura proiectului tău sau despre modul în care funcționează biblioteca display, trimite-mi mai multe detalii. Te pot ajuta să rezolvăm eroarea!
    ..::EGAMI TEAM::..

  9. #54
    Standard RSP member cipryDXfeed's Avatar
    Join Date
    17 Nov 2008
    Location
    ALBA
    Posts
    1,838
    Mentioned
    1 Post(s)
    Rep Power
    78

    Default

    Asta este in display.h

    #ifndef displayST7735_h
    #define displayST7735_h
    #include "../core/options.h"

    #include "Arduino.h"
    #include <Adafruit_GFX.h>
    #include <Adafruit_ST7735.h>

    #if CLOCKFONT_MONO
    #include "fonts/DS_DIGI28pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/
    #else
    #include "fonts/DS_DIGI28pt7b.h"
    #endif
    #include "tools/l10n.h"

    #define CHARWIDTH 6
    #define CHARHEIGHT 8

    typedef GFXcanvas16 Canvas;
    #include "widgets/widgets.h"
    #include "widgets/pages.h"


    #if __has_include("conf/displayST7735conf_custom.h")
    #include "conf/displayST7735conf_custom.h"
    #else
    #if DTYPE==INITR_MINI160x80
    #include "conf/displayST7735_miniconf.h"
    #elif DTYPE==INITR_144GREENTAB
    #include "conf/displayST7735_144conf.h"
    #else
    #include "conf/displayST7735_blackconf.h"
    #endif
    #endif

    #define BOOT_PRG_COLOR 0xE68B
    #define BOOT_TXT_COLOR 0xFFFF
    #define PINK 0xF97F

    class DspCore: public Adafruit_ST7735 {
    #include "tools/commongfx.h"
    };

    extern DspCore dsp;

    #endif





    Si in myoption.h




    #ifndef myoptions_h
    #define myoptions_h

    /* Generated by myoptions.h generator - v0.8.1 */
    /* https://e2002.github.io/docs/myoptio...26,25,34,35,32 */
    /* Put this file next to yoRadio.ino and restart Arduino IDE. */

    /* !!! Attention !!! */
    /* This configuration depends on some additional libraries. Please install them using the library manager: */
    /* Adafruit GFX Library, Adafruit ST7735 and ST7789 Library, OneButton */

    /* !!! Do not be alarmed, all right, the default values ​​are not included in this file !!! */

    #define DSP_MODEL DSP_ST7735
    #define TFT_RST 15
    #define BRIGHTNESS_PIN 21
    #define ENC_BTNR 34
    #define ENC_BTNL 35
    #define ENC_BTNB 32
    #define ENC_INTERNALPULLUP false
    #define RSSI_DIGIT false

    #endif

  10. #55
    Happy fery21's Avatar
    Join Date
    18 Feb 2008
    Location
    Big Bang
    Posts
    2,552
    Mentioned
    8 Post(s)
    Rep Power
    86

    Default

    Nu am acest display ST7735 sa fac un test, dar inceaca acest cod sa verifici daca pe display apare reconectare apoi refacem.

    Code:
    #include <Adafruit_GFX.h>
    #include <Adafruit_ST7735.h>
    #include <SPI.h>
    
    #define TFT_CS    10
    #define TFT_RST   9
    #define TFT_DC    8
    
    Adafruit_ST7735 display = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
    
    unsigned long lastReconnectAttempt = 0;
    const unsigned long reconnectInterval = 10000; // Interval pentru reconectare (10 secunde)
    
    void setup() {
        Serial.begin(115200);
        display.initR(INITR_BLACKTAB);
        display.fillScreen(ST77XX_BLACK);
        display.setTextColor(ST77XX_WHITE);
        display.setTextSize(1);
        display.setCursor(0, 0);
        display.print("Initializare...");
    
        // Simulăm inițializarea rețelei
        network.begin();
    }
    
    void loop() {
        if (network.status != CONNECTED) {
            attemptReconnect();
        }
    }
    
    void attemptReconnect() {
        unsigned long currentMillis = millis();
        if (currentMillis - lastReconnectAttempt > reconnectInterval) {
            lastReconnectAttempt = currentMillis;
            Serial.println("Conexiune pierdută! Încerc să reconectez...");
            display.fillScreen(ST77XX_BLACK);
            display.setCursor(0, 0);
            display.print("Reconectare WiFi...");
            network.begin();
    
            if (network.status == CONNECTED) {
                Serial.println("Reconectat la WiFi!");
                display.fillScreen(ST77XX_BLACK);
                display.setCursor(0, 0);
                display.print("Conexiune restabilită.");
            } else {
                Serial.println("Reconectarea a eșuat.");
                display.print("\nEșec reconectare.");
            }
        }
    }
    ..::EGAMI TEAM::..

  11. #56
    Standard RSP member cipryDXfeed's Avatar
    Join Date
    17 Nov 2008
    Location
    ALBA
    Posts
    1,838
    Mentioned
    1 Post(s)
    Rep Power
    78

    Default

    nu compileaza



    ---------- Post added at 20:51 ---------- Previous post was at 20:41 ----------

    am atasat codul complet

    https://fastupload.io/b1359e9669c227eb

    ---------- Post added at 20:56 ---------- Previous post was at 20:51 ----------

    Ce am observat acuma in seara asta este ca ramane conectat la wifi pentru ca am acces la interfata , playerul radio nu se conecteaza doar daca ii dau conect din interfata cred ca aici este mai bine sa verifice conexiunea la 10 secunde. multumesc frumos.

  12. #57
    Standard RSP member
    Join Date
    02 Apr 2007
    Location
    Weissenburg
    Posts
    279
    Mentioned
    3 Post(s)
    Rep Power
    71

    Default

    De la @mateda, sanatate !
    Quote Originally Posted by val View Post
    De la AliExpress comandă un modul Esp32 wrover varianta având conector pentru antena exterioara, LCD vezi variantele suportate de YoRadio prezentate pe pagina GitHub a proiectului. Pentru stereo comanda ori 2 module max9857 sau 1 modul PCM5102 + un modul stereo audio de ce putere vrei tu. Și o antena wifi.
    Am facut ce zici tu aici. Ramine pentru dupa Anul Nou.
    Miine vine Mos Craciun si va doresc sa va aduca tot ce va doriti, chiar daca-i ilegal sau imoral, he-he !
    Mosul o sa-i aduca sotiei mele radioul facut la indicatiile si cu incurajarile colegului @val, despre care pot sa spun doar </b>Da-i, Doamne, sanatate ! <b/>.
    Am o singura problema cu proiectul - am nevoie de URL pentru Romania Cultural. Daca aveti asa ceva si-mi dati si mie, Mosu` sa va-mbucure !
    Sarbatori fericite si un An Nou de exceptie !
    160 pounds of star dust

  13. #58
    dishwasher val's Avatar
    Join Date
    14 Jul 2007
    Location
    DTX
    Posts
    1,940
    Mentioned
    36 Post(s)
    Rep Power
    100
    UFS910, Nokia d-Box1, Nokia d-Box2, Optibox500, Vu+ Zero4K

  14. #59
    Standard RSP member
    Join Date
    02 Apr 2007
    Location
    Weissenburg
    Posts
    279
    Mentioned
    3 Post(s)
    Rep Power
    71

    Default

    Multumesc, functioneaza !
    Va tin la curent cu proiectul nou, cu WROVER.
    160 pounds of star dust

  15. #60
    dishwasher val's Avatar
    Join Date
    14 Jul 2007
    Location
    DTX
    Posts
    1,940
    Mentioned
    36 Post(s)
    Rep Power
    100
    UFS910, Nokia d-Box1, Nokia d-Box2, Optibox500, Vu+ Zero4K

Page 4 of 5 FirstFirst 12345 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •