fopen para serial port

497 views
Skip to first unread message

PERCY ESTEVEZ

unread,
Jul 1, 2013, 11:50:02 AM7/1/13
to PHP GT
Buen día a todos, tengo ya instalada la función php_dio (para trabajar con puertos seriales), tengo conectado ya un módem 3G  y ya está reconocido (/dev/ttyUSB0), qué más tengo que hacer para que me hale la función fopen para comunicarme al serial, gracias de antemano, f día
 
$f = fopen("dio.serial:///dev/ttyUSB0", "r+", false, $c);
Warning: fopen(dio.serial:///dev/ttyUSB0): failed to open stream: operation failed in /var/www/sms.php on line 50

ó

$f = fopen("/dev/ttyUSB0", "w", false, $c);
Warning: fopen(/dev/ttyUSB0): failed to open stream: Permission denied in /var/www/sms.php on line 51

 
Percy Estévez Castellanos

José Blanco

unread,
Jul 1, 2013, 11:54:40 AM7/1/13
to PHPGT Grupo de PHPeros de Guatemala


·_  _  _  ·_  _·_  ··  _·  ···  _·_  _·__
José Blanco - Web Developer


2013/7/1 PERCY ESTEVEZ <peste...@yahoo.com>

--
--
PHPGT :: Grupo de PHPeros de Guatemala
email: ph...@googlegroups.com
reglas de uso: https://sites.google.com/site/grupophpgt
 
---
Has recibido este mensaje porque estás suscrito al grupo "PHPGT Grupo de PHPeros de Guatemala" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a phpgt+un...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Douglas

unread,
Jul 1, 2013, 1:10:15 PM7/1/13
to ph...@googlegroups.com

A mi se me hace que si necesitas usar el puerto serial igual seria mejor evaluar hacerlo en otro lenguaje.

Enviado desde mi Samsung Galaxy S3

iveen....@gmail.com

unread,
Jul 1, 2013, 1:11:17 PM7/1/13
to ph...@googlegroups.com


2013/7/1 Douglas <dougy...@gmail.com>



--
Iveen Duarte
GNU/Linux User 498813
Ubuntu User 31935

Mario De León

unread,
Jul 1, 2013, 1:22:43 PM7/1/13
to ph...@googlegroups.com
+1


2013/7/1 Douglas <dougy...@gmail.com>



--
Mario De León.

Stuardo -StR- Rodríguez

unread,
Jul 1, 2013, 3:20:28 PM7/1/13
to ph...@googlegroups.com

2013/7/1 PERCY ESTEVEZ <peste...@yahoo.com>


$f = fopen("/dev/ttyUSB0", "w", false, $c);
Warning: fopen(/dev/ttyUSB0): failed to open stream: Permission denied in /var/www/sms.php on line 51

Yo pienso igual que Douglas, haría la lectura al serial en otro lenguaje. PERO si ya llegaste hasta aquí, ya hiciste la parte más difícil, lo demás viene fácil. Si te das cuenta el errir es de permisos, osea tu usuario del webserver no puede escribir al puerto. Cambiale los permisos y nos contás.


--

Stuardo -StR- Rodríguez | Mercenary Web Developer | http://maphpia.com
email: s...@maphpia.com | msn: s...@maphpia.com | gtalk: s...@maphpia.com
office: +502 6646-8047 | mobil: +502 4210-8819 | skype: stuardo_str

PERCY ESTEVEZ

unread,
Jul 1, 2013, 4:58:19 PM7/1/13
to ph...@googlegroups.com
Gracias muchás, Stuardo, al /dev/ttyUSB0 le di permisos 777,
al darle un #ls -la /dev/ttyUSB*
pertenecen al grupo dialout
 
ya le di
#sudo usermod -G www-data,dialout www-data

pero igual...

Percy Estévez Castellanos



De: Stuardo -StR- Rodríguez <s...@maphpia.com>
Para: "ph...@googlegroups.com" <ph...@googlegroups.com>
Enviado: Lunes, 1 de julio, 2013 1:20 P.M.
Asunto: Re: [phpgt] fopen para serial port

Mauricio Deleon

unread,
Jul 1, 2013, 4:59:12 PM7/1/13
to ph...@googlegroups.com
hoy si se estan pasando mucha
--
Luis Mauricio Déleon Barquero

Douglas

unread,
Jul 1, 2013, 5:06:44 PM7/1/13
to ph...@googlegroups.com
Seria de checar los permisos y reiniciar apache. Yo la verdad pienso que lo mas practico seria utilizar C o Perl para esta tarea, y si es web, programarlo como un modulo CGI.


--
Enviado desde mi Gmail

Mario De León

unread,
Jul 1, 2013, 5:12:42 PM7/1/13
to ph...@googlegroups.com
Para salir de dudas crea un script php con el codigo para leer el puerto, ejecutalo como root y mirá si realmente es cuestion de permisos. Luego ya te debatis con el usuario y procesos de apache.

Pero sigo pensando en que deberias usar otro lenguaje para ese tipo de cosas, si bien php es muy poderoso, creo que su fuerte es el web (y todo lo que gire a su alrededor), pero para lo demás puede haber mejores alternativas.

Un tu webservice hecho en java con DropWizard (multiplataforma, rest api, rapido de crear) te podria sacar la tarea muy bien, y consumirlo desde tu aplicacion php.




2013/7/1 Douglas <dougy...@gmail.com>



--
Mario De León.

PERCY ESTEVEZ

unread,
Jul 1, 2013, 5:21:24 PM7/1/13
to ph...@googlegroups.com
Ok, gracias Mario, ya me habían recomendado eso, creo que puedo conseguir el apoyo quién cree el WebService con NET y yo consumirlo con SOAP desde PHP, pero voy a probar antes con lo de los permisos, gracias, f tarde
 
Percy Estévez Castellanos



De: Mario De León <mario...@gmail.com>
Para: ph...@googlegroups.com
Enviado: Lunes, 1 de julio, 2013 3:12 P.M.

Alejandro Velasquez

unread,
Jul 1, 2013, 10:41:51 PM7/1/13
to ph...@googlegroups.com
saludos a todos, de pura casualidad llevo ya un tiempo  dandole  a lo mismo , mi intencion era enviar y recibir sms
 
 empece en windows  (win7)  y he logrado mandar mensajes sin problema,  el puerto
lo abro de la siguiente forma:

      exec('mode COM5: BAUD=115200 PARITY=N data=8 stop=1 xon=off odsr=off octs=on rts=on idsr=off');
      $fp = fopen ("COM5:", "w+" , false  );


pero no logro leer el resultado  he probado mil maneras pero tambien influye que no estoy tan familiarizado
con las variables de tipo stream que es el tipo que maneja la comunicacion con el modem.

Entonces  decidi pasarme a linux (ubuntu 12.04.1 LTS)  que era mi objetivo final
pero no funciona (claro que cambiando el puerto del com5 a /dev/ttyUSB0 ) pero sin exito .
entonces descubri que si puedo ver que el modem esta puesto en el puerto usb pero no lo reconoce

no se si ya revisaste eso... 

bueno espero te sirva de algo ...
si avanzo en algo les cuento...

pd. no se que necesites hacer pero igual te recomiendo   http://www.kannel.org
es una opcion muy completa ...




2013/7/1 PERCY ESTEVEZ <peste...@yahoo.com>

PERCY ESTEVEZ

unread,
Jul 2, 2013, 11:21:36 AM7/2/13
to ph...@googlegroups.com
Ok, gracias Alejandro, si tu Ubuntu es de 32bits, dale con este paquete, sakis3g, a mí me haló con eso, me reconoció al fin el módem en Ubuntu

desempaquetalo en el /usr/bin/

tal vez te pida el paquete ppp
# sudo apt-get install ppp

allí lo ejecutas con
# sudo ./sakis3g --interactive

Escogés la opción 2 (More Options), luego la opción 3 (Only setup modem) y escogés la interfaz 0,1...
al darle ls -la /dev/ttyUSB*
ya los ves (ttyUSB0, ttyUSB1, etc.)

y con esto ya tenés reconocido el módem, 
ya podés usar en tu script el /dev/ttyUSB0 por ejemplo, 

si no te hala con esto, me hablaron de este también (gammu), que a un cuate le haló:

 
Percy Estévez Castellanos



De: Alejandro Velasquez <alejandro...@gmail.com>
Para: ph...@googlegroups.com
Enviado: Lunes, 1 de julio, 2013 8:41 P.M.

Asunto: Re: [phpgt] fopen para serial port
saludos a todos, de pura casualidad llevo ya un tiempo  dandole  a lo mismo , mi intencion era enviar y recibir sms
 
 empece en windows  (win7)  y he logrado mandar mensajes sin problema,  el puerto
lo abro de la siguiente forma:

      exec('mode COM5: BAUD=9600 PARITY=N data=8 stop=1 xon=off odsr=off octs=on rts=on idsr=off');
sakis3g.tar.gz

Mauricio Deleon

unread,
Jul 2, 2013, 1:57:43 PM7/2/13
to ph...@googlegroups.com
+1 a sakis3g
Reply all
Reply to author
Forward
0 new messages