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
- PHP é à quinta-feira – Sabe popular uma combobox?
- PHP é a Quinta-Feira – Gerar ficheiros PDF
- PHP é à quinta-feira – Validação de dados introduzidos
- PHP é à quinta-feira – PHP + JSON
- PHP é à quinta-feira – Endereço IPv4 ou IPv6?
- PHP é à quinta-feira – Arrays Associativos