Guten Morgen,
ich würde gerne den ESP32 verwenden um die vom Headset
(Freisprecheinrichtung, Knopf im Ohr), das man normalerweise mit dem
Smartphone koppelt, dessen Audiodaten (beide Richtungen) über WIFI zu
senden. So will ich mit mehreren ESP32 (einen pro Person), eine
verlängerte Intercom bauen, wo Jeder somit Jedem sprechen kann.
Vergleichbar mit TeamSpeak oder Personen in einem Raum.
Kann mir jemand vorschlagen bzw. gibt es Codes (Sketch) mit dem man den
ESP als Bluetooth-Spot für Audio aufzubauen um dann die Daten per WiFi
an die Gruppe (UDP als Broadcast, gehen Pakete verloren, kein Problem,
ist dann so wie beim Funkgerät wenn der Andere im Funkloch ist)
Die ESPs verbinden sich gegenseitig per WiFi und reichen die Audiodaten
einfach durch.
Vorschläge?
Grüße
Tomas ohne h
Hallo Tomas,
für Deine Anwendung brauchst Du auf jeden Fall ein Stateless Protokoll.
Wie Du schon geschrieben hast, eignet sich UDP dfür. Wie gut soll den
die Audio Qualität sein? Für Sprache könnte das der ESP vermutlich noch
selber samplen. Bei Musik wird das wohl ein externer Chip erledigen
müssen.
Das ist ein sehr komplexes Thema. Also einfach ein paar Arduino-Libs
zusammenzufrickeln wird nicht reichen. Du solltest schon wissen was Du
tust.
Weshalb machst Du die Schaltung nicht old-style in Analogtechnik? Da
funktioniert so was out-of-the-box.
VG
Jörg
Hallo Jörg,
es soll nur Sprache sein. Ich will deswegen die Headsets verwenden, weil
wir sowas alle verwenden.
Smartphones lassen wir im Auto. Am ESP müssen wir nix löten, nur
Firmware aufspielen sozusagen. Zudem will ich nicht selbstgebaute
Funkgeräte nehmen, um andere Funkdienste nicht zu stören.
Tomas T. schrieb:> Am ESP müssen wir nix löten, nur> Firmware aufspielen sozusagen.
Nimmes mir bitte nicht übel, aber kann es ein, dass du noch nicht einmal
wüsstest, wie man anlaloge Signale und ich rede hier von eimen 50HZ
Sinus, zu einem digitalen macht um diesen dann weiter zu leiten? Sind
Dir die µC internen Timing Probleme bewusst, damit das ganze sich nicht
verzerrt?
Mach einen Designvorschlag und du wirst Kommentare bekommen. Die
Vorstellung wir würden für Dich entwickeln, finde ich dreist.
VG
Jörg
Hallo,
eventuell hilft das hier weiter:
https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/a2dp_sink
Hab das selbst nicht probiert, es scheint aber eine Umsetzung des a2dp
Protokolls zu sein, zumindest in Empfaengerrichtung. Das ganze ist aber
nicht Arduino sondern ESP IDF. Ausserdem wird dort direkt mit DAC
ausgegeben, du wuerdest in deiner Anwendgung das Ganze per UDP ausgeben.
Den ganzen Rueckweg, also von UDP auf Bluetooth A2DP deckt das wohl
nicht ab.
@Joerg: Ich denke deine Einwaende sind nicht passend, der TE will
garnicht von Analog auf Digital wandeln, es geht um Umsetzung von BT auf
UDP, insofern sollte das tatsaechlich eine reine Softwarefrage sein.
Gruesse, Carsten
Edit: hab gerade gesehen es gibt auch die andere Richtung:
https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/a2dp_source
Deine Aufgabe wuerde also darin bestehen statt ADC/DAC Input/Output auf
UDP zu wechseln
Jörg, wie gesagt, ich wollte diesmal nur den ESP als Bridge von AudioBT
zu WiFi. Wenn ich diesmal löten wollte, hatte ich mir ein i2c
Mems-Mikrofon genommen. Ich will aber nur den Audiostream von und zum
Headset über WiFi mittels ESP machen, da dann alle Komponenten schon
vorhanden sind.
Carsten F. schrieb:> Ich denke deine Einwaende sind nicht passend, der TE will garnicht von> Analog auf Digital wandeln, es geht um Umsetzung von BT auf UDP,> insofern sollte das tatsaechlich eine reine Softwarefrage sein.
Genau.
Grüße
Tomas ohne h
Carsten F. schrieb:> Ich denke deine Einwaende sind nicht passend, der TE will> garnicht von Analog auf Digital wandeln, es geht um Umsetzung von BT auf> UDP, insofern sollte das tatsaechlich eine reine Softwarefrage sein.
Ok, dan entschuldigt bitte. Dann habe ich wohl was falsch verstanden.
VG
Jörg
STK500-Besitzer schrieb:> Hat der ESP überhaupt einen Bluetooth-Zugang?
Der ESP32 unterstützt unter anderem BLE. Wenn man die
Internetsuchmaschine seiner Wahl bemüht, findet man binnen weniger
Sekunden diverse Beispielapplikationen für die Verwendung von Bluetooth
mit dem ESP32.
Rufus Τ. F. schrieb:> STK500-Besitzer schrieb:>> Hat der ESP überhaupt einen Bluetooth-Zugang?>> Der ESP32 unterstützt unter anderem BLE. Wenn man die> Internetsuchmaschine seiner Wahl bemüht, findet man binnen weniger> Sekunden diverse Beispielapplikationen für die Verwendung von Bluetooth> mit dem ESP32.
Danke für die Info. Ich hatte mich bisher noch nicht wirklich mit dem
Ding auseinandergesetzt. (Und googlen haben ich mir einfach mal gespart
- hätte ja sein können, dass der Threadstarter da auch übersehen hat).
Hallo zusammen,
wenn ich BLE auf WiFi umsetzen will und das synchron, so wie ich
verstanden habe, brauche ich dann nicht auch idealerweise zwei RF Teile?
"Shared Radio" soll wohl möglich sein, aber wenn
Tomas T. schrieb:> Schön wäre es wenn es ein Beispiel von diesem a2dp auf UDP geben würde
das so formuliert dann erlabubt mir bitte Zweifel zu äußern dass er sich
der Komplexität bewusst ist. Hier wird das diskutiert.
http://bbs.esp32.com/viewtopic.php?t=6707
Das ESP-IDF A2DP-SINK demo verwendet übrigens I2S.
Als Lösungsansatz würde ich vier DMA-Puffer sehen, soweit diese noch
nicht um A2DP implementiert sind:
SBC_IN, SBC_OUT, WIFI_IN, WIFI_OUT.
Aufgabe des Programmes ist nun Die RF-Stacks so umzuschalten, das wenig
Informationen verloren gehen und die Puffer zu leeren und zu füllen.
Darin liegt das Hauptproblem. Thomas, traust Du Dir das zu? Damit
steigst Du tief in das Verständnis einer Solchen MCU ein. Ich wünsche
echt Dir viel Erfolg dabei.
VG
Jörg
Jörg B. schrieb:> Hallo zusammen,>> wenn ich BLE auf WiFi umsetzen will und das synchron, so wie ich> verstanden habe, brauche ich dann nicht auch idealerweise zwei RF Teile?> "Shared Radio" soll wohl möglich sein, aber wenn
Zuerst einmal solltest Du die Grundlagen beherrschen.
Du wirfst ja schon BLE und Classic durcheinander. So wird das nie was
geben...
Jörg B. schrieb:> Das ESP-IDF A2DP-SINK demo verwendet übrigens I2S.
Ich glaube ich drücke mich fortlaufend falsch aus!
Ich will weder die Daten über I2C (I2S) senden, noch mittels AD/DA durch
den ESP32 wandeln.
Was ich will: hab ich mal als Bild gemalt.
Ich will einfach nur den ESP32 (weil der BlueTooth UND WiFi kann)
missbrauchen um die Sprache von und zum Headset über WiFi zu übertragen.
In dem "Netz" können sich von mir aus noch zwei weitere Teilnehmer
befinden und somit hören als auch dazwischen quatschen. Deswegen UDP und
nicht TCP.
So als ob einfach viel Leute am Tisch sitzen und miteinander reden. Oder
wie in einem TeamSpeak-Raum.
Der ESP kann zudem 4 Clients gleichzeitig und stellt dabei noch einen AP
bereit. Somit kann man die ESPs so konfigurieren dass bei
Verbindungsabbruch der ESP sich den nächstgelegenen sucht und verbindet.
Der Stack routet die Daten (wenn Broadcast) zu allen anderen Teilnehmern
durch.
Das mache ich bereits mit Statusmeldungen. Nur das mit dem Bluetooth
verstehe ich nicht und würde gerne Hilfe beim Umsetzen von Headset zu
UDP erhalten.
John Doe schrieb:> Zuerst einmal solltest Du die Grundlagen beherrschen.> Du wirfst ja schon BLE und Classic durcheinander. So wird das nie was> geben...
Ok,dan bin ich 'raus. Veielleichtmöchtst Du ja uns an Deinem Wissen
teilhaben lassen...
Tomas T. schrieb:> Jörg B. schrieb:>> Das ESP-IDF A2DP-SINK demo verwendet übrigens I2S.>> Ich glaube ich drücke mich fortlaufend falsch aus!
Genau so habe ich das verstanden und versucht zu helfen. @"John Doe" Du
scheinst kompetenter, dann mach Du bitte weiter.
VG
Jörg
Jörg B. schrieb:> John Doe schrieb:>> Zuerst einmal solltest Du die Grundlagen beherrschen.>> Du wirfst ja schon BLE und Classic durcheinander. So wird das nie was>> geben...>> Ok,dan bin ich 'raus. Veielleichtmöchtst Du ja uns an Deinem Wissen> teilhaben lassen...
Klar, kein Problem.
> Genau so habe ich das verstanden und versucht zu helfen. @"John Doe" Du> scheinst kompetenter, dann mach Du bitte weiter.
Nur weil Rufus Τ. F. blödsinnigerweise BLE ins Spiel gebracht hat, kann
man sich doch mal kurz informieren. Die Specs sind doch verfügbar.
Tomas T. schrieb:> Ich will einfach nur den ESP32 (weil der BlueTooth UND WiFi kann)> missbrauchen um die Sprache von und zum Headset über WiFi zu übertragen.
Soso, "einfach"...
Bluetooth ist nicht Bluetooth. Daher lies Dir erst mal durch, was genau
Bluetooth ist.
Das Bluetooth Profil, welches für Deine Zwecke gedacht ist, ist das
Hands Free Profile (HFP). Dummerweise hat Espressif aber nur die
Client-Seite in seinem SDK implementier. Benötigen tust Du aber die
Gateway-Seite.
Daher solltest Du Dir einfach ein Bluetooth-Modul kaufen, welches
HFP-Gateway beherrscht. ALles andere wird scheitern.
Gänsefleisch schrieb:> Nur weil Rufus Τ. F. blödsinnigerweise BLE ins Spiel gebracht hat,
Mit einem Hauch mehr Lesekompetenz wäre Dir die Bedeutung der Wörter
unter anderem nicht entgangen.
Rufus Τ. F. schrieb:> Gänsefleisch schrieb:>> Nur weil Rufus Τ. F. blödsinnigerweise BLE ins Spiel gebracht hat,>> Mit einem Hauch mehr Lesekompetenz wäre Dir die Bedeutung der Wörter> unter anderem nicht entgangen.
Ich habe das sehr wohl gelesen.
Aber wieso faselst Du was von BLE, was mit Audio - und darum ging es dem
Fragenden ausschliesslich -, wo er eh schon mit dem Thema überfordert
ist?
Gerade als Moderator sollte DU die Kompetenz haben, zu verstehen, dass
man Anfänger eben NICHT mit im Kontext absolut unpassenden und zudem
noch verwirrenden Begriffen irritiert!
Gänsefleisch schrieb:> Aber wieso faselst Du was von BLE
Mäßige Deinen Tonfall.
Im übrigen könntest Du, wenn Du die Lesekompetenz hättest, die Du Dir
anmaßt, auch erkannt haben, worauf ich geantwortet habe.
Nebebei gelten auch für Dich die
https://www.mikrocontroller.net/user/conditions - Ein Thread, ein
Pseudonym.
Welches Bluetooth-Modul beherrscht das HFP-Gateway Profil?
Beim googeln findet man zwar einige Hersteller, die irgendwelche
derartige Module produzieren, aber wenn man bei ebay oder Ali
tatsächlich sowas kaufen möchte, findet man nichts. Ich suche möglichst
ein fertiges Modul, was man per UART oder SPI einfach an einen
Microcontroller anbinden kann oder (noch besser) was direkt Audio Out
(das Signal vom BT Headset Mikrofon) und Audio In (Signal zum BT Headset
Kopfhörer) zur Verfügung stellt.
Frage: Wenn das Signal vom Handy nicht ans Headset, sondern dem ESP
geht, der dieses per WiFi (wohin eigentlich) überträgt, wer hört dann
eigentlich was gesprochen wird?