【问题标题】:Workaround to open COM port for serial communication on client-side (preferably in Python)在客户端打开 COM 端口进行串行通信的解决方法(最好在 Python 中)
【发布时间】:2016-08-29 19:31:54
【问题描述】:

目标

我使用 Flask 框架创建了一个网站,并且对 HTML、CSS、JS、Python 相当熟悉。我的目标是将 arduino 连接到 客户端的 PC 的 USB 端口,并使用 serial.write() 向其发送数字。

注意事项

如果 arduino 连接到服务器,我有一个 interfacing with python 的工作示例。

import serial
ser = serial.Serial('COM4', 9600)
ser.write('5')

现在我想在客户端运行这 3 行。

这甚至可行吗?我研究了很多,似乎由于安全原因这不可行? (我希望有人在这里证明我错了。)这就是我寻找解决方法的原因。但在此之前我必须提到,我不需要任何来自服务器的数据(数字)。加载网页后,我需要的所有串行通信都在客户端。

客户端 python:我研究过在客户端编写 python 并阅读了有关 skulpt 和 PyPyjs 的信息,但我不确定如何在客户端运行上述 3 行(似乎两者都没有)支持 import serial 所需的 pyserial 或者至少我没有任何运气找到文档)

我还查看了 interfacing with software 的 arduino 文档,但似乎所有提到的语言都是服务器端的。如果您知道任何可能的指导语言可以提供帮助,我很乐意知道并去学习它们。我看到很多论坛都提到了 Node.js,但我的理解是它也只能在服务器端完成这项工作。

对于我应该研究的其他/其他主题的任何帮助,我将不胜感激。提前致谢。

【问题讨论】:

    标签: python arduino serial-port pyserial client-side-scripting


    【解决方案1】:

    这甚至可行吗?我研究了很多,由于安全原因,这似乎不可行?

    你是对的。浏览器无法访问 COM 端口。不管你选择什么语言或框架,浏览器都不会给你这种访问权限。

    您需要制作一个独立的桌面应用程序。您可以使用 HTML 和 JavaScript 来访问串行端口,而不是在浏览器中。 Chrome 应用程序(实际上正在消失)可以做到这一点,以及使用 Electron 的应用程序。

    【讨论】:

    • 独立应用程序能否在后台运行并充当网页和 COM 端口之间的桥梁?我只是想知道 Fitbit 等单页 Web 应用程序是如何做到这一点的。另外,感谢电子的建议。调查一下。
    • @arow 是的,这是可能的。安全地做到这一点也非常困难,但要点是做一个应用程序,在“localhost”上设置服务器并让你的 SPA 向 localhost 发出 AJAX 请求。
    猜你喜欢
    • 2013-03-29
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    相关资源
    最近更新 更多