Autor Tema: PROYECTO - Control integral del agua domiciliaria  (Leído 17785 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
PROYECTO - Control integral del agua domiciliaria
« en: 16 de Abril de 2009, 12:22:40 »
Bueno gente, sé que sobra experiencia en el foro y hay ciertas cosa que me están trabando para continuar con un proyecto que estoy haciendo y de a poco voy a subir como otros tantos acá.

Todos sabemos lo importante que es el tema del agua y en el norte, de donde yo soy Chaco - Norte de Argentina (aunque no vivo ahí, si mi familia).

A saber:
-Un maestro que se ubica el panel de control y recibe los datos de 4 esclavos (puede variar según las necesidades). Controla  la bomba, el antibacterias UV, riego, muestra los datos y permite el cambio de variables.
-Un esclavo en el tanque que controla, nivel de agua, turbiedad y temperatura del agua para hacer eficiente el uso del agua en invierno y verano.
-Un esclavo en la cisterna que controla el nivel, la turbiedad y el control de una electro-válvula.
-Un esclavo que controla el nivel del aljibe y solo se usa para que el riego del patio por ejemplo. Opcional si se tiene.

Hardware a priori:

Maestro:
   Pic 18F2553 o 18f4550 (por ahora el primero)
   LCD de 2 líneas x 16 caracteres
   Sensor de temperatura LM35 - Para temp. ambiente
   DS 1302 - RTC (real time clock)
   MAX 487  - Serie - RS485 Transceiver
   4 botones (arriba, abajo, enter y escape)
   Leds de señalización
   Buzzer

Esclavo - Tanque
   Pic 18F2553 o 16F o 12F, cualquiera que tenga Rs232
   Sensor de temperatura LM35 - Para Temp. del agua de tanque
   Sensor de presión  mpx2051  - 50Kpa (cada 1 metro de columna de agua son 10 Kpa)
   Turbidímetro fabricado con tecnología IR (infra roja) - Sacado de un trabajo de la UTN de Posadas
   MAX 487  - Serie - RS485 Transceiver
   Led de funcionamiento

Esclavo - Cisterna
   Pic 18F2553 o 16F o 12F, cualquiera que tenga Rs232
   Sensor de presión  mpx2051  - 50Kpa (cada 1 metro de columna de agua son 10 Kpa)
   Turbidímetro fabricado con tecnología IR (infra roja) - Sacado de un trabajo de la UTN de Posadas
   Electro-Válvula Jefferson 40 BARs. (igual a bloqueo de una columna de 40 metros de alto, más que suficiente)
   MAX 487  - Serie - RS485 Transceiver
   Led de funcionamiento

Esclavo - Aljibe
   Pic 18F2553 o 16F o 12F, cualquiera que tenga Rs232
   Sensor de presión  mpx2100  - 100Kpa (cada 1 metro de columna de agua son 10 Kpa)
   MAX 487  - Serie - RS485 Transceiver
   Led de funcionamiento

Esclavo - Bombas
   Pic 18F2553 o 16F o 12F, cualquiera que tenga Rs232
   Sensor de corriente de motor en cada bomba
         Para controlar el arranque y que no tomen demasiada corriente.
         Un solenoide caserito bien filtrado (por bomba) es suficiente y barato.
   Relés de potencia (10 A o más dependiendo las bombas - ver placa motor y multiplicar la In (corriente nominal por 3)
   MAX 487  - Serie - RS485 Transceiver
   Led de funcionamiento

Cada Sensor mpx va ubicado en el tope de un caño de PVC de 1 pulgada (para resistencia mecánica)
La presión se mide por diferencia de presión (diferencial). O sea, el agua va creciendo por afuera del
caño de PVC y adentro lo que crece es la presión.


__|_|_|__
|           |   Sensor MPX2xxx
|______ |
|           |
|           |
|           |
|           |
|           |
|           |
|           |
|           |
|           |
|           | ----
|           |      | Turbidímetro y sensor de temperatura (al fondo del caño)
|           | ----

Además en el tanque que es lo más crítico como seguridad se coloca un flotador con corte a boya por si hay un problema
Este se coloca de tal forma que corte unos pocos cm después del sensor de presión por si fallara.
También se pueden agregar otras cosas que supongo a los que lean esto se les ocurrirá como una conexión para PC y no sé si ethernet para control por internet (esto último a futuro en su caso)..
Pero como dice la filosofía KISS (Keep It Simple and Stupid) o sea no la compliquemos mucho al principio.

Cosas a tener en cuenta:

El sensado de la temperatura - Exterior - Tanque y Cisterna es importante para 2 cosas.
1- Optimizar el uso de Gas o Electricidad en el calentamiento del agua (excepto se tenga tanque con calefón solar). Inclusive se puede hacer un lazo de control Panel de Control - Calefón (o termotanque) a tal fin.
2- Optimizar el riego ya que con mucho calor el agua se evapora y no es eficiente, y con mucho sol si se tienen aspersores, las hojas se queman con el efecto lupa de las gotas.

El sensado de la turbidez además de ser obvio para saber lo que estamos consumiendo, es útil para programar un limpiado de tanque por ejemplo haciendo que el tanque se vacíe automáticamente  y luego se bombee de a pocos litros y se vacíe nuevamente. Repitiendo este ciclo algunas veces se logra remover los depósitos en el piso del tanque (habría que ver la disposición de los picos de carga para que el agua logre "barrer" todo el fondo cuando cae).

El control del bactericida UV es algo simple ya que se conecta cuando el agua se está bombeando. Hablando con un especialista también recomienda colocar uno en la bajada pero aquí no hay mucho para controlar si así fuera, solo dejarlo encendido siempre (un sensor de flujo de agua es muy caro jaja).

Para los que no dispongan la posibilidad de adquirir un sensor MPX por su precio les digo que pueden pedir muestras gratis a freescale (www.freescale.com) o en su defecto hacer (y esto lo tengo andando en otro tanque) algo discreto con finos alambres de acero inoxidable a diferentes alturas con el común abajo de todo. El agua hace de contacto entre los cables y con cada uno entran en el A/D del pic, fijan una barrera de activo/no activo (por el ruido) y ya tienen un sensor de nivel. El inconveniente es que para cada tanque una longitud diferente y no van a saber con exactitud el nivel del agua, sino aproximada y discreta. Digamos, a mayor cantidad de señales de entrada (y los Pics no tienen infinitas, jeje) mayor precisión, pero bueno, queda a criterio la necesidad de saber si tengo 623 litros en el tanque o "entre 600 y 650".

El RTC es importante ya que va a permitir llevar un control del consumo, SI! del consumo de agua, y con ello otras cosas como saber si no está pinchado algún caño que va por debajo del domicilio o si el medidor de agua está midiendo mal (el de la calle para los que tienen). Con esto vamos a tener una estadística que a priori la separé en conocer el consumo: Por Día, Por Semana, Por Mes y Por Año. No se necesitan muchos registros para esto en la EEPROM ya que no se guardan toooodos los días, sino los 7 últimos, 4 semanas, y 12 meses. Si quieren le agregan 50 años, da igual, alcanza la EEPROM.


Bueno espero haya gente interesada y podamos hacerlo funcionar.
« Última modificación: 16 de Abril de 2009, 12:41:24 por zagoaristides »
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #1 en: 16 de Abril de 2009, 12:36:04 »
La primera rta. me la hago sola y a modo de petición.

El tema es que con este Pic 18F2553 que he cambiado porque antes usaba el 16F876 dado que no me alcanzaba la memoria La primera rta. me la hago sola y a modo de petición.

El tema es que con este Pic 18F2553 que he cambiado porque antes usaba el 16F876 dado que no me alcanzaba la memoria porque hay varios menúes y cosas que ocupan mucha RAM, no puedo hacer que funcione la comunicacion entre pics.
Quiero usar una red RS485 ya que básicamente es un control de agua de tanque, sisterna domiciliaria y aljibe.

Pongo 2 códigos que traté de usar y no me funcionaron. El tema es que el 18F2553 parece no interrumpirse cuando le llega algo por el puerto. He logrado que si reciba cuando pongo un Virtual Terminal, pero no con otro pic la !"$/!)!#($*¨#

Una de las librerías (que está en el archivo Simu2 2553.rar) la saqué del foro y funciona para el 18F que ocupa, pero no para el 2553, así que espero la ayuda para seguir adelante.
La otra (la Simu3.rar) es la que trae CCS solo que le cambié la dirección de esclavo a 0x01.


En fin espero que los genios que andan por acá me ayuden.

-------------------------------------------------

Ci vediamo dopo amici!!!
« Última modificación: 16 de Abril de 2009, 12:49:25 por zagoaristides »
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #2 en: 16 de Abril de 2009, 12:36:15 »
La segunda rta. me la hago sola y a modo de información!

3 cosas


a-Me acaban de avisar que me llegaron los MPX.
b-Compré también alambre de acero inoxidable para mostrarles como hacer si no pueden conseguirlos así que estoy como loco para seguir.
c-Ya tengo bastante avanzado el menú básico del Maestro con la toma de temperatura ambiente, guardado de datos (consumos, etc).

-------------------------------------------------

A dopo amici!!!


« Última modificación: 16 de Abril de 2009, 12:45:45 por zagoaristides »
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #3 en: 16 de Abril de 2009, 14:54:50 »
Hola.

Interesante tu proyecto. Una pregunta: Los modulos esclavos van a retornar alguna informacion? o solo van a operar segun el comando que les envie el maestro.

Saludos
El papel lo aguanta todo

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #4 en: 16 de Abril de 2009, 15:47:41 »
Hola.

Interesante tu proyecto. Una pregunta: Los modulos esclavos van a retornar alguna informacion? o solo van a operar segun el comando que les envie el maestro.

Saludos

Bueno eso puede quedar a criterio del uso. Pero a priori te diría que deberían enviar información de 2 tipos: Cada X tiempo información de datos que muestra la pantalla de control principal y estadísticas. Y solo si pasa algo crítico información no solicitada como: a-Se trabó una bomba o no arrancó. b-El sensor de presión no funciona (se activó el nivel máximo por boya).

Pero lo que me traba ahora es la maledetta comunicación RS 485, hace 10 días que estoy con eso, sino ya estaría re avanzado.

Salutti...
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #5 en: 16 de Abril de 2009, 16:39:58 »
Hola.

La comunicacion no es complicada, lo que debes definir es el protocolo a seguir, cada uno de los esclavos debe tener un identificador y el orden de envio-recepcion de informacion debe ser gerarquico, es decir, es el modulo maestro el que debe gestionar toda la informacion y habilitar al modulo esclavo para que responda en el momento adecuado.

Si no hay un orden en el manejo de las tramas de informacion, la red de comunicaciones te entrara en conflicto.

Un ejemplo para un envio podria ser: B1?!
B: Identificador del esclavo encargado de las bombas
1: Modulo de la Bomba 1.
?: Preguntar estado de la bomba 1.
!: Final de envio.

Ya con esa trama, el modulo que cumpla con esos identificadores respondera el estado con una trama similar, pero enviada al modulo maestro.

Saludos.
El papel lo aguanta todo

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #6 en: 16 de Abril de 2009, 17:15:41 »
Hola.

La comunicacion no es complicada, lo que debes definir es el protocolo a seguir, cada uno de los esclavos debe tener un identificador y el orden de envio-recepcion de informacion debe ser gerarquico, es decir, es el modulo maestro el que debe gestionar toda la informacion y habilitar al modulo esclavo para que responda en el momento adecuado.

Si no hay un orden en el manejo de las tramas de informacion, la red de comunicaciones te entrara en conflicto.

Un ejemplo para un envio podria ser: B1?!
B: Identificador del esclavo encargado de las bombas
1: Modulo de la Bomba 1.
?: Preguntar estado de la bomba 1.
!: Final de envio.

Ya con esa trama, el modulo que cumpla con esos identificadores respondera el estado con una trama similar, pero enviada al modulo maestro.

Saludos.

Mirá, te juro que me leí todo del protocolo y busqué info del micro por todos lados (foro CCS de arriba a abajo y nada me sirvió). Entiendo todo perfectamente. Soy ing. electrónico, lo cual no dice mucho, pero si que amo hacer cosas y eso si dice que no me doy por vencido. Pero, no es eso, sé como debe ser la comunicación. Lo único es que.... no funciona!!!!, probé de mil formas, no lo pude hacer andar (si con otros pics). Y estoy seguro que es algo del "ese" pic o por supuesto sino algo que hago mal. Pero los códigos me los hice paso a paso mil veces a todos los que encontré y los que entiendo perfectamente (llámese librerías de 3eros, del compilador CCS, de montoto, etc). Por eso necesito alguien con experiencia en el tema de los fusibles y demás porque presumo por ahí anda.

Abraccio e grazie mille!



P.D. por cierto esa especie de librería para un relé que es lo mismo que citás vos es recontra simple, bueno tampoco la pude hacer andar con este endemoniado PIC.
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #7 en: 16 de Abril de 2009, 18:29:45 »
Revisaste si no hay algun modulo que usa los mismos pines de transmicion o recepcion??
Hay algunos modelos que tienen el SPI compartido en el UART.
Usar la comunicacion del master por software es un suicidio, ya que debe detectar el inicio de la recepcion por interrupcion, si no te va a ir mal.
Insisto en que esto es para CANBUS... :lol: :lol:
Igual yo usaria Modbus para comunicarlos.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #8 en: 16 de Abril de 2009, 22:11:39 »
Revisaste si no hay algun modulo que usa los mismos pines de transmicion o recepcion??
Hay algunos modelos que tienen el SPI compartido en el UART.
Usar la comunicacion del master por software es un suicidio, ya que debe detectar el inicio de la recepcion por interrupcion, si no te va a ir mal.
Insisto en que esto es para CANBUS... :lol: :lol:
Igual yo usaria Modbus para comunicarlos.

Si te fijás en el código puse: setup_spi(False) y también probé con setup_spi (SPI_SS_DISABLED);
Y uso interrupción por hard no por soft uso por hard y no entiendo que querés decir con comunicación por software. Mirá el código porque por ahí hay algo que no te entiendo.
En fin, naranja fanta.
Alguien que la tenga clara con este protocolo y lo simule bien en proteus sería bueno.

Gracias.

Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #9 en: 17 de Abril de 2009, 00:04:32 »
Lo unico que veo de raro es que el modulo del 876 es USART, mientras que el de este otro micro es EUSART (Enhanced USART).
Deberias ver que diferencia tienen entre si...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #10 en: 17 de Abril de 2009, 00:57:24 »
Hola.

Pues en si la comunicacion por RS485 es la misma que la de cualquier serial, solo que hay que tener en cuenta los habilitadores de transmision y de recepcion.

Mira el siguiente hilo: Control del un malacate por RS485. Esta simulado y corre bien.

Lo de los fusibles es segun el cristal que uses, eso esta explicado en el datasheet de cada micro en cuestion. Por ejemplo: si usas un cristal de 4MHz, colocas #fuses XT,... y ademas debes definir el reloj interno del sistema: #use delay(clock=4M) y listo. Los otros fusibles de programacion son para indicar otras cosillas como si se puede progamar con voltajes bajos -LVP- o si se deja sensible al reset con las caidas de tension -BROWNOUT- o si quieres activar el perro guardian -WDT- si quieres proteger tu codigo -PROTECT- si quieres que al encender la alimentacion haya un tiempo extra mientras se estabilice la fuente -PUT-

Saludos
El papel lo aguanta todo

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #11 en: 17 de Abril de 2009, 11:09:18 »
Hola.

Pues en si la comunicacion por RS485 es la misma que la de cualquier serial, solo que hay que tener en cuenta los habilitadores de transmision y de recepcion.

Mira el siguiente hilo: Control del un malacate por RS485. Esta simulado y corre bien.

Lo de los fusibles es segun el cristal que uses, eso esta explicado en el datasheet de cada micro en cuestion. Por ejemplo: si usas un cristal de 4MHz, colocas #fuses XT,... y ademas debes definir el reloj interno del sistema: #use delay(clock=4M) y listo. Los otros fusibles de programacion son para indicar otras cosillas como si se puede progamar con voltajes bajos -LVP- o si se deja sensible al reset con las caidas de tension -BROWNOUT- o si quieres activar el perro guardian -WDT- si quieres proteger tu codigo -PROTECT- si quieres que al encender la alimentacion haya un tiempo extra mientras se estabilice la fuente -PUT-

Saludos

Ya me leí todo lo que existe en el foro, en este y en de CCS. Primero no hay casi nadie que haya usado este micro y por ahí puede andar el tema. Ayer probé con el 4550 y tampoco. Hoy voy a probar de nuevo, pero ya van 10 días. Nunca, nunca me detuvo algo tanto. Lo de los fusibles me lo leí también, por lo menos lo que encontré. Cuando pido ayuda es porque ya probé de todo, las solución tal vez sea algo tonto, pero no lo veo y me pone mal. Y elijo este protocolo porque quiero simular la cosa. Las cosas de CAN que compré en CCS todavía no me llegan así que no me largo con algo que no sé y prefiero practicar y aprender bien algo antes de pasar a otra cosa.

La simulación es muy fácil, debe ser algún problema de timing, voy a seguir probando. Qué lo parió!
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #12 en: 17 de Abril de 2009, 11:36:24 »
Hola.

Pues para el 4550 la vaina no cambia mucho, es resencillo, lo unico que hay que tener en cuenta es el diagrama para el manejo del clock que da el datasheet -pag.24-.

Yo he usado el RS485 con el 18F4550 con los siguientes fusibles:
#fuses XT,NOWDT,PROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN,FCMEN,PUT
#use delay(clock=4000000)

Tranquilizate un poco, respira hondo, hay veces que de la desesperacion hacemos las mismas cosas varias veces pensando que cambiamos algo. No desesperes. Ten paciencia, no siempre nos va a salir a la primera, mira el lado bueno: vas a aprender mas al terminarlo!

Saludos
El papel lo aguanta todo

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #13 en: 17 de Abril de 2009, 11:49:32 »
Adhiero a lo que dice MLO.
Si todo nos saliera en el primer intento yo tendria 400 hijos... :D :D :D

Las familias 16F y 18F tienen muchos cambios encubiertos, hay que revisar muy bien las hojas de datos antes de poder lograr el mismo objetivo.
Yo mude desde 16F876 a 18F252 y tuve que realizar muchos cambios, tambien sostengo que deberias revisar los fuses, especialmente el WDT, si es posible hasta que funcione deshabilitalo completo. :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: PROYECTO - Control integral del agua domiciliaria
« Respuesta #14 en: 17 de Abril de 2009, 11:51:11 »
Si todo nos saliera en el primer intento yo tendria 400 hijos... :D :D :D

 :D :D :D :D
El papel lo aguanta todo