Wie lese Daten aus dem seriellen port von JavaScript
Ich mit einem Arduino mit meinem laptop, per USB, und ich kann Lesen, das serielle Daten mit Processing.
Gibt es irgendeine Möglichkeit, diese Daten in Echtzeit in einen lokalen webbrowser haben? Zum Beispiel, ein Textfeld zeigt den Wert aus dem seriellen port? Es muss nicht mit dem internet verbunden sein.
Die JavaScript-version der Verarbeitung nicht unterstützt der folgende code, der gewesen wäre die ideale Lösung.
Processing-code ist:
myPort = new Serial(this, Serial.list()[0], 9600);
//read a byte from the serial port
int inByte = myPort.read();
//print it
println(inByte);
//now send this value somewhere...?
//ehm...
Sie sollten mal hier gucken : github.com/rwaldron/johnny-five . Vielleicht kann es dir helfen.
InformationsquelleAutor Kokodoko | 2013-12-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Möglichkeit, direkt auf die lokale Maschine aus dem web-browser. Aus Gründen der Sicherheit Browser haben sehr begrenzten Zugang zu den Maschinen Ressourcen.
Dazu eine Möglichkeit wäre, zu schreiben, eine Erweiterung für den browser Ihrer Wahl. Obwohl die extensions haben auch eine Vielzahl von Einschränkungen.
Option zwei wäre, die Nutzung lokalen server, um die Funktionalität, die Sie benötigen. Persönlich empfehle ich die Verwendung von node.js (es ist geringes Gewicht, leicht und schnell zu implementieren). Sie können Lesen/schreiben serielle Daten mit https://github.com/rwaldron/johnny-five (wie @kmas vorgeschlagen) oder https://github.com/voodootikigod/node-serialport und als Sie verwenden können, http://socket.io/ zu erstellen eine einfache Bedienung und eine Verbindung zu ihm, obwohl der browser. Socket.io nutzt WebSockets in modernen Browsern funktioniert excepionally gut für Echtzeit-verbindungen.
...Obwohl die Anforderungen etwas baffle mir. XCode? Kommandozeilen-tools? Python? (aber nicht die aktuellste?)... es scheint eine ganze Menge, um herauszufinden, für so eine simple Frage.
Es gibt andere Optionen, als node.js. Ich denke nur, node.js wäre sehr nützlich, da die Buchse.io-Modul hat die meisten der schweren lifting im browser für Sie. Wenn Sie sich entscheiden, gehen mit einer Python, PHP, Ruby, etc, Sie müssen installieren und konfigurieren Sie einen webserver und schreiben Sie Ihre eigene WebSocket-Implementierung, und Sie müssen nicht fallbacks.
Vor kurzem habe ich entdeckt, dass lokal läuft Google Chrome-Apps (hauptsächlich Erweiterungen) KÖNNEN den Zugriff auf lokale Peripherie! developer.chrome.com/apps/serial
Ja, mit einer lokalen Erweiterung, die Sie können. Sie können auch schreiben Sie Ihre eigenen shared library und fügen Sie es mithilfe der browser-Erweiterung. Sie können auch das gleiche tun wie ein firefox add-on zum Beispiel. Dies funktioniert aber nur, wenn der Nutzer hat das spezifische Erweiterung im browser installiert und könnte es wirklich sinnvoll sein, abhängig von Ihrer spezifischen situation.
InformationsquelleAutor Tsanyo Tsanev
Hatte ich ein ähnliches problem zu lösen. Mein Data acquisition system (DAQ) (wie arduino) relais-Daten in HTTP, TCP, FTP -, sowie serielle. Ich hatte, um es zu fangen auf dem server und senden Sie es dann auf meiner Webseite in Echtzeit.
Den hack schrieb ich verwendet nodejs auf dem server, und verbindet DAQ mit dem server über TCP-sockets mit dem "net" - Modul von nodejs und verbindet der server die HTML-Seite mit Buchse.io.
Den code und Kontext können gefunden werden in "Wie man sensor-Daten über TCP/IP in nodejs?".
Ich die Verwendung von TCP als wollte ich zum übertragen von Daten über eine lange Distanz. Sie müssen ändern Sie die socket-Protokoll auf Seriell.
Für Seriell-zu-TCP-Umleitung, können Sie blühen von sensorMonkey für Windows oder Ihren processing-sketch für *nix/Mac OS.
InformationsquelleAutor Chintan Pathak