如何使用PHP控制串行端口?

・3 分钟阅读

PHP(PHP超文本预处理器)是一种受网站开发人员欢迎的服务器端脚本语言。 通常,PHP是通过查询数据库和文件来生成网页的。 然而PHP也可以用来控制和与其他设备通信。

本文介绍如何配置PHP,以便通过unix系统或Windows系统上的串行端口发送和接收数据。

前提条件

  1. 计算机上安装了php
  2. 已安装brainboxes串行端口产品

简单步骤

  1. 安装phpdirectio扩展
  2. 配置php以便使用扩展
  3. 使用下载中提供的PHP文件
  4. 在串行连接的另一端打开终端程序
  5. 使用正确的本地串口设置配置PHP文件
  6. 去做吧!

深度

安装php direct io

php默认不提供良好的com支持,但是,这个叫directio的php扩展提供了对io的低级别访问。 我们将使用这个扩展进行串口通信。

在unix系统上,使用PECL安装扩展,打开终端,并且键入:

sudo pecl install dio-0.0.7

在Windows上,从以下位置下载最新的phpdirectio扩展 dll, http://pecl.php.net/package/dio应将dll文件复制到php_extension文件夹中通常位于ext或libphpext中

配置php以便使用扩展

接下来需要更新php.ini文件以告诉它使用扩展名。 在php.ini文件的底部添加以下内容。

Unix: extension=dio.so

Windows: extension=php_dio.dll

重新启动 PHP

Unix:命令不同,例如: sudo apachectl restart

Windows:重新启动iis服务器,或wamp服务器,

使用下载中提供的PHP文件

下载文件,并且将它放置在你的web服务器的root目录中。 导航到web浏览器的文件,以确认没有产生错误,这样可以告诉您安装php direct io。

在串行连接的另一端打开终端程序

为了测试在PHP中发送和接收串行数据,串口的另一端应该是开放, macosx CoolTerm, 我们还建议最初在终端中打开串行连接的另一端以确认数据肯定能够通过连接发送和接收 。

使用正确的本地串口设置配置PHP文件

示例脚本顶部有一些要配置的设置,最重要的是端口名。

Windows端口名称应该是'comx:'X 是指定名称的端口号必须是小写,最后是冒号这可以通过打开设备管理器找到 。

unix系统端口名称是'/dev/cu.usbserial-XXXXXXXXX',id, 将UNIX类型ls/dev/cu.usbserial*上安装的Brainboxes串行端口的所有名称都安装到终端。

在网络浏览器打开文件时,串口的另一端应该显示'Hello World'; 然后输入连接另一端的终端,这将回显到Web浏览器窗口 。

重要说明:PHP Direct IO目前没有实现读取超时,正在阻塞。 这意味着如果在调用read方法时没有数据存在,那么PHP将阻塞(停止),直到收到数据或达到PHP执行时间 。

链接

PHP Direct IO手册- http://www.php.net/manual/en/book.dio.php

Haojinghui profile image