Go Down

Topic: Algún Guru del linux? (Read 4 times) previous topic - next topic

Igor R

#15
Nov 04, 2009, 06:37 pm Last Edit: Nov 05, 2009, 08:44 am by igorreal Reason: 1
Hola,

Aunque soy consciente que algunos no les gustará que sea en windows... ;), he publicado en mi blog, cómo crear una hoja excel que establece una conexión telnet con el router Linksys y controla el ejemplo de encender/apagar mediante botones.

http://real2electronics.blogspot.com/2009/10/linksys-arduino.html

Seguro que más de uno le encuentra utilidad a ésto....




Saludos



Igor R.

lsdios

Bueno, pues aqui hos dejo otro ejemplo de comunicacion entre arduino y Openwrt, en mi caso lo que he hecho es un script para openwrt para que de la hora al arduino, y asi pueda mostrar la hora correcta en un LCD serie.
http://sites.google.com/site/lsdiosarduino/Proyectos-Arduino/reloj-con-fonera

tambien se puede hacer lo mismo para fijarle una hora para realizar una accion (encender una bombilla, un rele, medir una temperatura, etc, etc)

Igor R

Hola Isdios,

Interesante!! Una pregunta, el puerto serie de la fonera... ¿es el de la consola?

Me imagino por el script de tu ejemplo que si... Porque en ningun momento le dices que salga la info por el puerto serie.... ¿verdad?

Otra duda: ¿como haces para que el script este continuamente ejecutandose?

Otra duda a los usuarios de OpenWRT: ¿Dispone de gestor web de configuración? Una cosa que me gusta del dd-wrt que puedes configurar todo mediante web, sin necesidad de comandos.... existe lo mismo para OpenWRT??


Saludos



Igor R.

lsdios

Haber partes. El puerto serie de la consola es un puerto serie con niveles TTL lo que significa que ca "a pelo" y si no me equivoco lo mismo pasa en casi todos los routers (esto mismo se puede hacer con los comntren de telefonica o los livebox de orange)
En el script no digo 0nunca que salga por puerto serie, ya que el comando lo recibe por puerto serie, por lo tanto responde por el mismo.
Si kiero darle la orden por la red (SSH, o web) deberia indicarle que saliese por el puerto serie / >> /dev/ttS0) pero como la hora la "pide" el arduinoi por serie, pues la fonera responde por el mismo camino. al iniciar el programa en el arduino, este envia la orden "time.sh" por puerto serie por lo que la fonera responde por el mismo con la hora es bien simple jejejej
OpenWRT en sus nuevas versiones si que tiene interface web. No obstante esto mismo te funcionara en DD-wrt ya que DD-wrt esta basado en OpenWRT.
OpenWRT utiliza otro sistema de gstion web llamado LUCI, http://luci.freifunk-halle.net/WebUI/Screenshots/Administration (aqui tienes algunas capturas)
Personalmente me gusta mas Openwr por la estabilidad, sobre todo al usar la fonera para conectarme a una red wifi.

El lynksis y la fonera no son muy diferentes asi que tambien podras ponerle un lector de tarjetas SD y asi poder por ejemplo, hacer que se registren datos recogidos por el arduino "temèratura. humedad, luz etc) en una SD en el router. Y muchas cosas mas jejejeje

Sobre electronica no puedo ayudar mucho (estamos aprendiendo) pero con openwrt (o dd-wrt) si que te puedo ayudar un poco, ya que llevo bastante tiempo "peleandome" con la fonera.

salu2

Igor R

Ok.

La verdad, que si es potente el hacer cosas dentro del router...
Pero no sé si necesito para mis propósitos...De momento con la pasarela telnet-serie, me va perfecto.
Simplemente me hago un protocolo serie, y uso el router de forma "transparente".

Yo no utilizo el puerto serie de consola, utilizo el segundo que hay libre en el wrt54gl.
He probado a sacar una orden por el puerto serie de consola, y me da mensaje de ocupado.
Pero bueno, teniendo dos, tampoco es crítico.


Saludos



;)


Eduardo_g

Vuelvo a este hilo tras unos dias fuera...
Igor, el primer puerto serie a priori no lo puedes usar, siempre te da ocupado porque es en el que está "agarrada" la entrada/salida del kernel desde que arranca. Date cuenta de que el linksys no tiene teclado ni salida VGA, con lo que en vez de mostrar los mensajes de arranque y posteriores en un monitor y esperar comandos por teclado, estas dos funciones las hace por el primer puerto serie. Si te fuera necesario podrías configurar el arranque para que el kernel no use el puerto serie pero facilmente sea un infierno.
En cuanto a niveles, soy consciente de que Arduino y linksys tienen distintos niveles de tension, pero el primer dia los conecté directamente y funcionó, luego me di cuenta de la diferencia, pero ya sabes "si algo funciona no lo toques", asi que asi lleva meses y todo ok.
En cuanto a ejecucion repetitiva de un script, depende. Si lo quieres constantemente, simplemente has de encerrar todas sus funciones en un bucle while true do... done. Si lo que quieres es que se ejecute cada cierto tiempo, debes usar el cron. El comando cron es un sencillo planificador para lanzar comandos con la frecuencia que se determine.
Saludos

Igor R

Gracias a todos... No le deis más vueltas a lo de las tensiones del puerto serie.... Nunca pregunte acerca de ésto!!! ja,ja,ja

;) :D ;)

lsdios

