logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
24. November 2020, 09:55:19
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  Makerprojekte  |  Arduino und Co (Mikrocontroller)  |  Thema: ESP32 Simple Internet Radio mit OLED Display « zurück vorwärts »
Seiten: 1 [2] nach unten Drucken
   Autor  Thema: ESP32 Simple Internet Radio mit OLED Display  (Gelesen 496 mal)
Dietrich
Jr. Member
**

Offline

Einträge: 82



Immer schön neugierig bleiben

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #15 am: 04. November 2020, 17:51:35 »

noch zwei Bilder dazu
 Radio_PORT.png
Gespeichert

Dietrich
Jr. Member
**

Offline

Einträge: 82



Immer schön neugierig bleiben

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #16 am: 04. November 2020, 17:54:46 »

noch zwei Bilder dazu
 counter.png
Gespeichert

Andreas
Administrator
*****

Offline

Einträge: 778



Linux von Innen

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #17 am: 05. November 2020, 06:21:43 »

Klasse Dietrich. Zu Dir passt auch meine Antwort auf den Thread von Thomas mit "Quisk". Sein Grundverständnis über Zusammenhänge im Logiksektor (zu dem ja Computer zweifelsohne gehören) auszubauen ist ein sehr erfolgsversprechender und aufbauender Weg.

LG
Andreas
Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
DL8EBD
Jr. Member
**

Offline

Einträge: 60



Linux Newbie

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #18 am: 05. November 2020, 06:41:17 »

super Dietrich!
Definitiv werde ich auch mal ein ESP32 WebRadio bauen. Mir schwebt da so etwas in Kombination mit einer Wetterstation vor und am liebsten in einem stylischen Röhrenradio-Gehäuse.


Ein Arbeitskollege und ich haben letztens eine WordUhr (nach)gebaut - Basis ist ein ESP8266 - so gesehen der Vorläufer vom ESP32. Auch ein lohnendes Projekt mit offen liegenden Arduino Quellen!



Gespeichert

Gruß
Thomas
Dietrich
Jr. Member
**

Offline

Einträge: 82



Immer schön neugierig bleiben

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #19 am: 06. November 2020, 21:30:05 »

Um auch mp3 Stream mit 128 kbs (bis jetzt ging nur 64 kbs) hören zu können muß der Sketch erweitert werden. Damit lassen sich fast alle gängigen Radiostationen hören, ein *mp3-128 File gibt's fast immer. Mit 64 kbs Sendern habe ich meine 6 Senderplätze füllen können, mehr habe ich auch nicht gefunden.

Vor host/path ist am Anfang der Zeile const einzufügen

const char *host
const char *path

Jetzt fängt die Suche nach einem Gehäuse an, das sollte aber jetzt  das kleinste Hindernis sein 
 const_char.png
« Letzte Änderung: 06. November 2020, 21:34:35 von Dietrich »
Gespeichert

Dietrich
Jr. Member
**

Offline

Einträge: 82



Immer schön neugierig bleiben

Profil anzeigen
OLED, Schriftgrößen ?-ESP32 Simple Internet Radio mit OLED Dis
« Antwort #20 am: 21. November 2020, 09:47:49 »

Kleine Nachfrage zu meinem Projekt,

Ich möchte die Anzeige im OLED Diplay verändern....lesen im WEB hat mir nicht geholfen...

Ich möchte die erste Zeile der Anzeige verkleinern und die letzte mit der INFO zum gehörten Station vergrößern.

Code:
rb-edge-3079-dus-ts-dn.cast.addradio.de/rb/bremenzwei/live/mp3/128/stream.mp3                    Bremen 2            aktiv   
http://stream.antenne1.de/stream2/livestream.mp3",                                        Antenne 1 Bayern    aktiv
http://dradio-edge-3092-dus-ts-cdn.cast.addradio.de/dradio/kultur/live/mp3/64/stream.mp3  DLF-Kultur
http://dradio-edge-3096-fra-ts-cdn.cast.addradio.de/dradio/dlf/live/mp3/64/stream.mp3    DL
http://dradio-edge-3091-dus-ts-cdn.cast.addradio.de/dradio/nova/live/mp3/64/stream.mp3
https://wdr-edge-201f-fra-lg-cdn.cast.addradio.de/wdr/kiraka/live/mp3/128/stream.mp3
http://rb-edge-1079-dus-dtag-cdn.cast.addradio.de/rb/bremenvier/live/mp3/128/stream.mp3  Bremen 4 128        aktiv
http://ndr-edge-203f-fra-lg-cdn.cast.addradio.de/ndr/ndrkultur/live/mp3/128/stream.mp3          NDR Kultur    aktiv
  http://radio-player.bmr-radio.de/ballermann-radio.mp3                                                     
  http://138.201.248.93:80/salsa                                                                             
  http://138.201.248.93:80/partyhits  gewöhnungsbedürftig ab 2 Promille                                                                     
  Http://streams.rpr1.de/rpr-tanzbar-128-mp3                                                                  aktiv
  http://streams.rpr1.de/rpr-country-128-mp3                                                                  aktiv

 
