Pplware

PHP é à quinta-feira – Controlar uma porta COM

Por Pedro Peixoto para o PPLWARE

O PHP é usado mais frequentemente com o objectivo de construção de Websites ou aplicações WEB para manipular dados e geri-los de uma forma mais fácil e cómoda, mas também é famoso pela sua versatilidade, flexibilidade e simplicidade. O facto de ser uma linguagem muito popular facilita a obtenção de classes que estendem as suas funcionalidades aos mais diversos fins. Hoje vamos aprender como controlar facilmente uma porta COM usando PHP.

Há uns tempos, durante a realização de projecto relacionado com a robótica, tive necessidade de enviar comandos para uma porta COM (local) usando a aplicação que estava a construir em PHP. O que poderia parecer difícil à primeira vista, veio a tornar-se simples, muito por culpa da classe disponibilizada por Rémy Sanchez. Existem muitas outras soluções, algumas delas tirando partido de funções nativas do PHP, tanto que a minha escolha acabou por ser outra, no entanto esta classe é bastante simples e eficaz para as tarefas mais necessárias, pelo que merecia destaque numa rubrica.

Vamos ao que interessa, em primeiro lugar necessitam de fazer download da classe e fazer o include da mesma:

require("php_serial.class.php");

Depois de incluída é preciso criar um novo objecto como em qualquer classe:

$serial = new phpSerial();

Agora que temos o objecto criado, vamos indicar a porta COM a controlar:

$serial->deviceSet("COM1");

De seguida necessitamos de indicar os parâmetros de ligação à porta:

$serial->confBaudRate(9600); //Taxa de transmissão
$serial->confParity("none");  //Paridade
$serial->confCharacterLength(8); //Comprimento

$serial->confStopBits(1);  //Bits de paragem
$serial->confFlowControl("none"); //Controlo

Agora que já temos a ligação configurada, vamos conectar:

$serial->deviceOpen();

E é tudo, podemos enviar as mensagens para a porta de destino, para exemplificar vamos enviar o comando “SR1”:

$serial->sendMessage("SR1\r");

Ao fim de enviar todos os comandos, temos de fechar a conexão:

$serial->deviceClose();

Para concluir, basta acrescentar que está ainda disponível a função readPort, para ler a porta COM mas apenas está implementada para servidores Linux.

Existem inúmeros dispositivos que funcionam ou estão preparados para funcionar como portas COM, esta classe vem assim possibilitar a exploração de inúmeras funcionalidades desses mesmos dispositivos, e, principalmente possibilitar a interação de aplicações WEB com mecanismos usados na robótica ou domótica. Já pensaram fazer uma aplicação WEB onde controlem as persianas/luzes da vossa casa? Até para a semana.

Últimos artigos sobre PHP


Download: php_serial.class.zip

Exit mobile version