Autor Tema: PHP, puerto rs232 y PIC  (Leído 98557 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Armando R. A

  • PIC10
  • *
  • Mensajes: 15
Re: PHP, puerto rs232 y PIC
« Respuesta #15 en: 22 de Febrero de 2008, 12:34:41 »
hola amigos soy nuevo en el foro y me intereso mucho lo del  Script php que envía un valor a traves de l puerto serial yo quisiera saver si es posible con este programa el ( serproxy ) leer el puerto serial y como seria el script en php.

si alguien podria ayudarme, o darme alguna opinion  lo agradeceria mucho...
 

saludos ...........
« Última modificación: 22 de Febrero de 2008, 12:38:05 por Armando R. A »

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: PHP, puerto rs232 y PIC
« Respuesta #16 en: 22 de Febrero de 2008, 13:14:50 »
Bienvenido armando.

Por supuesto que se pueden recibir datos; sólo tienes que usar fgets en PHP. En el código que publiqué anteriormente hay un ejemplo.

Desconectado Armando R. A

  • PIC10
  • *
  • Mensajes: 15
Re: PHP, puerto rs232 y PIC
« Respuesta #17 en: 22 de Febrero de 2008, 16:02:54 »
ok muchas gracias jfmateos2 lo que pasa es de que estoy haciendo un proyecto  en el cual tengo que capturar el peso de una bascula que esta conectada a un cliente por el puerto serial y en viar el dato una maquina servidor e intentado de mil maneras pero no logro leer el puerto  con php voy a provar con el serproxy supongo que tengo que ejecutarlo en la maquina cliente, y probar el script a ver si logo leer el puerto.

pero de ante mano muchas gracias por el dato..


saludos...............   

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: PHP, puerto rs232 y PIC
« Respuesta #18 en: 22 de Febrero de 2008, 16:36:22 »
Vas por buen camino Armando. El serproxy lo instalas en él PC al que está conectada la báscula, creas en él un servidor Web (por ejemplo con WAMP o LAMP) y alojas en él programita PHP, y desde cualquier otro ordenador de Internet accedes a ese script PHP (para evitar los problemas de las IP dinámicas puedes recurrir a DynDNS).

Ya nos contarás tus éxitos.

Desconectado Armando R. A

  • PIC10
  • *
  • Mensajes: 15
Re: PHP, puerto rs232 y PIC
« Respuesta #19 en: 25 de Febrero de 2008, 15:33:53 »
amigo jfmateos2 e hecho lo que digiste pero a un no e logrado leer el puerto serial y no se si es por que tenga mal el codigo en php o tenga que configurar el serproxy no lo se, el problema es que no me arroja nada solo en una ocasion pero era codigos raros (basura)
que es lo que tengo que modificar al codigo para leer el puerto , por favor lo agradeceria mucho no se que hacer
saludos................
« Última modificación: 25 de Febrero de 2008, 15:49:50 por Armando R. A »

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: PHP, puerto rs232 y PIC
« Respuesta #20 en: 26 de Febrero de 2008, 13:32:47 »
Hola Armando, creo que no entiendo bien tu pregunta; necesitaría que me pusieses el código PHP que estás utilizando.

Ten en cuenta que el serproxy está acompañado de un archivo llamado serproxy.cfg en el que debes configurar la velocidad de la comunicación serie (número de bits de datos, si usa o no bit de parada, ...).

En este mismo archivo se le asigna un número de puerto TCP/IP a cada uno de los puertos COM de tu ordenador. Por ejemplo, el COM1 se vincula al puerto 5531. Éste número de puerto es el que tienes que utilizar al abrir el socket en PHP con la instrucción fsockopen ("localhost", 5331, $errno, $errstr, 10)

No sé cómo ayudarte; necesitaría más información por tu parte.

Por cierto, he modificado el archivo serie.php para que se vea más clara la comunicación entre el PIC y el PC. Vuélvetelo a descargar si quieres.

Desconectado Armando R. A

  • PIC10
  • *
  • Mensajes: 15
Re: PHP, puerto rs232 y PIC
« Respuesta #21 en: 27 de Febrero de 2008, 01:21:21 »
hola amigo antes que nada muchas gracias por responder a misdudas te agradesco mucho ......

mi pregunta es simple yo lo unico que quiero es leer el puerto serie quiero obtener el valor que se encuentra en la bascula.

tengo instalado el serproxy al igual que un servidor donde pongo el codigo en php pero no logro obtener el valor deseado.

lo unico que quiero  es si podrias ponerme el codigo  nadamas para obtener el dato de la bascula...

yo pongo  el codigo a si no se que me falta
 
<?php
// Acceso mediante PHP al puerto serie
$serproxy=true;
if ($serproxy) {
   // Este código debe utilizarse en combinación con serproxy

   $fp = fsockopen ("localhost", 5331, $errno, $errstr, 10);
   if (!$fp) {
       echo "$errstr ($errno)";
   } else {     
       $line="";
          while (!feof($fp))
            {
               $line =  fgets($fp, 4096);
               echo "$line";
             }

       echo "
<form action='serie.php'><input type='submit' value='Update'/></form>";     

       fclose ($fp);
   }
}
?>

bueno espero no dar mucha lata jejeje pero es que no se que hacer
bueno saludo...........
« Última modificación: 27 de Febrero de 2008, 01:23:39 por Armando R. A »

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: PHP, puerto rs232 y PIC
« Respuesta #22 en: 27 de Febrero de 2008, 04:44:34 »
Hola Armando, ¿puedes confirmarme que has seguido estos pasos?

1. Instalar un servidor en tu ordenador local (por ejemplo, WAMP).

2. Almacenar el código PHP en la carpeta www (por ejemplo, c:/wamp/www) de ese servidor, sustituyendo 5331 por el valor correspondiente al puerto COM de tu ordenador al que está conectado la báscula (estos valores se encuentran en el archivo serproxy.cfg).

3. Introducir en el archivo serproxy.cfg los parámetros de comunicación de la báscula (velocidad, número de bits y bits de parada).

4. Ejecutar serproxy.

5. Acceder con tu navegador al archivo serie.php (por ejemplo, http:/localhost/serie.php) y pulsar el botón Update. ¿qué te aparece en pantalla, nada, o valores raros?

6. ¿Tienes más información sobre el método de comunicación de la báscula? Es probable que sea un método bi-direccional, que no devuelva el valor de la pesada a menos que se lo solicitemos. En este caso tendríamos que enviar el comando apropiado desde serie.php a la báscula con fputs y, a continuación, leer la respuesta con fgets (como hago yo en mi código del PIC).

Desconectado Armando R. A

  • PIC10
  • *
  • Mensajes: 15
Re: PHP, puerto rs232 y PIC
« Respuesta #23 en: 27 de Febrero de 2008, 23:21:10 »
ok amigo
si tengo un servidor en mi maquina local (Apache) y si al maceno el codigo php en la carpeta www, el puerto COM de mi maquina es <<< com1 por lo cual el codigo lo dejo asi 5331 yo pienso que mi error esta en la configuracion del serproxy.cfg en los parametros de comunicacion.
por que cuando ejecuto el el codigo php arroja simbolos raros y creo que es por la configuracion...
eso de que arroje codigos raros me imagino que es por que ya hay una comunicacion con el puerto serial o me equiboco
lo que mencionas del  metodo bi-diriccional la verdad no lose.  Voy a investigar bien la configuracion y seguir intentando
bueno gracias de nuevo
saludos.........

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: PHP, puerto rs232 y PIC
« Respuesta #24 en: 28 de Febrero de 2008, 04:36:07 »
Si aparece algo en pantalla es porque PHP está recibiendo datos, pero ahora habría que saber si esos datos están bien codificados. Ten en cuenta que pueden ser símbolos raros porque la báscula esté transmitiendo un valor numérico y PHP lo está convirtiendo en los caracteres ASCII equivalentes. Por ejemplo, si la báscula transmite 32, PHP mostrará un espacio.

Desconectado Armando R. A

  • PIC10
  • *
  • Mensajes: 15
Re: PHP, puerto rs232 y PIC
« Respuesta #25 en: 28 de Febrero de 2008, 12:24:49 »
exactamente que me aparece es esto brother

À€€à˜þà˜à€€€€€€à€€€€€à˜þà˜à€€€€€€à€€€€€à˜þà˜à€€€€€€à€€€€€à˜þà˜à€€€€€€à€€€€€à˜þà˜à

y cuando aparecen caracteres ASCII que se debe hacer

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: PHP, puerto rs232 y PIC
« Respuesta #26 en: 28 de Febrero de 2008, 13:08:46 »
Hola Armando:

Sustituye la línea

Código: [Seleccionar]
echo "$line";

Por este código para ver los códigos ASCII separados por comas, a ver si tienen algún sentido esos caracteres:
Código: [Seleccionar]
$codigos="";
$longitud=strlen($line);
for($i=0;$i<$longitud;$i++){
    $codigos.=ord(substr($line,$i,1));
    $codigos.=",";
}
echo $codigos;

En cualquier caso, ¿puedes darnos algún tipo de información sobre la báscula (marca, modelo, ...) para ver si encontramos información sobre su protocolo de comunicación?

Desconectado Armando R. A

  • PIC10
  • *
  • Mensajes: 15
Re: PHP, puerto rs232 y PIC
« Respuesta #27 en: 28 de Febrero de 2008, 19:07:03 »
he modificado el codigo y esto es lo que arroja

128,30,128,30,128,30,224,152,30,254,24,224,152,24,224,24,128,30,128,30,128,30,128,30,128,30,128,30,224,24,128,30,128,30,128,30,128,30,128,30,224,152,30,254,24,224,152,24,224,24,128,30,128,30,128,30,128,30,128,30,128,30,224,24,128,30,128,30,128,30,128,30,128,30,224,152,30,254,24,224,152,24,224,24,128,30,128,30,128,30,128,30,128,30,128,30,224,24,128,30,128,30,128,30,128,30,128,30,224,152,30,254,24,224,152,24,224,24,128,30,128,30,128,30,128,30,128,30,128,30,224,24,128,30,128

jaguar
Marca     Metter Toledo
Serie      5173270 - 5lb
Modelo   Jaguar
Nom      201

saludos....

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: PHP, puerto rs232 y PIC
« Respuesta #28 en: 29 de Febrero de 2008, 07:48:19 »
Hola Armando, como no consigas más información sobre el protocolo que usa la báscula estarás perdido... Parece ser que usan un protocolo llamado MTCont, del que no he encontrado ninguna información, espero que tú tengas más suerte.

En caso contario, te tocará hacer ingeniería inversa: conectar la báscula al PC y un programa sniffer del puerto serie e intentar averiguar qué relación existe entre los datos que intercambian el PC y la báscula y la información que se presenta al usuario.

Suerte y saludos

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: PHP, puerto rs232 y PIC
« Respuesta #29 en: 29 de Febrero de 2008, 09:29:59 »
Busca, busca, busca y triunfaras!!!
Para el jaguar Toledo tiene toda una libreria completa para poner en aplicaciones, que hace la comunicacion con un cabezal o toda una red completa.
Incluye funciones de tara, cero, visualizacion en libras o kg, etcetera.
Es gratuita y solo debes buscar para bajartela... :mrgreen: :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything