Ver Mensaje Individual
  #9 (permalink)  
Antiguo 26/08/2014, 04:50
Avatar de Dalam
Dalam
 
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 3 meses
Puntos: 56
Respuesta: Leer datos de puerto serial con PHP.

Señores para utilizar la comunicacion serial desde arduino se puede usar la funcion fopen directamente y usar fread o fwrite segun se necesite leer datos o enviar.
Te dejo un ejemplo de codigo, que mira si el arduino esta conectado a un puerto y velocidad especificas.
Código PHP:
Ver original
  1. <?php
  2. //La siguiente linea configura el modo de conexion a el com3 y 9600 baudios
  3. exec("mode COM3 BAUD=9600 PARITY=N data=8 stop=1 xon=off");
  4.  
  5. $fp = @fopen ("COM3", "w");
  6. if (!$fp) {
  7.    $status = "No conectado";
  8. } else {
  9.    $status = "Conectado";
  10. }
  11. echo $status;?>
Si no entendeis la primera linea de codigo aqui teneis una lista de comandos disponibles
Tambien te voy a hacer una aclaracion sobre la comunicacion serial, El puerto serial no manda un string de una sola vez, el puerto serial manda un caracter por cada ciclo de arduino con lo que las frases son enviadas en varios ciclos dependiendo del numero de caracteres.
Para solucionar eso puedes detectar un final de linea y que php lea el puerto hasta que reciba un salto de linea.
Para mas ejemplo:
Cita:
Si queremos enviar "comunicacion con arduino" arduino lo haria de la siguiente forma
ciclo 1 = c
ciclo 2 = o
ciclo 3 = m
ciclo 4 = u
..............
Tambien podrias usar el analogRead y asi ampliar el uso de arduino y mostrar informacion de un rango de 8 o 10 bits dependiendo del puerto que uses para leer, el conversor analogico digital de las salidas analog in son de 8 bits, osea 256 posibles valores y de los puertos PWM el conversor es de 10 bits con lo que retorna valores entre 0 y 1024.
Si tienes alguna duda mandame un mensaje y intento esplicarte un poco como funciona dependiendo del microcontrolador que uses
__________________
http://www.roglastudios.es

Última edición por Dalam; 26/08/2014 a las 05:02