VS1053 - connections detail
XRST = EN (D3)
MISO = D19
MOSI = D23
SCLK = D18
VCC = 5V / 3.3 V
Gnd = Gnd
 
*/

// This ESP_VS1053_Library
#include <VS1053.h>

#include <Preferences.h>  //For reading and writing into the ROM memory
Preferences preferences;
unsigned int counter,old_counter,new_counter;

#include "helloMp3.h"
#include <WiFi.h>
#include <HTTPClient.h>
#include <esp_wifi.h>


//OLED 64*32 display headers
#include "SSD1306.h"
SSD1306  display(0x3c, 21,22);

char ssid[] = "FRITZ!Box 7590 FV";    //  your network SSID (name)
char pass[] = "60993917188317084966";  // your network password

const char *host[7] = {"rb-edge-1079-dus-dtag-cdn.cast.addradio.de","rb-edge-3079-dus-ts-cdn.cast.addradio.de","stream.antenne1.de","ndr-edge-203f-fra-lg-cdn.cast.addradio.de","rb-edge-307b-dus-ts-cdn.cast.addradio.de","streams.rpr1.de","streams.rpr1.de"};
const char *path[7] = {"/rb/bremenvier/live/mp3/128/stream.mp3","/rb/bremenzwei/live/mp3/128/stream.mp3","/stream2/livestream.mp3","/ndr/ndrkultur/live/mp3/128/stream.mp3","/rb/bremeneins/live/mp3/128/stream.mp3","/rpr-tanzbar-128-mp3","/rpr-country-128-mp3"};
//const char *path = "/doomed-128-mp3",
int  port[7] = {80,80,80,80,80,80,80};

char *sname[7] = {"Radio Bremen 4","Bremen 2","Antenne 1","NDR-Kultur","Bremen 1","Tanzbar","Country"};


int change=13;
bool x=true;
int status = WL_IDLE_STATUS;
WiFiClient  client;
uint8_t mp3buff[32];  // vs1053 likes 32 bytes at a time

// Wiring of VS1053 board (SPI connected in a standard way)
#define VS1053_CS    32 //32
#define VS1053_DCS  33  //33
#define VS1053_DREQ  35 //15
#define VOLUME  85 // volume level 0-100
VS1053 player (VS1053_CS, VS1053_DCS, VS1053_DREQ);

void setup () {
//Begin display
display.init();
display.invertDisplay();
display.setFont(ArialMT_Plain_16);
display.normalDisplay();
display.setColor(WHITE);
display.drawString(0,0,"  ESP32 Radio");
display.setFont(ArialMT_Plain_10);
 
  pinMode(change,INPUT_PULLUP);
// initialize SPI
  Serial.begin(115200);
  delay(500);
// initialize SPI bus;
  SPI.begin();

// initialize VS1053 player
    player.begin();
    player.switchToMp3Mode(); // optional, some boards require this
    player.setVolume(VOLUME);
 
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) {
  //  display.drawString(0,15,"  Connecting..");
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi connected"); 
  Serial.print("IP address:"); 
  Serial.println(WiFi.localIP());
  display.setColor(WHITE);
  String x1="Connected to:"+String(ssid[0])+String(ssid[1])+String(ssid[2])+String(ssid[3]);
  display.drawString(0,15,x1);
  x1="IP:"+WiFi.localIP().toString();
  display.drawString(0,27,x1);

preferences.begin("my-app", false);
counter = preferences.getUInt("counter", 0);
old_counter=counter;

String x3="Stn:"+String(counter);
String x4="Playing:"+String(sname[counter]);  //+String(path[counter])":"+ String(port[counter]);  //.toString();
display.drawString(80,27,x3);
display.drawString(0,37,x4.substring(0,60));
display.display();
x4="";
Serial.printf("Current counter value: %u\n", counter);
delay(100);
//player.playChunk(hello2, sizeof(hello2)); //VS1053 is wake up & running
station_connect(counter);
}

