Hallo, ich würde gerne vom iPhone aus über Bluetooth ein paar LEDs ein- und ausschalten. Gibt es irgendeine Art BT Receiver Chip, den man mit dem iPhone koppeln kann und der die Anweisungen irgendwie an einen Schaltkreis/Controller weitergibt? Also im einfachsten Fall soll die App einen On und Off Button haben und eine LED an- und ausschalten. Danke! Michael
Hast Du Dir schon Gedanken darüber gemacht, wie Du die dafür nötige App auf dem iPhone entwickeln möchtest? Hast Du Dir das "mfi"-Programm von Apple schon angesehen ("made for iPhone"), und welche Einschränkungen Apple beim Anschluss irgendwelcher Hardware (und dazu zählt auch BT-Kram) vorsieht? Die Beschränkungen sind zwar im Laufe der Jahre gelockert worden, aber einfach so alles machen ist nach wie vor nicht drin. https://mfi.apple.com/
Danke für den raschen hilfreichen Hinweis! Bisher war es erst eine grobe Idee und die Frage, ob es überhaupt technisch geht bzw. was die Knackpunkte wären. Habe noch keine iOS App entwickelt, aber ein paar Erfahrungen mit Programmieren und Mikrocontrollern, so dass ich mich eventuell durchkämpfen könnte, mit Eurem Support :-) Also ist Apple das größere Problem als die Technik? Auf den ersten Blick sieht das mfi mehr für kommerzielle Produkthersteller aus.. also kurz zum Hintergrund: Ich baue Architekturmodelle und will einfach Beleuchtung (oder sonst was zum Fernsteuern) einbauen. Einen tieferen Sinn hat das nicht, keine Home Automtisierung oder so. Aber da ist Apple wohl viel zu restriktiv, zumindest für Endanwender und Bastler. Würde das vom PC/Windows aus gehen? Und gäbe es denn einen BT Receiver Chip (oder wie man das nennt)?
Wenn Du statt BT WLAN verwendest, kannst Du z.B. auch einen ESP8266/ESP32 einsetzen. Die können sich sowohl mit einem vorhandenen WLAN verbinden als auch selbst eines zur Verfügung stellen und sind ausreichend leistungsfähig, daß sie einen Webserver nebst GUI zur Steuerung Deiner Beleuchtung zur Verfügung stellen können. Das wiederum kannst Du dann mit einem iPhone, aber auch mit jedem anderen Smartphone oder Tablet nutzen, ohne daß Du irgendwelche Apps entwickeln müsstest. Und wenn es drum geht, hübsche Icons auf der Bedienoberfläche des Smartphones zum Aufrufen der Webseite zu haben: Stichwort "webapp". Sieht aus wie 'ne App, verhält sich wie 'ne App, ist aber 'ne Webseite.
Portable Web-Apps kann man auch per Cordova realisieren. Das funktioniert auf dem iPhone auch mit BLE. Passende BLE-Module sind HM-10 o.ä. die funktionieren auf der Controller Seite als einfache UART. Einzige Hürde bei iOS ist halt Apple selbst. Eigene Apps laufen nur eine Woche und als AdHock App (wenn mam einen Account für ca. 100€ pro Jahr hat) max. 1 Jahr. Wer mehr will muss komplett über den App-Store.
Für solche Anwendungen wäre das SPP Profil (Serielle Port Emulation) naheliegend. Doch leider unterstützt iOS diese nicht. Ich erinnere mich, dass es zeitweise mal sehr ähnliche funktionierende Bluetooth Module gab, aber die sind vom Markt verschwunden. Keine Ahnung, warum. Blöd war bei den Produkten, dass sie nur mit iOS funktionierten. Andere Smartphones, Tablets und Laptops liefen damit nicht. Mein Eindruck ist, dass es langfristig nur noch über WLAN praktikabel sein wird. Michael schrieb: > Also ist Apple das größere Problem als die Technik? Ja Wir haben in der Firma ein Team, die sich damit auseinander setzen müssen. Sie entwickeln Produkte für Energie Management und Monitoring. > Auf den ersten Blick > sieht das mfi mehr für kommerzielle Produkthersteller aus.. Der Knackpunkt ist: Ohne Entwickler-Account bekommst du deine Programme nicht auf's iPhone. Dafür brauchst du übrigens auch einen Mac, und der kleine Mac mini genügt nicht. Das System ist leider nicht so offen wie bei Android, wo jeder User von irgendwo ein apk Paket beziehen kann, um es selbst zu installieren.
Stefan F. schrieb: > Dafür brauchst du übrigens auch einen Mac, und der > kleine Mac mini genügt nicht. Seit wann genügt der mini nicht mehr?
Harald K. schrieb: > Seit wann genügt der mini nicht mehr? Das kann ich dir nicht genau sagen. Das ist jedenfalls die Info, die ich von unserem Projektleiter der App Entwicklung bekommen habe. Es ging dabei nicht um dessen RAM und CPU Leistung, war mehr ein vertragliches Ding.
Danke an alle für die allgemeinen Hinweise und die konkreten Produktempfehlungen! Also WLAN statt BT nutzen und Webseite statt iOS App entwickeln, wären die richtigen "Einstiegspunkte". Im Moment habe ich nur eine grobe Vorstellung, wie das funktionieren würde, aber werde in diese Richtung recherchieren. Ein paar Fragen vorab: - Wie würde der Zugriff von der Webseite auf das selbst gebastelte Device in meinem lokalen WLAN prinzipiell funktionieren? Also dass man das irgendwie "freigibt" oder so - Wo könnte bzw. sollte/müsste der Webserver laufen? Z. B. auf meinem lokalen PC oder Hosting im Internet oder auf dem Device selbst? Auch im Hinblick die Frage vorher bzgl. Zugriff... Harald K. schrieb: > Wenn Du statt BT WLAN verwendest, kannst Du z.B. auch einen > ESP8266/ESP32 einsetzen. Die können sich sowohl mit einem vorhandenen > WLAN verbinden als auch selbst eines zur Verfügung stellen und sind > ausreichend leistungsfähig, daß sie einen Webserver nebst GUI zur > Steuerung Deiner Beleuchtung zur Verfügung stellen können. - Welche (Web-)Programmiersprache würdet Ihr für eine simple GUI und die Weitergabe der Eingaben über WLAN an das Device empfehlen? Und könnte ich die Programmlogik zur Steuerung der Elektronik (z. B. mehrere LEDs dimmen) direkt in der Webseite "unterbringen"? - Und wie würde die "Schnittstelle" auf der anderen Seite funktionieren, also zwischen WLAN-Adapter und einem Mikrocontroller zur Steuerung von LEDs o. ä.? Wenn ich da z. B. eine Funktion in C zum Dimmen einer LED aufrufen möchte, wie könnte ich von der Webseite so was aufrufen...? Mir fehlt da noch komplett das Detailverständnis, sorry Jürgen L. schrieb: > Portable Web-Apps kann man auch per Cordova realisieren. Das > funktioniert auf dem iPhone auch mit BLE. Passende BLE-Module sind HM-10 > o.ä. die funktionieren auf der Controller Seite als einfache UART. > Einzige Hürde bei iOS ist halt Apple selbst. Eigene Apps laufen nur eine > Woche und als AdHock App (wenn mam einen Account für ca. 100€ pro Jahr > hat) max. 1 Jahr. Wer mehr will muss komplett über den App-Store. Könnte ich so ein HM-10 Modul auch von einer Webseite aus verbinden und ansteuern? Dann hätte ich nicht das Problem bzgl. iOS App und App-Store etc. und es wäre ggfs. eine BT-Alternative statt WLAN? DANKE nochmal und einen schönen Sonntag!
:
Bearbeitet durch User
Es gibt (oder gab) glaube ich von Laird BL-Module, die vom iPhone aus angesteuert werden konnten. Ich meine die hießen BLE600 oder so.
Falk S. schrieb: > Es gibt (oder gab) glaube ich von Laird BL-Module, die vom iPhone aus > angesteuert werden konnten. Ich meine die hießen BLE600 oder so. Top, ich habe mal spontan bestellt: https://www.voelkner.de/products/3446432/HM-10-Bluetooth-4.0-BLE-CC2541-Master-Slave-Modul-for-Arduino-iOS-Android.html In der Beschreibung steht: "Mit diesem Modul ermöglicht es ihren Mikrocontroller per Bluetooth kabellos mit einer Vielzahl von Geräten zu verbinden und seriell Daten auszutauschen.Als Slave Modul können PCs, Handys (Android (ab 4.3), Windows Mobile und AUCH APPLE ohne Zusatzchip!) serielle Verbindungen zu einem Mikrocontroller bspw. Arduino aufnehemen. " Hört sich vielversprechend an. Könnte ich damit die Steuerung des Mikrocontrollers also über eine selbst programmierte iOS App machen (abgesehen von den Apple-Hindernissen bzgl. App-Store etc.) oder alternativ über eine Webseite, die ich auf dem iPhone aufrufe? Unklar ist mir noch, in welcher Sprache und auf welchem Webserver ich so eine Seite programmieren könnte und wie dann der Zugriff auf das BLE-Modul funktioniert... hätte ich dann eine Art Objekt "BLE-Modul" mit den notwendigen Methoden wie connect, send, ...? Vielleicht habt Ihr ein Stichwort/Link zu den notwendigen Kommunikationsprotokollen bzw. zur Integration/Ansteuerung von so einem BT-Modul... danke!
:
Bearbeitet durch User
Michael schrieb: > Wie würde der Zugriff von der Webseite auf das selbst gebastelte > Device in meinem lokalen WLAN prinzipiell funktionieren? Also dass man > das irgendwie "freigibt" oder so > > - Wo könnte bzw. sollte/müsste der Webserver laufen? Z. B. auf meinem > lokalen PC oder Hosting im Internet oder auf dem Device selbst? Auch im > Hinblick die Frage vorher bzgl. Zugriff... Die Webseite läuft auf dem Device selbst. Wie ich schon schrieb, ESP8266/ESP32 sind dafür ausreichend leistungsfähig. Da wird nichts "freigegeben", die einzige Entscheidung, die getroffen werden muss, ist, ob das Ding in ein vorhandenes WLAN integriert werden soll oder aber ob es sein eigenes WLAN aufsspannen soll. Letzteres bedeutet, daß man zum Bedienen auch sein Smartphone mit diesem eigenen WLAN verbinden muss. Es gibt aber auch die Variante, daß so ein Gerät nur in der Anfangsphase ein eigenes WLAN aufspannt, und dieses nur zur Vervollständigung der Konfiguration genutzt wird, d.h. es wird ein Webformular angezeigt, in das man die Zugangsdaten zum bereits vorhandenen WLAN eintragen kann, und danach nutzt das Ding das vorhandene WLAN. Das hier ist ein recht willkürlich ausgesuchtes Beispiel, das so einen Webserver und Interaktion mit den I/Os eines ESP8266/ESP32 zeigt: https://randomnerdtutorials.com/esp32-esp8266-micropython-web-server/ Mit ein bisschen Recherche wirst Du Unmengen an anderen Beispielen finden, diese Technik wird sehr, sehr oft verwendet. Auch "Tasmota" ist eines dieser zahlreichen Beispiele.
Ah verstehe, danke für die Erläuterung und den aufschlussreichen Link!! Das scheint genau für meinen Anwendungsfall als "Prototyp" zu passen: "When you press the ON button, you make a request on the ESP IP address followed by /?led=on. The ESP32/ESP8266 on-board LED turns on, and the GPIO state is updated on the page." Dass der Webserver auf dem Device selbst läuft, macht es nun auch für mich "logisch". Und ist ja perfekt im Beispiel erklärt, wie man den Webserver selbst und die Webseite auf dem Device deployed (das wäre meine nächste Frage gewesen, wie bekomme ich da welchen Webserver drauf). Um die LEDs o. ä. anzusteuern, könnte ich dann die 16 GPIO PINs benutzen, oder? Und mit Micropython könnte ich vermutlich auch ein PWM Dimmen und alles mögliche programmieren, ohne C nutzen zu müssen? Dann bestelle ich mal die notwendige Hardware und arbeite mich ein. Nur interessehalber: würde der Ansatz mit Webserver auch in Kombination mit so einem BT Baustein funktionieren? In der Produktbeschreibung steht "Dieses Bluetooth 4.0 Transceiver-Modul ermöglicht es Ihnen mit iOS und Android-Geräten zu kommunizieren". Würde das dann aber nur mit einer iOS App funktionieren oder mit einem Webserver auf einem zusätzlichen (entsprechend leistungsstarken) Chip? Aber wäre wohl verglichen zu ESP8266 eh die umständlichere Lösung... https://www.roboter-bausatz.de/p/bluetooth-4.0-ble-transceiver-modul-cc2541
:
Bearbeitet durch User
Wenn es einigermaßen flexibel und komfortabel sein soll, setzt dir einen Rechner mit NodeRED und einem MQTT-Broker (Mosquitto) auf. Dazu reicht ggf. auch ein RaspberryPi oder jeder ältere Rechner, der noch irgendwo herumsteht. Die gängigen WLAN-Aktoren (Shelly & Co) sprechen praktisch alle MQTT. Alles, worauf sich Tasmota flashen lässt sowieso. Das erspart dir das Erstellen einer Webseite und sehr, sehr viel Aufwand. Bedient wird das komplett via Browser, und das geht dann auch von deinem iPhone aus. Zu NodeRED gibts unendlich viele Tutorials, Webseiten und Videos. Der Einstieg ist wirklich einfach.
:
Bearbeitet durch User
Michael schrieb: > Könnte ich so ein HM-10 Modul auch von einer Webseite aus verbinden und > ansteuern? Dann hätte ich nicht das Problem bzgl. iOS App und App-Store > etc. und es wäre ggfs. eine BT-Alternative statt WLAN? WebBle kann z.Z. nur der Chrome und selbst der kann es nicht unter iOS. Also kommst du um sowas wie Cordova nicht herum wenn es BLE sein soll.
Michael schrieb: > Top, ich habe mal spontan bestellt: > > https://www.voelkner.de/products/3446432/HM-10-Bluetooth-4.0-BLE-CC2541-Master-Slave-Modul-for-Arduino-iOS-Android.html > > In der Beschreibung steht: > > "Mit diesem Modul ermöglicht es ihren Mikrocontroller per Bluetooth > kabellos mit einer Vielzahl von Geräten zu verbinden und seriell Daten > auszutauschen.Als Slave Modul können PCs, Handys (Android (ab 4.3), > Windows Mobile und AUCH APPLE ohne Zusatzchip!) serielle Verbindungen zu > einem Mikrocontroller bspw. Arduino aufnehemen. " > > Hört sich vielversprechend an. > > Könnte ich damit die Steuerung des Mikrocontrollers also über eine > selbst programmierte iOS App machen (abgesehen von den > Apple-Hindernissen bzgl. App-Store etc.) oder alternativ über eine > Webseite, die ich auf dem iPhone aufrufe? > > Unklar ist mir noch, in welcher Sprache und auf welchem Webserver ich so > eine Seite programmieren könnte und wie dann der Zugriff auf das > BLE-Modul funktioniert... hätte ich dann eine Art Objekt "BLE-Modul" mit > den notwendigen Methoden wie connect, send, ...? Du kannst BLE natürlich mit einer nativen iOS App machen oder als WebApp unter Cordova u.ä. Frameworks. Cordova sorgt dafür, dass die iOS APIs in einem WebBroser als JavaScript Funktionen zur Verfügung stehen. Cordova ist eine native iOS App die mit Hilfe von Webkit ein Browserfenster anzeigt und das JavaScript Framework darin erweitert. Die Einsprungs-html Seite kann, muss aber nicht von einem Webserver kommen. Sie kann auch local mit in die App verpackt werden. Das Cordova Pluging BLE Central implementiert die Brücke zwischen der Apple BLE-API und JavaScript. https://github.com/don/cordova-plugin-ble-central Nur mit dem blanken Browser geht das leider nicht unter iOS.
Vielen Dank, Ihr seid die besten :-) jetzt habe ich für meine Problemstellung schon mehrere Ansätze, die funktionieren sollten. Also ich habe es so verstanden: 1. WLAN-Verbindung zu ESP8266 mit Webserver und Webseite(n) direkt drauf und Programmierung z. B. mit Micropython 2. WebApp unter Cordova mit BLE-Verbindung und Programmierung z. B. mit JavaScript 3. NodeRED und MQQT-Broker Womit könnte ich denn am einfachsten und flexibelsten ein paar individuelle Webseiten (mit HTML + JavaScript + ggfs. (Micro)Python) erstellen als "Steuerzentrale" mit ein paar Elementen wie Dropdowns, Textfeldern und Buttons? Und wie gesagt sollen dann je nach Eingabe auf der Webseite z. B. LEDs gedimmt werden. Harry L. schrieb: > Wenn es einigermaßen flexibel und komfortabel sein soll, setzt dir > einen > Rechner mit NodeRED und einem MQTT-Broker (Mosquitto) auf. Das heißt, auf einem kleinen zusätzlichen Rechner (im WLAN) würde der MQTT-Broker quasi als Middleware laufen, mit der ich mich über Browser (vom Handy aus) verbinde und auf der anderen Seite das WLAN Device die MQTT Kommandos empfängt? Harry L. schrieb: > Das erspart dir das Erstellen einer Webseite und sehr, sehr viel > Aufwand. Aber muss ich nicht eine eigene Webseite (oder App) erstellen, wenn ich eine individuelle Oberfläche zur Steuerung möchte? Wie würde denn die Oberfläche für den Endanwender dann aussehen? Habe in Tutorial nur die Oberfläche für den Entwickler gesehen mit der Toolbox mit Nodes und Flows etc.. kann ich für den Anwender irgendwie HTML-Seiten etc. "einbetten", um Eingaben entgegen zu nehmen und Aktionen zu starten?
:
Bearbeitet durch User
Michael schrieb: > Womit könnte ich denn am einfachsten und flexibelsten ein paar > individuelle Webseiten (mit HTML + JavaScript + ggfs. (Micro)Python) > erstellen als "Steuerzentrale" mit ein paar Elementen wie Dropdowns, > Textfeldern und Buttons? Und wie gesagt sollen dann je nach Eingabe auf > der Webseite z. B. LEDs gedimmt werden. Genau das geht mit NodeRED sehr schön. Michael schrieb: > Das heißt, auf einem kleinen zusätzlichen Rechner (im WLAN) würde der > MQTT-Broker quasi als Middleware laufen, mit der ich mich über Browser > (vom Handy aus) verbinde und auf der anderen Seite das WLAN Device die > MQTT Kommandos empfängt? Genau, wobei dieser kleine Rechner nicht zwangsläufig im WLAN hängen muß. LAN geht genauso und würde ich für den Zweck sogar vorziehen. Michael schrieb: > kann ich für den Anwender irgendwie HTML-Seiten etc. > "einbetten", um Eingaben entgegen zu nehmen und Aktionen zu starten? Dafür kannst du dir s.g. Dashboards zusammen klicken. Sieht dann z.B. so aus wie im Anhang. Dafür musste ich keine einzige Zeile HTML schreiben. Da siehst du meine Wetterstation und die Steuerung der Heimkino-Beleuchtung.
:
Bearbeitet durch User
Bluetooth geht schon, wenn du z.B. die App Blynk runterlädst. Paar Sachen und Beschränkung sind kostenlos. Erweiterungen sind Einmalzahlungen jenachdem wie groß es werden soll. Geht auch mit WLAN. Auf dem ESP/Arduino gibt es eine Blynk Bibliothek die du einfach drauf lädst. Brauchst nurnoch Hardware z.B. HC-05/06. Das Programmieren tut man in der App. https://www.youtube.com/watch?v=SAX60zOwQyw
Harry L. schrieb: > Dafür kannst du dir s.g. Dashboards zusammen klicken. > Sieht dann z.B. so aus wie im Anhang. > Dafür musste ich keine einzige Zeile HTML schreiben. > > Da siehst du meine Wetterstation und die Steuerung der > Heimkino-Beleuchtung. Ah top, das war genau meine Frage bzw. Bedenken. Sieht sehr schick aus, die Steuerung meiner Modellhaus-Beleuchtung hatte ich mir genau wie bei Deinem Heimkino vorgestellt - einziger Unterschied, dass mein Projekt ohne wirklichen Sinn und Mehrwert ist, reine Beschäftigungstherapie für den Winter :-) Wenn die GUI-Gestaltung über Tools/Wizard ohne HTML geht, umso besser. Könnte man trotzdem - bei Bedarf - an den Source Code ran und ihn modifizieren/ergänzen? Bei den grafischen Tools geht das ja nicht immer, so dass Anforderungen abseits vom "Standard" kaum umsetzbar sind. Oder sind der Source Code und die "Technik drunter" trotzdem zugreifbar - so dass ich zwar die Tools nutzen kann, aber trotzdem sehe, was hinten raus kommt, und es ggfs. nachbearbeiten kann? DANKE
Lösungen gibt es viele. Ich verwende gern das BLE-Modul RN4871 von Microchip als BT2UART-Wandler. Dem kann man dann vom iPhone aus einen String senden und ein MC hinter dem BLE-Modul wertet diesen String aus und reagiert entsprechend. LEDs ein-/ausschalten, Spannungen messen usw. ist damit eigentlich recht einfach umsetzbar. Eigentlich deshalb weil es doch einiges an Arbeit ist, dass man in so ein Projekt reinsetzen muss.
:
Bearbeitet durch User
M. K. schrieb: > Dem kann man dann vom iPhone aus einen > String senden und ein MC hinter dem BLE-Modul wertet diesen String aus > und reagiert entsprechend. ..und auf dem iPhone WebApp unter Cordova, die aus den Benutzereingaben den passenden String für den MC erzeugt? Ich nehme an, in dem String ist dann der Aufruf einer C-Funktion auf dem MC codiert? Hatte zuletzt vor etwa 5 Jahren ein paar kleinere MC Projekte gemacht (aber „lokal“ ohne Netzwerk) - muss mich da auch nochmal reinfuchsen.. da die Seite LED-Steuerung über MC damals (irgendwann) geklappt hat, bin ich zuversichtlich, das wieder hinzukriegen. Nur WLAN/BT sowie iPhone (Web)App sind komplett Neuland
:
Bearbeitet durch User
M. K. schrieb: > Ich verwende gern das BLE-Modul RN4871 von > Microchip als BT2UART-Wandler. Dem kann man dann vom iPhone aus einen > String senden und ein MC hinter dem BLE-Modul wertet diesen String aus > und reagiert entsprechend. Das wäre natürlich auch eine Lösung. Und wie man unter iOS mit diesen Modulen kommunizieren kann, sieht man hier: https://www.instructables.com/Simple-IOS-App-for-BLE-Modules/ Voraussetzung aber ist dann natürlich ein iOS-Entwickler-Account und ein Rechner, auf dem ein ausreichend aktuelles macOS läuft.
Handys (Android (ab 4.3) zum ESP32 auch HC-05 und ähnliche Module Das Prog im Handy sehr einfach zu bedienen. Nutze ich einige Jahre schon. Im Handy nur Einstellungen generieren. MfG alterknacker
:
Bearbeitet durch User
Harald K. schrieb: > Voraussetzung aber ist dann natürlich ein iOS-Entwickler-Account und ein > Rechner, auf dem ein ausreichend aktuelles macOS läuft. Das heißt, dass über eine WebApp so ein BLE Modul nicht steuerbar wäre und ich die diskutieren Probleme mit iOS App Entwicklung hätte? Mac habe ich leider auch nicht… Wenn die Oberfläche und Steuerung (Senden Strings an MC) auch von Webseite aus ginge, wäre das meine Präferenz. iOS App Entwicklung und Deployment scheint mir problematisch für den Hobbygebrauch (?)
:
Bearbeitet durch User
Michael schrieb: > önnte man trotzdem - bei Bedarf - an den Source Code ran und ihn > modifizieren/ergänzen? Das ist gar kein Problem. Das gesamte Framework basiert auf JavaScript, und du hast alle Möglichkeiten, das deinen Wünschen anzupassen. Sowohl, was die Funktionalität betrifft, wie auch das Design. Das Alles geht direkt aus dem Browser heraus. Den eigentlichen Source von NodeRED musst du dazu nicht anfassen, kannst den aber jederzeit um selbst entwickelte Nodes ergänzen.
Michael schrieb: > Mac habe ich leider auch nicht… Dann vergiss' Bluetooth und nutze WLAN. Entweder mit vielen Hard- und Softwareschichten (Node Red etc. auf separatem Rechner), oder mit direkt auf ESP8266/ESP32 laufender Software. Da musst Du halt selbst etwas Hand anlegen und die Darstellung der Webseite gestalten, und Dich gegebenenfalls auch etwas in die Funktionsweise von HTML & Co. einarbeiten. Beispiele wurden Dir ja schon genannt.
Stefan F. schrieb: > Harald K. schrieb: >> Seit wann genügt der mini nicht mehr? > > Das kann ich dir nicht genau sagen. Das ist jedenfalls die Info, die ich > von unserem Projektleiter der App Entwicklung bekommen habe. > > Es ging dabei nicht um dessen RAM und CPU Leistung, war mehr ein > vertragliches Ding. Doch, der Mini reicht, mach ich nämlich damit. N anderes Thema ist die Hardwarevoraussetzung, X-Code ist n mächtiges Tool, aber RAM-hungrig und nicht gerade schlank auf der Platte. Also unter 8GB RAM und SSD unter 512GB macht keinen Spaß mit X-Code. Ansonsten geht das sehrwohl auf dem Mini. Und natürlich darfs kein uralter sein, da aufs aktuelle iOS kompiliert werden muss und das kann nur n aktuelles X-Code, das natürlich nur auf dem aktuellen MacOS läuft, also der Mini mindestens later 2014.
:
Bearbeitet durch User
Michael schrieb: > ich würde gerne vom iPhone aus über Bluetooth ein paar LEDs ein- und > ausschalten. Gibt es irgendeine Art BT Receiver Chip, den man mit dem > iPhone koppeln kann und der die Anweisungen irgendwie an einen > Schaltkreis/Controller weitergibt? Ja, das ist sogar relativ einfach gemacht. Das Protokoll, das Du dafür verwenden kannst, nennt sich GATT. Dein "BT Receiver Chip" ist dabei ein GATT Server und Dein Telefon ist ein GATT Client. Die dafür auf dem Telefon nötige Software musst Du nicht selbst schreiben, es gibt unzählige, generische GATT Client, für alle Betriebssysteme (nRF Connect; BLExplr; LightBlue; etc.) Als "BT Receiver Chip" kannst Du dann z.B. breakout boards mit Mikrocontrollern verwenden, die ein BLE Peripheral haben (z.B. nrf52). Wenn Du Dich für den nRF52 entscheidest, könntest Du z.B. einfach dieses Beispiel hier installieren und bist schon fast fertig: https://github.com/TorstenRobitzki/bluetoe/blob/master/examples/blinky_without_encryption.cpp
Torsten R. schrieb: > es gibt unzählige, generische GATT Client Haben die eine frei konfigurierbare Oberfläche?
Torsten R. schrieb: > Die dafür auf dem Telefon nötige Software musst Du nicht selbst > schreiben, es gibt unzählige, generische GATT Client, für alle > Betriebssysteme (nRF Connect; BLExplr; LightBlue; etc.) > Wie kann ich bei diesem Ansatz die Bedienoberfläche entwickeln? Könnte eine Webseite/WebApp Befehle an den GATT Client schicken, je nach Benutzereingabe? Das Beispiel von Harrys Heimkino-Steuerung ist bezüglich Oberfläche genau was ich bräuchte... > Als "BT Receiver Chip" kannst Du dann z.B. breakout boards mit > Mikrocontrollern verwenden, die ein BLE Peripheral haben (z.B. nrf52). > > Wenn Du Dich für den nRF52 entscheidest, könntest Du z.B. einfach dieses > Beispiel hier installieren und bist schon fast fertig: > https://github.com/TorstenRobitzki/bluetoe/blob/master/examples/blinky_without_encryption.cpp Würde dieser Beispiel-Code dann in dem GATT Client auf dem Handy laufen?
Michael schrieb: > Wie kann ich bei diesem Ansatz die Bedienoberfläche entwickeln? Könnte > eine Webseite/WebApp Befehle an den GATT Client schicken, je nach > Benutzereingabe? Ich denke, jedes Verfahren, dass Du nutzen kannst, um Apps für iOS zu schreiben, wird Dir Zugriff auf die BLE API geben. Die ist schon sehr essenziell. > Würde dieser Beispiel-Code dann in dem GATT Client auf dem Handy laufen? Nein, dass wäre der GATT Server, der auf dem Breakout board laufen würde. Auf Deinem Handy würde entweder ein generischer GATT Client laufen, oder Du schreibst Dir etwas selbst.
Harald K. schrieb: > Torsten R. schrieb: >> es gibt unzählige, generische GATT Client > > Haben die eine frei konfigurierbare Oberfläche? Zumindest kenne ich keinen, der das erlaubt.
Harald K. schrieb: > Michael schrieb: >> Mac habe ich leider auch nicht… > > Dann vergiss' Bluetooth und nutze WLAN. > Top, danke für die klare Anweisung - war am Schluss von der Vielzahl der Möglichkeiten doch etwas überfordert - nun weiß ich die generelle Richtung. > Entweder mit vielen Hard- und Softwareschichten (Node Red etc. auf > separatem Rechner), oder mit direkt auf ESP8266/ESP32 laufender > Software. Wo wäre bei WebApp unter Cordova mit BLE aus Deiner Sicht der "Haken"? Bräuchte ich da auch iOS Entwicklerzugang (und ggfs. Mac)? Eine WebApp, die auf dem Handy läuft und eine Oberfläche bereitstellt und die Befehle als String an einen MC schickt, fände ich auch eine gute Lösung, falls realisierbar > > Da musst Du halt selbst etwas Hand anlegen und die Darstellung der > Webseite gestalten, und Dich gegebenenfalls auch etwas in die > Funktionsweise von HTML & Co. einarbeiten. Verstanden. ESP8266/ESP32 wäre dann aktuell meine Präferenz, da es mir ziemlich schlank/basic erscheint. Würde man die Webseite komplett händisch (mit Texteditor in HTML/JavaScript) erstellen oder gibt es da auf die Zielumgebung ESP8266/ESP32 abgestimmte Tools? Oder einfach irgendein Webseiten-Generator und HTML nachbearbeiten und dann Datei auf ESP8266/ESP32 kopieren? Und läuft auf dem ESP8266/ESP32 ein "vollumfänglicher" Webserver, der alle Features unterstützt, oder ist das eine "abgespeckte" Version mit entsprechenden Einschränkungen? Das war bei diesem Ansatz etwas meine Sorge...
Michael schrieb: > Würde man die Webseite komplett händisch (mit Texteditor in > HTML/JavaScript) erstellen oder gibt es da auf die Zielumgebung > ESP8266/ESP32 abgestimmte Tools? Keine Ahnung. Da wirst Du Dir die Dokumentation ansehen müssen, ausgehend von einem der zahlreichen Beispiele. Michael schrieb: > Würde man die Webseite komplett händisch (mit Texteditor in > HTML/JavaScript) erstellen Vermutlich, weil man dann am besten weiß, was passiert. Das ist kein Hexenwerk. > oder gibt es da auf die Zielumgebung ESP8266/ESP32 abgestimmte Tools? Keine Ahnung, sieh Dir eines der Beispiele bzw. dessen Dokumentation an. > Oder einfach irgendein Webseiten-Generator und HTML nachbearbeiten > und dann Datei auf ESP8266/ESP32 kopieren? Das dürfte der problematischte aller Wege sein. Vergiss' das besser. Michael schrieb: > Und läuft auf dem ESP8266/ESP32 ein "vollumfänglicher" Webserver, der > alle Features unterstützt Was ist "vollumfänglich" und was sind "alle Features"? Wenn Du cgi-Skripting mit PHP und 'ner fetten Datenbank suchst, dann ganz sicher nicht.
Michael schrieb: > Und läuft auf dem ESP8266/ESP32 ein "vollumfänglicher" Webserver, der > alle Features unterstützt Java EE Anwendungen kann er jedenfalls nicht ausführen.
Stefan F. schrieb: > Michael schrieb: >> Und läuft auf dem ESP8266/ESP32 ein "vollumfänglicher" Webserver, der >> alle Features unterstützt > > Java EE Anwendungen kann er jedenfalls nicht ausführen. ...hatte wohl ein falsches Verständnis von "Webserver" in diesem Kontext. Wenn ich die Beispiele richtig verstehe, wird der Webserver je nach Anwendungsfall auch selbst programmiert und umfasst neben dem Auslesen des Request/Headers auch die auszuführende Logik/Aktionen und die HTML-Seite selbst. Also nicht ein bestimmter Standard-Webserver, sondern Webserver inkl. Webseite und Logik sind anwendungsspezifisch (und extrem schlank) - so mein Verständnis. Bei einem etwas umfassenderen Projekt (mit mehreren HTML-Seiten und vielleicht einem Navigationsmenü) kann man das vermutlich auf mehrere Dateien/Funktionen aufteilen (zwecks besserer Übersicht), oder? Eben nur händisch alles, aber dann ist es auch transaparent
Michael schrieb: > Also nicht ein bestimmter Standard-Webserver, sondern > Webserver inkl. Webseite und Logik sind anwendungsspezifisch (und extrem > schlank) - so mein Verständnis. Richtig. Genau so. > Bei einem etwas umfassenderen Projekt (mit mehreren HTML-Seiten und > vielleicht einem Navigationsmenü) kann man das vermutlich auf mehrere > Dateien/Funktionen aufteilen (zwecks besserer Übersicht), oder? Wieder richtig, genau so.
Al. K. schrieb: > https://www.kai-morich.de/android/ Welchen Teil von iPhone-App hast Du verstanden?
Michael schrieb: > Ich nehme an, in dem String ist > dann der Aufruf einer C-Funktion auf dem MC codiert? Jepp, der Mikrocontroller kann ein rudimentäres SCPI-Protokoll, die zugehörige App muss lediglich die Benutzereingabe in dieses Protokoll überführen damit es der Mikrocontroller auch verstehen kann aber das ist ja ne leichte Übung ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.