Forum: Mikrocontroller und Digitale Elektronik Webserver über Bluetooth STM32


von Bluetooth (Gast)


Lesenswert?

Ich habe eine Schaltung mit einem STM32WB55CEU6 aufgebaut. Dieser hat 
Bluetooth integriert. Noch nutze ich diese Funktionalität nicht, ich 
habe lediglich schonmal die Antenne mit realisiert, so dass ich später 
Bluetooth nutzen kann.

Zuerst wollte ich eine App schreiben, um meine Hardware per Smartphone 
steuern zu können.

Dann kann mir jedoch die Idee, dass ich stattdessen auch einen Webserver 
simulieren könnte?

Ist es prinzipiell möglich mit Bluetooth einen Webserver zu simulieren? 
Meiner Vorstellung nach würde sich das Smartphone per Bluetooth mit 
meiner Schaltung verbinden und anschließend kann mann über den Browser 
über einen Namen das Webinterface öffnen.

Muss ich dann als Blueooth Device quasi ein virtuelles Netzwerk 
simulieren? Muss der Controller das nativ unterstützen oder kann ich das 
in Software realisieren?

Oder geht das gar nicht?

von Irgend W. (Firma: egal) (irgendwer)


Lesenswert?

Bluetooth schrieb:
> Bluetooth einen Webserver zu simulieren

Nein,
das sind zwei völlig verschiedenen Paar Schuhe.
Das eine Ist Übertragungschicht, dass andere Anwendung.

Ein (Server)http-demon (und der Web-Browser auf der Client-Seite) kann 
aber durchaus BT als Übertragungsmedium nutzen wenn dies bei dir TCP/IP 
unterstützt (TCP/IP Over Bluetooth)

von Bluetooth (Gast)


Lesenswert?

Irgend W. schrieb:
> Ein (Server)http-demon (und der Web-Browser auf der Client-Seite) kann
> aber durchaus BT als Übertragungsmedium nutzen wenn dies bei dir TCP/IP
> unterstützt (TCP/IP Over Bluetooth)

Ich verstehe deine Antwort nicht ganz. Ich stelle also von meinem 
Smartphone aus mit meiner Anwendung eine Bluetoth Verbindung her. Jetzt 
gebe ich z.B. in Safari die URL http://meineanwendung ein, wie stelle 
ich sicher, dass die HTTP Anfrage auch bei meiner Anwendung ankommt?

Das Smartphone muss doch erstmal die Anfrage über Bluetooth an meine 
Anwendung tunneln?

von Εrnst B. (ernst)


Lesenswert?

Bluetooth schrieb:
> Ich verstehe deine Antwort nicht ganz. Ich stelle also von meinem
> Smartphone aus mit meiner Anwendung eine Bluetoth Verbindung her

Dein µC behauptet über Bluetooth, er wäre ein Modem/PAN-AP.
Dein Telefon verbindet daran.
Dein Telefon kriegt darüber eine IP-Adresse
Dein Telefon meckert, dass er zwar eine IP-Verbindung hat aber keine 
funktionierende Default-Route, und bietet sofort das Beenden der 
Verbindung an.
Wenn man das wegbekommen hat, ist dein Telefon ohne Internet, kann aber 
an den http-port auf der "anderen Seite" der Bluetooth-Verbindung 
zugreifen.

Also: Im Prinzip "Bluetooth-Tethering", nur umgekehrt, das Telefon ist 
Client, nicht Server, und ohne NAT.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Safari?
Also iPhone?
Vergiss es, da ist alles zugedongelt was BT betrifft.
Ich hab mal ein BT Modul an einen ARM SoC mit RTOS gehangen und das PAN 
Profil genutzt.
Mit Android und Win geht das wunderbar, Crapple kann zwar pairen, aber 
es wird keine Verbindung aufgebaut.
Jedenfalls wars zu Zeiten vom 8er der Fall.

Zudem brauchste noch einen DHCP Server der eine IP vergeben kann, feste 
IPs vergeben auf Handys ist nervig.

Ansonsten wird da kein Webserver "simuliert". Sondern da wird ein 
Webserver auf dem STM32 laufen müssen.
Guck dir mal den lwip an.
Da ist alles dabei vom TCP Stack bis zum Webserver und CGI Callbacks.

Kann der Treiber vom STM32WB55 überhaupt das PAN Profil?
Das wird leider eher selten unterstützt.
Ich hatte damals ein externes TI BT Modul genutzt (direkt über HCI) und 
bluekitchen als BT Stack.
https://github.com/bluekitchen/btstack

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Εrnst B. schrieb:
> Dein Telefon kriegt darüber eine IP-Adresse
> Dein Telefon meckert, dass er zwar eine IP-Verbindung hat aber keine
> funktionierende Default-Route, und bietet sofort das Beenden der
> Verbindung an.
> Wenn man das wegbekommen hat, ist dein Telefon ohne Internet, kann aber
> an den http-port auf der "anderen Seite" der Bluetooth-Verbindung
> zugreifen.

