可以在网站上使用pySerial打开并将数据发送到本地计算机上的串口吗?

时间:2016-08-01 11:18:46

标签: python-2.7 pyserial

我认为这是不可能的,但在阅读这篇文章之后,想到也许它可能是:

How can I send data from a web page to a serial port?

所以我添加了serial的代码,如下所示,只是希望会出现某种魔法:

import serial
ser = serial.Serial('/dev/ttyACM0', 9600)

正如预期的那样,我收到了一个错误:

[Mon Aug 01 07:01:44.513340 2016] [wsgi:error] [pid 16:tid 140515737831488]     raise SerialException(msg.errno, "could not open port %s: %s" % (self._port, msg))
[Mon Aug 01 07:01:44.513367 2016] [wsgi:error] [pid 16:tid 140515737831488] SerialException: [Errno 2] could not open port /dev/ttyACM0: [Errno 2] No such file or directory: '/dev/ttyACM0'

代码在本地运行良好,在线环境通过requirements.txt模仿本地可用的模块。

1 个答案:

答案 0 :(得分:0)

不是您想要听到的内容。但答案是肯定的。除非您的Web服务在目标计算机上本地运行,否则您无法远程使用pySerial

但无论如何,您仍然可以通过以下方法之一(按客户端的复杂性顺序)实现您的目标

  1. Java applet或Java Web Start应用程序(例如,有一个很好的跨平台库RXTX
  2. 浏览器插件,例如jUARTbrowser-serialportserial,适用于Google Chrome或甚至ActiveX组件
  3. 串口到网络代理(如ser2net)。
  4. 唯一的问题是您的客户仍需要执行其他步骤才能使您的网站正常工作(安装java / native library / allow applet / browser插件或其他软件)。原因是浏览器非常严格,默认情况下,出于安全原因,默认情况下所有文件系统操作都是沙箱化的。