четверг, 15 ноября 2012 г.

Работа с Arduino из PHP

Иногда требуется получить доступ к arduino (и COM-поту вообще) из PHP-скриптов (например из web-морды Умного Дома, как же без нее =) ).

Т.к. велосипеды для таких поездок уже изобретены, остается подключить и допилить под свои нужды.

Сам класс для работы с COM-портом стягиваем отсюда php_serial.class.php, попутно говоря спасибо Rémy Sanchez.

Пример использования можно найти здесь, но для ардуины придется немного перепилить.
У меня заработало примерно вот так:

################################################################
<?php
include "php_serial.php";

// Let's start the class
$serial = new phpSerial;

// First we must specify the device. This works on both linux and windows (if
// your linux serial device is /dev/ttyS0 for COM1, etc) 

// у меня на роутере определяется так. у себя можно посмотреть
// командой dmesg после подключения ардуины. в виндус проще$serial->deviceSet("/dev/ttyUSB0");

$serial->confBaudRate(9600); //Baud rate: 9600
$serial->confParity("none"); //Parity (this is the "N" in "8-N-1")
$serial->confStopBits(1); //Stop bits (this is the "1" in "8-N-1")

// Для начала работы с железкой нужно вызвать deviceOpen();
$serial->deviceOpen();

// пример записи в порт
$serial->sendMessage('1');

// пример чтения из порта
$read = $serial->readPort();
echo $read;


// Если нужно изменить что-то в конфигурации, нужно вызвать:
$serial->deviceClose();  

// etc...
?>

################################################################

Остается красиво впилить это дело в свой движок =)

Напоследок цитата автора о совместимости с разными OS:

==> /!\ WARNING /!\ : 
it's working with linux for r/w, but with windows i've only been able to make write working. 
If you're a windows user, try to access the serial port through network with serproxy instead. 
The class have been reported to work fine with Mac OS X, but i've not tested it, so I've left the OS test in the sourcecode, but feel free to add macos in it.

Комментариев нет:

Отправить комментарий