Pages: [1] 2   Go Down
Author Topic: Control domotico con servidor integrado en el arduino  (Read 4023 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tengo este codigo en el arduino (dejo el pde aqui en el post ojala tambien ayude a alguien que este en mi caso). Esta montado en un arduino duemilanove/UNO con una eth shield con el chip ENC28J60 (la mas economica del ebay). Tambien tengo un PDE funcional con la eth shield con wiznet (la que venden origianl de arduino) si alguien la necesita me lo dice y la posteo (cuando termine mi proyecto lo posteare todo).

Me he echo una web html donde controlar todos los arduinos para juntarlo todo el dia que toque, ahora por ahora solo es una prueba.

Mi duda es se puede añadir unos casos mas para por ejemplo en ciertos pins del arduino decirle activalo 4 segundos cuando haga el click y luego desactiva otra vez?

Seria para tener un boton para poner la persiana electrica en el centro de su recorrido, el delay no se cual seria eso lo veria cuando tenga la persiana montada.

Haber si un alma caritativa me puede modificar para que vea como seria. He echo alguna prueba y no me salgo con la mia y eso que me da la sensacion que es un fallo tonto smiley-lol


Gracias a todos por vuestra colaboracion!!

* srvidor_domotic_amb_eth_barata.pde (14.91 KB - downloaded 29 times.)
« Last Edit: February 11, 2011, 04:29:51 pm by comeollas » Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He estado trasteando, veo que no me funcionaba por culpa del buffer (lo averigue a base de leer por el antiguo foro, pero no entiendo muy bien de que va).

Para que me funcionase quite la web que escribe el arduino cuando pones su ip y asi me deja poner mas botones, sino no me dejava.

Estoy intentando poner un delay en alguno de los casos y veo que si pongo un delay de 1000ms realmente me hace esperar 3000ms es porque hago mal en ponerlo asi?

Este es el codigo para hacer que se enciendan los reles:

                    case 'K': //el caso K y L son los funcionales normales que van al instante si hago click en la web que me he echo
                            on_off6=1;
                           digitalWrite(SW6, HIGH);  // switch on LED6
                            break;
                    case 'L':
                            on_off6=0;
                           digitalWrite(SW6, LOW);  // switch off LED6
                            break;     
                     case 'M': //aqui simplemente quite el break y caso N poniendo un delay en medio.
                            on_off7=1;
                           digitalWrite(SW7, HIGH);  // switch on LED7
                           // break;
                     //case 'N':
                     delay(1000);
                            //on_off7=0;
                            digitalWrite(SW7, LOW);  // switch off LED7
                            break;

Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Que soluciones pueden haber?
Logged

0
Offline Offline
Full Member
***
Karma: 2
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

te dejo la misma versión del PDE pero modificada para que quede algo más clara:
- no le paso argumentos a la función print_webpage (son variable globales) así si modificas algo en el programa no tienes que estar cambiando la función.
- he quitado algún switch a cambio de ver variables analógicas
- le buffer lo he subido a 1600 (más de daba problemas)
- he puesto un debugger para ver si me paso o no en el tamaño del buffer

Me queda pendiente saber algo más de HTML. Si la página se hace más simple, se podrían ver más cosas.
En mi opinión es el mayor limitante

Estoy viendo otras liberías que haces más amigable programar la ethershield, pero cada una tiene sus "pijadas" y no hay tiempo para todo.

* switch_6_Paco.rar (3.53 KB - downloaded 19 times.)
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pues no utilizarlo o realizar la comunicacion cuando no tengas que contar tiempo. En la referencia de arduino hay algun documento sobre esto.

Amph, no entiendo a la que te refieres (piensa que soy un novato total smiley-razz)
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

te dejo la misma versión del PDE pero modificada para que quede algo más clara:
- no le paso argumentos a la función print_webpage (son variable globales) así si modificas algo en el programa no tienes que estar cambiando la función.
- he quitado algún switch a cambio de ver variables analógicas
- le buffer lo he subido a 1600 (más de daba problemas)
- he puesto un debugger para ver si me paso o no en el tamaño del buffer

Me queda pendiente saber algo más de HTML. Si la página se hace más simple, se podrían ver más cosas.
En mi opinión es el mayor limitante

Estoy viendo otras liberías que haces más amigable programar la ethershield, pero cada una tiene sus "pijadas" y no hay tiempo para todo.


No tienes problemas si utilizas todos los pins digitales? yo he modificado el pde que posteaisteis para controlar los pins 2 a 9 que estan libres de la duemilanove/uno y si no quito la web se queda pillado, haciendo una web externa puedo controlar todo bien, pero tengo el problema (solo es problema dependiendo de para que lo tenga que usar en el caso actual da igual, este proyecto solo sera para subir/bajar persianas y encender luces), tengo que mirar si toca la moral si pongo LDR's y LM35's para mirar temperaturas y otras funciones como abrir cerrar persianas cuando es de dia o noche, o le da el sol en verano/hinvierno.

Pero una cosa que me pica mucho ahora es el tema de usar RS o canbus (para mi aun es chino esto) porque veo que todo el mundo se decanta por alla y no se porque smiley-razz

Gracias a todos por vuestros aportes, poco a poco voy aprendiendo jejejeje
Logged

0
Offline Offline
Full Member
***
Karma: 2
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yo acabo de conectar el arduino haciendo un bus RS485 con el integrado MAX485 (2,5€).
el el PC uso un coversor RS232-RS485.
He usado varias aplicaciones para monitorizar los puertos. Tambíen he conseguido comunicar el arduino con un software comercial de medición de consumos de energía de Circutor (Power Studio). Esta parte es la que más tiempo me ha llevado, porque aunque funcionaba el bus, no comunicaban. El problema es el Power Studio solo usaba la función 4 para leer el Arduino y esa función no estaba implementada. En el PDE cambié la función 3 por 4 y todo ha ido muy bien.
La ventaja del Modbus es que con 2 hilos sin muchas historias puede comunicar equipos a mucha distancia. En donde trabajo tengo equipos Circutor a distancias de 400m en un ambiente industrial sin problema.
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yo acabo de conectar el arduino haciendo un bus RS485 con el integrado MAX485 (2,5€).
el el PC uso un coversor RS232-RS485.
He usado varias aplicaciones para monitorizar los puertos. Tambíen he conseguido comunicar el arduino con un software comercial de medición de consumos de energía de Circutor (Power Studio). Esta parte es la que más tiempo me ha llevado, porque aunque funcionaba el bus, no comunicaban. El problema es el Power Studio solo usaba la función 4 para leer el Arduino y esa función no estaba implementada. En el PDE cambié la función 3 por 4 y todo ha ido muy bien.
La ventaja del Modbus es que con 2 hilos sin muchas historias puede comunicar equipos a mucha distancia. En donde trabajo tengo equipos Circutor a distancias de 400m en un ambiente industrial sin problema.

Si se comunican con dos hilos, si el segundo aparato se estropea cae el tercero y cuarto? o el hilo va unido del inicio al fin y pueden estropearse los que sean que cuelgan de el sin afectar al resto?
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 24
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oye pacojarcia, ese sistema que usas de comunicación, se puede usar a su vez como alimentación también, o no ¿?

Y si estan todos en serie, si se cae uno, tira la comunicación del resto ?¿?

Un saludo
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

pacojarcia, molaria que hicieses una explicacion de tu proyecto con modbus, codigo, como has cableado,...
Podrias integrarlo en el blog en espanyol de Arduino, no??
Para dar un empujoncito al material en espanyol.... smiley-grin

Yo hace tiempo escribi esto sobre el RS485 en castellano => http://real2electronics.blogspot.com/2009/09/buses-de-campo-para-arduino-rs485.html

Es estructura de bus, por lo que si "rompes" dicho bus.... estas "muerto".
Lo de si se cae uno, no lo entiendo muy bien.....

Lo mejor es "actualizarse" a CAN, que tiene muchas mas ventajas, y no hay mucha diferencia de precio.



Salu2



Igor R.
« Last Edit: February 11, 2011, 06:32:52 pm by Igor R » Logged


0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es estructura de bus, por lo que si "rompes" dicho bus.... estas "muerto".
Lo de si se cae uno, no lo entiendo muy bien.....

Lo mejor es "actualizarse" a CAN, que tiene muchas mas ventajas, y no hay mucha diferencia de precio.

Salu2

Igor R.

Con lo de si se cae uno, me refiero a que si se quema el arduino del centro por ejemplo, deja de haber comunicacion con los que tiene detras.
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Segun lo que le pase al driver, que es el dispositivo que se conecta entre el Arduino y el bus.

Te pongo un diagrama como se cablea un bus CAN (que es similar al rs485):

Logged


0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, veo que van con "Y" asi que el cable que pasa de un arduino a otro no esta separado entre los dos extremos.

Tendre que estudiarmelo, por ahora se que cableando MAS (ethernet shield sin complicarme la vida pero tirando un cable a cada arduino) puedo hacerlo ahora lo que falta es intentar enteder como usar RS-485 o CAM que aun no tengo claro como funcionaria en una instalacion domotica ni que diferencias de programacion en el arduino habra.

Bufff, no se que hacer si quedarme con lo que estoy ahora o intentar cambiar mi "chip" y ir a por el bus.
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

FAQ de http://secuduino.blogspot.com/
esta todavia calentito!!! recien sacado del horno!!

Tambien puedes usar rs485/can para el control, y luego tener uno de ellos que tenga ethernet para monitorizar por web.

Si quieres tener varios modulitos distribuidos, lo mas sencillo a mi manera de ver es Can bus.
« Last Edit: February 11, 2011, 06:35:45 pm by Igor R » Logged


0
Offline Offline
Full Member
***
Karma: 1
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Una pregunta que no he echo podeis explicarme que mejoras hay con can o 485 a que use eth shield (aparte del tema de la facilidad del cableado).

Mi proyecto no es gran cosa, control de ventanas, puertas... algun sensor de movimiento, temperatura/humedad...

Logged

Pages: [1] 2   Go Up
Jump to: