我可以通过PHP语言控制硬件吗?

时间:2010-03-22 12:11:33

标签: php hardware

我想知道我是否可以使用PHP来控制与并口或USB端口连接的外部硬件? 任何想法或资源?

8 个答案:

答案 0 :(得分:5)

这是Linux上串行连接设备的有用类:PHP Serial

  

通常使用串行端口   与外围设备通信,   如:调制解调器,POS终端,   特殊打印机等。

     

此类可用于通信   并配置连接到的外围设备   Linux下的串口,简化了   应用程序的开发   需要访问串行设备。

答案 1 :(得分:3)

您可能需要查看php exec。 PHP不允许通过API直接访问硬件,您需要调用子程序来执行此操作。

答案 2 :(得分:2)

如果您可以用C ++编写与该设备通信的程序,则可以创建PHP扩展:http://www.devarticles.com/c/a/Cplusplus/Developing-Custom-PHP-Extensions-Part-1/

答案 3 :(得分:0)

您必须编写一个可以通过系统调用调用的程序。 PHP代码无法直接访问您的硬件。

答案 4 :(得分:0)

根据我对Filip Ekberg的答案的评论......也许。

这取决于您的操作系统和所需的访问级别 - 它应该是双向的吗?您是否尝试将控制线用于流量控制以外的目的?你知道通信协议的细节吗?

下进行。

答案 5 :(得分:0)

如果您打算在* NIX系统上运行此功能,您可能需要查看Plan 9 From User Space。使用这些库,您可以编写一个C程序,使您的硬件显示为文件系统的一部分,例如,您可以像安装USB驱动器一样安装它。 安装完成后,您可以使用PHP的函数来操作文件来控制硬件。

如果你不知道Plan 9是什么,这可能不是很清楚。让我通过一个虚拟示例来说明:您的硬件是一个电子板,通过7段显示器显示登录用户的数量。您可以使用用户空间中的Plan 9来编写一个安装2个文件的程序:

/某处/输入

/某处/输出

将“42”(与文本文件一样)写入输入将使您的电路板显示42。 例如,读数输出会告诉您这个数字没有变化多长时间。

这可能不是实现目标的最简单方法,因为学习使用Plan 9库并不是一件容易的事(虽然IRC上的人非常友善和乐于助人),但在我看来这是最优雅的方式。

有了这个,您还可以使用任何其他语言控制您的硬件,因为我知道所有语言都可以操作文件。

答案 6 :(得分:0)

嗯,它是一个LPT端口和二进制文件,用于Lin和Win以及用于调用此二进制文件的小PHP代码:

http://www.epanorama.net/circuits/parallel_output.html

答案 7 :(得分:0)

您可能想用socket io npm软件包研究Node js。.我建立了一个简单的系统,可以直接通过Web api界面控制硬件。 我的Linux机器是Raspberry Pi,它控制与ots I / O相连的硬件。我的Node js网络服务器位于树莓派中,Node js不仅可以侦听前端javascript的Web指令,还可以通过npm硬件I / O包控制硬件。