void loop() {

      if (client.available() > 0) {
      uint8_t bytesread = client.read(mp3buff, 32);
      player.playChunk(mp3buff, bytesread);
      }
     
    if(digitalRead(change)==0 and x==true){
    x=false;
    counter = counter+1;
    if(counter>6) counter=0;
    preferences.putUInt("counter",counter);
    new_counter=counter;
    Serial.printf("Set counter to new_value: %u\n", counter);
    delay(500);

    if(old_counter != new_counter) {
 
    player.softReset();
    x=true;
    station_connect(new_counter);
    player.switchToMp3Mode();
    preferences.putUInt("counter",new_counter);
 
  //was missing:

    old_counter = new_counter;

   

String x3="Stn:"+String(counter);
String x4="Playing:"+String(sname[counter]);  //+ String(path[counter])+":"+String(port[counter]);  //.toString();
display.clear();
display.setFont(ArialMT_Plain_16);
display.drawString(0,0,"  ESP32 Radio");
display.setFont(ArialMT_Plain_10);
String x1="Connected to:"+String(ssid[0])+String(ssid[1])+String(ssid[2])+String(ssid[3]);
display.drawString(0,15,x1);
x1="IP:"+WiFi.localIP().toString();
display.drawString(0,27,x1);
display.drawString(80,27,x3);
display.drawString(0,37,x4.substring(0,60));

display.display();
    }
  }
}

void station_connect (int station_no ) {
    if (client.connect(host[station_no],port[station_no]) ) {
    Serial.println("Connected now");
    }
    Serial.print(host[station_no]);
    Serial.println(path[station_no]);
    client.print(String("GET ") + path[station_no] + " HTTP/1.1\r\n" + "Host: " + host[station_no] + "\r\n" + "Connection: close\r\n\r\n");   
  }
 20201118_173730_scala.jpg
« Letzte Änderung: 21. November 2020, 10:09:51 von Dietrich »
Gespeichert

Andreas
Administrator
*****

Offline

Einträge: 778



Linux von Innen

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #21 am: 21. November 2020, 10:56:13 »

Es kann aber sein dass die drei Zeilen in größeren Buchstaben nicht mehr auf das Display passen.

Dann stellt sich die Frage ob man die Zeile mit dem ESP32Dario überhaupt braucht und nicht einfach komplett weglässt 


LG
Andreas
 2020-11-21_11-54.png
« Letzte Änderung: 21. November 2020, 11:02:38 von Andreas »
Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.

Dietrich
Jr. Member
**

Offline

Einträge: 82



Immer schön neugierig bleiben

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #22 am: 21. November 2020, 15:41:24 »

Hallo Andreas,
danke für den Denkanstoß....hat mir weitergeholfen.

Meine Änderungen habe ich aber an anderer Stelle vorgenommen, mit dem Ergebnis

start = alter Bildschirm mit allem Infos zur Verbindung

nach dem ersten Senderwechsel wird die Anzeige veränder und reduziert auf den Speicherplatz und Sendername (beides groß)
 Oled_Anpassung.png
Gespeichert

Dietrich
Jr. Member
**

Offline

Einträge: 82



Immer schön neugierig bleiben

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #23 am: 21. November 2020, 16:15:08 »

Und hier das Ergebnis
 Startbildschirm_cut.jpg
Gespeichert

Dietrich
Jr. Member
**

Offline

Einträge: 82



Immer schön neugierig bleiben

Profil anzeigen
beendet_Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #24 am: 21. November 2020, 16:16:54 »

Somit betrachte ich diese Aktion als beendet und bedanke mich bei Andreas und Thomas für die Unterstützung
 Betriebsbildschirm.jpg
Gespeichert

Andreas
Administrator
*****

Offline

Einträge: 778



Linux von Innen

Profil anzeigen
Re:ESP32 Simple Internet Radio mit OLED Display
« Antwort #25 am: 21. November 2020, 17:45:35 »

Schön dass Dich mein Ansatz weitergebracht hat. Der richtige Ansatz ist in 90% der Fälle das Tor, um die "richtigen Stellen" dann identifizieren zu können. Und auf die Weise erlernt man "ganz nebenbei" auch neue Programmiersprachen - wenn man dann will...


LG
Andreas
Gespeichert

Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Seiten: 1 [2] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  Makerprojekte  |  Arduino und Co (Mikrocontroller)  |  Thema: ESP32 Simple Internet Radio mit OLED Display « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!