繁体   English   中英

如何从 JavaScript 读取串口数据

[英]How to read serial port data from JavaScript

我使用 USB 将 Arduino 连接到我的笔记本电脑,我可以使用 Processing 读取串行数据。

有什么方法可以将这些数据实时输入到本地网络浏览器中? 例如,显示串行端口值的文本字段? 它不必连接到互联网。

Processing 的 JavaScript 版本不支持以下代码,这本来是理想的解决方案。

处理代码是:

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...

无法从 Web 浏览器直接访问本地计算机。 出于安全原因,浏览器对机器资源的访问非常有限。

要做到这一点,一种选择是为您选择的浏览器编写一个扩展程序。 尽管扩展也有各种限制。

选项二是使用本地服务器来提供您需要的功能。 我个人推荐使用 node.js(它重量轻、快速且易于实现)。 您可以使用https://github.com/rwaldron/johnny-five (如@kmas 建议)或https://github.com/voodootikigod/node-serialport读取/写入串行数据,然后您可以使用http:// socket.io/创建一个简单的服务并通过浏览器连接到它。 Socket.io 在现代浏览器中使用 WebSockets,并且在实时连接方面工作得非常好。

我有一个类似的问题要解决。 我的数据采集系统 (DAQ)(如您的 arduino)以 HTTP、TCP、FTP 以及串行方式中继数据。 我必须在服务器上捕获它,然后将其实时发送到我的网页。

我写的hack在服务器上使用nodejs,使用nodejs的“net”模块使用TCP套接字将DAQ连接到服务器,并使用socket.io将服务器连接到HTML页面。

代码和上下文可以在“ 如何在 nodejs 中通过 TCP/IP 获取传感器数据? ”中找到。

我使用 TCP 是因为我想长距离传输数据。 您需要将套接字协议修改为串行。

对于串行到 TCP 重定向,您可以使用来自 Windows 的 sensorMonkey 的bloom 或其*nix/Mac OS 的处理草图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM