Sunday, 29 July 2012 11:19

Control Serial via PHP

Written by
COM Port status COM Port status
It is simple to control serial via PHP.

exec("mode com4: BAUD=9600 PARITY=n DATA=8 STOP=1 to=off dtr=off rts=off");
$fp =fopen("com4", "w");
//$fp = fopen('/dev/ttyUSB0','r+'); //use this for Linux
fwrite($fp, "string to send"); //write string to serial

The first function exec is similar to the DOS command, use to change the port settings.
You can run mode from Ms DOS command prompt. For example:
C:\> mode com4:/status
The above DOS command display the status of the COM port. 

Syntax of mode (display a list of mode commands & options)
C:\> mode/?


Open COM4 in write mode (for Microsoft Windows only)

$fp =fopen("com4", "w");

or your can use  $fp =fopen("com4", "r+"); for read & write


Open USB serial port for read and write (for Linux)

$fp =fopen('/dev/ttyUSB0',r+');


Open first serial port in read & write (for Linux)

$fp = fopen('/dev/ttyS0','r+');


To terminate string with Carriage Return

fwrite($fp, "string to send\r");


To terminate string with New Line & Carriage Return

fwrite($fp, "string to send\n\r");


 Close the serial port




Additional Information about PHP Serial
There are many people using php_serial.class. Unfortunately it is not working in my computer. Please let me know if some one can make the following code work.

$serial = new phpSerial();
$serial->confBaudRate(9600); //Baud rate: 9600
$serial->confParity("none"); //Parity (this is the "N" in "8-N-1")
$serial->confCharacterLength(8); //Character length
$serial->confStopBits(1); //Stop bits (this is the "1" in "8-N-1")
$serial->sendMessage("string to send");

It is not important to me no matter the php_serial.class is working or not. I'm happy with the  $fp =fopen("com4", "w"); command since I do not need to include additional library file to my php source code.
Read 79945 times Last modified on Sunday, 12 June 2016 10:33
More in this category: HTML Onclick Button Image »
Back to Top