Control del puerto paralelo del PC con linux desde página Web

Posted by Juan Marcano | Posted in *LINUX*, Electrónica | Posted on 13-08-2009

14

El puerto paralelo del PC es un conector de 25 pines en forma de “D” en la parte trasera de la computadora. Es aquel donde se conectaba la impresora antes que se fuese mayormente sustituido por el moderno USB. Dado que este puerto tiene un conjunto de entradas y salidas digitales, se puede emplear para hacer prácticas experimentales de lectura de datos y control de dispositivos. El puerto paralelo puede ser muy útil para conectar tus propios circuitos al PC y realizar experimentos de interfaces muy interesantes. El puerto es muy fácil de usar una vez que se conocen algunos trucos básicos.   

No entrare en detalles acerca de la arquitectura del puerto paralelo. Existe abundante información en la red acerca puerto paralelo, he aquí enlaces interesantes:

http://es.wikipedia.org/wiki/Puerto_paralelo

http://cfievalladolid2.net/tecno/cyr_01/control/puerto_paralelo.htm

http://www.globu.net/pp/PP/pp.htm

A donde quiero llegar es que utilizando linux podemos acceder al puerto paralelo y “escribir” y leer data de forma muy sencilla con sencillos comandos de consola, de estos programas llama especialmente la atención “PORTCONTROL”, el cual permite que desde una pagina web accedamos al puerto paralelo de nuestra PC.

Ahora explicare brevemente como instalarlo:

Lo primero es descargar el paquete PORTCONTROL.TAR que trae las siguientes aplicaciones:

LPTOUT programa simple de uso general para controlar el puerto LPT1 de impresora.
PORTCONTROL aplicación de uso genera para lectura y escritura en los puertos de entrada/salida.
CONTROL.PHP interfaz web basada en AJAX/PHP para el control del puerto paralelo.

Lo primero que debemos hacer para instalar PORTCONTROL es instalarlo, haciendo en la consola:

make install (en el directorio donde lo descargamos)

el ejecutable se instala en /usr/local/sbin/ directory

Pudiera ser necesario modificar los privilegios del ejecutable PORTCONTROL a privilegios de SUID de ejecución del archivo con el comando CHMOD 4755 PORTCONTROL para evitar tener que “loguearse” como root cuando se ejecuta PORTCONTROL, esto es importante para que funcione con la interface web.

Podemos revisar si funciona el PORTCONTROL con alguno de los siguientes comandos:

/usr/local/sbin/portcontrol LPT1DATA read setbit 1 write

Coloca el pin 1 del registro de data en “1” (analogamente se pueden modificar los otros bits)

/usr/local/sbin/portcontrol LPT1DATA read resetbit1 write

Coloca el pin 1 del registro de data en “0” (analogamente se pueden modificar los otros bits)

/usr/local/sbin/portcontrol LPT1DATA setvalue 0xff write

Coloca todos los pines del registro de data en 1

/usr/local/sbin/portcontrol LPT1DATA read print bin

Lee el registro de data del puerto y lo muestra en binario.

/usr/local/sbin/portcontrol LPT1DATA read printbits 021

Lee el registro de data del puerto de los bits 0,2 y 1 y lo muestra en ese orden.

Nota: estos son solo algunos comandos de ejemplo en el readme aparecen mas.

Para hacer funcionar la interfaz web es necesario:

  • Tener instalado el servidor web apache con soporte para PHP5
  • El software PORTCONTROL instalado en el directorio por defecto.
  • SAJAX una herramienta ajax desarrollada por ModernMethod. http://www.modernmethod.com/sajax/
  • Navegador Web moderno, Firefox, IE.

Instalar la interfaz web es sencillo. Todo lo que se necesita hacer es copiar el archivo control.php en el directorio web de tu servidor apache junto con el paquete SAJAX (en el mismo directorio). Para probar, abrimos nuestro navegador web e ingresamos al URL donde guardamos nuestro archivo control.php deberia aparecer:

Control del puerto paralelo desde pagina web

Aplicaciones

Lógicamente si todo salio bien deberíamos tener la habilidad de manipular los pines del puerto paralelo de nuestra maquina, pero esto no nos sirve de nada si no agregamos HARDWARE que nosotros mismos construiremos, de igual forma con algo de curiosidad se pueden modificar los scripts de CONTROL.PHP y crear una pagina web según nuestra conveniencia.

Algo “fácil”que podemos hacer es “prender” o “apagar” dispositivos eléctricos ( luces, motores, bombas) de nuestro hogar usando la señal proveniente de uno de los pines del puerto paralelo con la ayuda de relés electrónicos (optoacoplador+triac), es decir que realizando la instalación necesaria podría encender cualquier dispositivo desde Internet, (lo probé con un bombillo y con mi ventilador je je je). Ya publiqué un post donde se sugiere el uso  de optoacoplador y triac.

La mayor parte de la información este articulo basado en la información que aparece en http://www.epanorama.net/circuits/parallel_output.html
pero que en ninguna parte encontré traducida al español.


<img src=»http://www.epanorama.net/circuits/WinPortControl.gif» alt=»Control del puerto paralelo desde pagina web» width=»684″ height=»585″ /> Control del puerto paralelo desde pagina web

Comentarios (14)

holaa eh hecho varios intentos pero no me ah funcionado correctamente, no se a que se deba
tengo instalado en mi maquina el puerto paralelo pero el programa no logra reconocerlo!!!

hola muy interesante el proyecto

es en la carpeta (var/www).. exito!

Ya me salio, una unica pregunta, en el drectorio del servidor apache, (var/www) pongo la carpeta Sajax 0.12 y control.php ?? o instalo un servidor ftp y pongo ambos archivos (la carpeta Sajax y control.php) dentro de la carpeta del ftp ( etc/proftpd)

Y otra cosa, el archivo (portcontrol.tar) no tiene dentro ningun ejecutable :S?? solo esta makefill o readme, los demas son codigos en .c y dos en .php

Chekare, lo que no see es si debo descomprimirlo?, o solo poner sudo make install portcontrol.tar o make install /ruta… o como sabe el sistema donde se encuentra el archivo??

probaste con «sudo make install» ?

Como se instala en debian, ya que el make install no funciona, de antemano muchas gracias

claro, debe funcionar.

Que versión de Linux recomiendan?? yo tengo Debian, funcionará con esa?

si por «bus de datos» te refieres al cable , puedes utilizar un conector db25 macho para soldar y utilizar cable UTP comun y corriente (sueldas al conector los pines que vas a utilizar). Un cable de impresora viejo tambien funcionaria.

Amigo…que excelente está tu articulo, una pregunta…podrias explicar como conectaste el bus de datos al DB25…? Muchas Gracias…Saludos

Hola:

Muy bueno lo del puerto paralelo del Linux. Por ahora sigo trabajando con elpuerto paralelo con Windows y lo ocntrolaré también bajo PHP si puedo.

Buen trabajo.

Saludo.

hola vi tu articulo en ba-k y ahora te visito en tu blog, gracias esta muy bien saludos

Deja un comentario!