Können Android und ios immernoch keine multiplen Verbindungen?

von Bluetooth (Gast)


Lesenswert?

Mw E. schrieb:
> Kann der Treiber vom STM32WB55 überhaupt das PAN Profil?

Das muss ich mal nachsehen.

Mw E. schrieb:
> Safari?
> Also iPhone?
> Vergiss es, da ist alles zugedongelt was BT betrifft.

Ich habe ein IPhone5S, also ein ganz altes. Aber ich dachte mir schon, 
dass das Probleme machen wird.

Εrnst B. schrieb:
> Wenn man das wegbekommen hat, ist dein Telefon ohne Internet, kann aber
> an den http-port auf der "anderen Seite" der Bluetooth-Verbindung
> zugreifen.

Das ist natürlich auch doof.

von Εrnst B. (ernst)


Lesenswert?

Mw E. schrieb:
> Können Android und ios immernoch keine multiplen Verbindungen?

Keine Ahnung. Könnte sogar sein, wenn der AP "kooperativ" konfiguriert 
ist.

Üblich ist jedoch, für die echte "Plug-n-Play"-Erfahrung, dass der AP 
sich per DHCP als Default-Route einträgt, und alle HTTP-Anfragen auf 
seinen eigenen Webserver umleitet, "Captive Portal".

Vorteil: Fast Deppensicher: Verbinden, Browser aufmachen, fertig.
Nachteile: HTTPS, HSTS gehen nicht. Default-Route unterbricht das 
Internet am Gerät.

von Stefan F. (Gast)


Lesenswert?

Bluetooth schrieb:
> Ist es prinzipiell möglich mit Bluetooth einen Webserver zu simulieren?

Web Server und Browser kommunizieren mittels TCP/IP Protokoll. Du musst 
daher einen umfangreichen Protokollstack kaufen, der nicht nur einfache 
Bluetooth Kommunikation ermöglicht, sondern auch noch noch TCP/IP über 
Bluetooth tunnelt. Viele Smartphones kann man so als mobiles Internet 
Modem für Laptops verwenden. Diese Funktionalität musst du nachbauen.

Die Frage ist, ob dein Smartphone das überhaupt unterstützt. Mit Linux 
und Windows Laptops würde es auf jeden Fall gehen.

Als billige Bastellösung tut es vielleicht auch das Bluetooth SPP 
Protokoll in Kombination mit einer UART-zu-TCP/IP Brücke (z.B. socat) 
auf dem Laptop. Dann geht aber nur eine IP Verbindung gleichzeitig. 
Deinem Web Browser könnte dies zu wenig sein, so dass er Dateien nicht 
laden kann, die von der HTML Seite referenziert werden (Bilder, CSS, 
Scripte). Manche Browser brauchen mindestens zwei gleichzeitige 
Verbindungen zum Server.

Mit mobilen Apple Geräten geht das aber definitiv nicht, die können 
nämlich weder Bluetooth SPP, noch kannst du da nach belieben 
Fremdsoftware installieren die Apple nicht vorgesehen hat.

Mir wäre das zu sehr von hinten herum durch die Brust. Ich würde da 
nicht viel Zeit rein stecken, denn Bluetooth ist Zickig. Irgend etwas 
geht immer nicht.

Wie kommst du denn an die Bluetooth Firmware heran? Soweit ich weiß 
kostet sie Lizenzgebühren und eine Mitgliedschaft in einem teuren Club.

von Torsten R. (Firma: Torrox.de) (torstenrobitzki)


Lesenswert?

Hallo Bluetooth,

Dein µController macht ja Bluetooth Low Energy. Dafür gibt es 
massenweise generische GATT Clients, mit denen Du Dich sofort und ohne 
viel Aufwand mit Deinem (auf Deinem µC implementierten) GATT Server 
verbinden kannst und so die Hardware bequem ansteuern kannst. Wir machen 
das häufig in Projekten, bei denen wir uns die Bedienelemente an der 
Hardware (Displays, Knöpfe etc.) sparen wollen.

Es gibt ein Protokoll zum Umsetzen von BLE auf IP V6 
(https://en.wikipedia.org/wiki/6LoWPAN), dazu müsstest Du dann mal 
prüfen, ob TI das in seinem BLE stack implementiert hat und ob Dein 
Telefon dass umsetzen kann. Wenn Du das aber nicht weiter in die Welt 
routen willst, ist das meiner Meinung nach überflüssig.

schöne Grüße,

Torsten

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.