Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从JavaScript读取串行端口数据_Javascript_Arduino_Processing_Sensors - Fatal编程技术网

如何从JavaScript读取串行端口数据

如何从JavaScript读取串行端口数据,javascript,arduino,processing,sensors,Javascript,Arduino,Processing,Sensors,我用USB连接了一个Arduino到我的笔记本电脑,我可以通过处理读取串行数据 有没有办法将这些数据实时输入本地网络浏览器?例如,显示串行端口值的文本字段?它不必连接到互联网 JavaScript版本的Processing不支持以下代码,这是理想的解决方案 处理代码为: myPort = new Serial(this, Serial.list()[0], 9600); // read a byte from the serial port int inByte = myPort.read();

我用USB连接了一个Arduino到我的笔记本电脑,我可以通过处理读取串行数据

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

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

处理代码为:

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(它重量轻,速度快,易于实现)。您可以使用(如@kmas所建议的)或和来读/写串行数据,然后您可以使用和来创建一个简单的服务并通过浏览器连接到它。Socket.io在现代浏览器中使用WebSocket,并且在实时连接中工作得非常好。

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

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

代码和上下文可在“”中找到

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


对于串行到TCP重定向,您可以使用sensorMonkey For Windows或其For*nix/Mac OS的bloom。您应该查看以下内容:。也许它能帮你。谢谢!我已经尝试过使用浏览器扩展(Seriality),但它只在OSX上的Safari中有效。看来我再也无法避免查看Node.js了!。。。虽然这些要求让我有些困惑。XCode?命令行工具?python(但不是最新的?)。。。对于这样一个简单的问题,似乎有很多问题需要解决。除了node.js,还有其他选项。我认为node.js是最有用的,因为socket.io模块在浏览器中为您完成了大部分繁重的工作。如果你决定使用Python、PHP、Ruby等,你必须安装和配置一个Web服务器,并编写自己的WebSocket实现,这样你就不会有回退。我最近发现,本地运行的Google Chrome应用程序(基本上是扩展)可以访问本地外围设备!是的,您可以使用本地分机。您还可以编写自己的共享库,并使用浏览器扩展插件将其包括在内。例如,你也可以像firefox插件那样做。但这只有在用户在浏览器中安装了特定的扩展时才起作用,而且它可能真的很有用,这取决于您的具体情况。我看过了,但它涉及很多步骤,并且在很大程度上依赖于在线的外部服务。使用Chrome扩展,我基本上可以离线,仍然可以访问串行端口。