我使用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...
答案 0 :(得分:11)
无法从Web浏览器直接访问本地计算机。出于安全原因,浏览器对机器资源的访问权限非常有限。
要做到这一点,一个选项是为您选择的浏览器编写扩展名。尽管扩展也有各种限制。
选项二是使用本地服务器来提供所需的功能。我个人建议使用node.js(它重量轻,快速且易于实现)。您可以使用https://github.com/rwaldron/johnny-five(如@kmas建议)或https://github.com/voodootikigod/node-serialport来读取/写入串行数据,您可以使用http://socket.io/创建简单服务并通过浏览器连接到它。 Socket.io在现代浏览器中使用WebSockets,并且非常适合实时连接。
答案 1 :(得分:1)
我遇到了类似的问题需要解决。我的数据采集系统(DAQ)(与您的arduino一样)在HTTP,TCP,FTP以及串行中传数据。我必须在服务器上捕获它,然后将其实时发送到我的网页。
我编写的hack在服务器上使用nodejs,并使用" net"使用TCP套接字将DAQ连接到服务器。 nodejs的模块,使用socket.io将服务器连接到HTML页面。
代码和上下文可以在" How to get sensor data over TCP/IP in nodejs?"。
中找到我使用TCP,因为我想长距离传输数据。您需要将套接字协议修改为串行。
对于串行到TCP重定向,您可以使用来自sensorMonkey for Windows的bloom或他们的processing sketch for * nix / Mac OS。