Las tensionm de ambos puertos serie es la misma, al menso en las foneras, los comtrend y los livebox de inventel, y en los lynksys lo mismo,, son conexiones TTL por lo que van a 3,3 V, lo cual para conectar al serie de un PC (rs232) tenemos que conevrtirlo puesto que estos van a 5v, pero entre dispositivos (arduino-router) no hace falta nada.
Respecto a lo de automatizar, puedes hacerlo de muchas maneras, tal y como comenta eduardo_g i bien como en el ejemplo que puse, es decir que el arduino envie un comando y el router responda.

La idea que tengo, (lo que quiero hacer vamos) es un termostato/temporizador para la calefaccion, y que este se pueda programar desde una pagina web en el router, y envie bien la señales de arrancar parar o bien grave las horas en una eeprom en el arduino y vaya apagando y encendiendo en base a fecha, hora y temperaturas(interiro exterior) asi que poco a poco aver si me va saliendo algo en claro jejejej.

salu2

Eduardo_g

Isdios, perdona una puntualizacion.
Por tener los términos claros. Tensiones TTL no son tensiones de 3.3v, son tensiones de 5V. Las tensiones de 3.3 vienen de una lógica CMOS o de variantes de TTL, pero el TTL de toda la vida es a 5V.
Y en cuanto a la tensión del puerto serie del PC, el estandar RS232 define un 1 lógico como una tensión entre -3 y -25v, y un 0 lógico se representa como una tensión entre +3 y +25. Muchos equipos suministran +/-5V en el puerto RS232, pero no se puede contar con ello pues otros (comprobado) funcionan con +/-12V. Por eso, cuando se sale de lógicas TTL o CMOS o LVTTL a lógicas RS232, lo mejor es asegurarse la adaptacion con un interfaz RS232/RS3232.

La pega que he encontrado yo en el linksys para controlar eventos via web, es que el servidor web que incluye están tan reducido que no ejecuta ningun tipo de lenguaje tipo PHP. Los CGI's los tienes que programar en script o en C.

Saludos

Igor R

#24
Nov 08, 2009, 03:33 am Last Edit: Nov 08, 2009, 03:47 am by igorreal Reason: 1
Si lo conectas directo, apuesto pasta a que si no pones una resistencia empieza a salir humo!!! Y si la pones, por lo menos, en el mejor de los casos, que tu dispositivo tenga diodos de clamping, estas "salvado".  ;). Si todavía no ha salido, dale tiempo, es que no encuentra el camino... :D

Ya se sabe que en electrónica,las resistencias se ponen para guardar el humo... ;)  :D


lsdios

Pues si e3duardo va a ser que tienes razon, y yo que pensaba (no se poeque) que el max232 era para pasar las señales de 5v a 3,3, no se porque llege a esa conclusion, en fin, el tema es que sin ningun adaptador conversor funciona ala perfeccion al menos con la fonera.

Eduardo_g

Igor, tengo en casa un cacharro funcionando desde hace meses con un arduino conectado directamente a un linksys, y sin problemas. Como comentaba antes, lo conecté así antes de darme cuenta de la diferencia de tensiones, y así se quedó. Te aseguro que no sale humo ni pasadas horas ni dias ni meses.
A priori, desde la teoría, yo no lo recomendaría, pero visto lo visto, no puedo des-recomendarlo.

Saludos

Igor R

#27
Nov 08, 2009, 01:56 pm Last Edit: Nov 08, 2009, 01:58 pm by igorreal Reason: 1
Habría que mirar si el micro del router (broadcom) acepta hasta 5v en la entrada (5v input tolerant). Por lo general hoy en día, casi todos los micros tienen diodos de clamp en sus entradas. Añadiendo la resistencia, te aseguras que puedan funcionar.... (a parte de limitar la corriente).
Esto hará que en la entrada del router, las señales le limiten a Vcc +/- V_clamp_diode cuando la entrada sea mayor/menor que su alimentacion (3v3,0v). (dado a que el diodo correspondiente entrará en conducción).

En mi opinión, no lo conectaría directamente....Cómo mínimo (asumiendo que tienen dichos diodos), le pondría resistencia en serie... Y si no, es fácil... Ponle una resistencia en serie, y mira lo que ocurre en el extremo (parte router)....¿a cuanto se queda el voltage?    ;)





Saludos


Igor R.

Igor R

Hola,

Una pregunta para alguno que domine linux...

Si quiero recuperar una página web.... ¿como lo hago con comandos bash básicos? (estoy usando dd-wrt)

Estoy intentando hacer ésto:


#!/bin/sh
URL= "http://twitter.com/users/show/real2electronic.xml"
web=`wget -q -O - $URL`
echo $web


Estoy jugando un poco con lo que he visto en:
http://www.themagicclock.com/build-log/the-brains )
http://manifestdensity.net/2008/03/26/dorkbot_arduino_and_fonera/dorkbot-tom_lee-arduino_meet_fonera.pdf


No hay manera.... ¿que hago mal?



Gracias!!






Eduardo_g

Pon aquí el error que te da. A bote pronto se me ocurre que el wget no esté instalado en el linksys, es probable pues suele venir con pocos paquetes instalados. Si lo tienes ampliado con tarjeta SD puedes manejar el instalador (ipkg) e instalarlo.
Para probar si es un problema de sintaxis o de no tener la aplicacion, simplemente prueba "wget http://twitter.com/users/show/real2electronic.xml" a ver si te descarga algo o no...

Saludos

Go Up