Net@Home

domingo, julio 31, 2005

A la espera...

LLevo varios días sin avanzar demasiado en lo que al proyecto se refiere. Esto es debido a la falta de subvenciones por el momento con las cuales empezar a poner en marcha el proyecto a nivel práctico. Por el momento, serían necesarios unos 200€ para llevar a cabo todo lo desarrollado hasta el momento, hasta entonces, no será posible continuar con el proyecto. Me he puesto en contanco con varias empresas/organizaciones y estoy a la espera de alguna respuesta, aun que por el momento no han sido demasiado favorables, a excepción de Niple, pero como ya he dicho, estoy a la espera de algunas respuestas.

sábado, julio 23, 2005

MPLAB da el visto bueno


A día de hoy, ya puedo decir que el código de lo que al módulo central se refiere, el que controla luz, inundaciones, etc.., ya esta compilado con MPLAB y no me ha devueltoningún error por el cual no se pudiera llevar a cabo la operación :)

jueves, julio 21, 2005

Circuito SitePlayer (recto)


He aqui el mismo circuito que publiqué ayer pero esta vez con el 80% de las lineas medianamente rectas, cosa que se agradece bastante de cara a interpretarlo :)

SitePlayer en mis Favoritos

Aquí dejo una copia de las URL que tenía guardadas en mis favoritos relacionados con el SitePlayer..., esta ira creciendo con el tiempo, faltan muchas puesto que muchas no son más que documentos PDF, y terminaba por descargarlos. Vale la pena echarles un vistazo ^^

Code Siteplayer UDP and Serial test page
http--www.eckermann.com.au-security.pdf
http--www.google.es-urlsa=U&start=58&q=http--www.eix.co.uk-Ethernet-&e=747
http--www.ponsphere.org-projects-siteplayerbasic-siteplayer carrier board.pdf
JJ 2.2 - 192.168.168.16
Refrigerating the Web
Resultados Google para Imagen http--home.nycap.rr.com-nafis-siteplayer-DCP03895.jpg
Resultados Google para Imagen http--www.circuitcellar.com-library-print-0203-cantrell151-2302003%20p2.jpg
SitePlayer Carrier Schematic
SitePlayer web server projects
Slide Show for album Siteplayer mini web servers
Solare termico e fotovoltaico, eolico , energie rinnovabili
The uIP TCP-IP Stack for Embedded Microcontrollers
Using the SitePlayer to pass serial data through html
Web Server building blocks
WebIO Prototypes
World's tiniest (and cheapest) webserver
x10webserver
http://www.ringolake.com/pic_proj/Siteplayer/siteplayer_232.PDF

miércoles, julio 20, 2005

Circuito SitePlayer

A estas horas, en lo único que uno piensa es en dormir, por lo que ruego me disculpen por la brevedad en la que he llevado a cabo este circuito y por los resultados que saltan a la vista :$
El conector RJ45 empleado es el ya anteriormente comentado. Utilizando un MAX232 pasamos los niveles TTL a niveles RS-232 y a la inversa, con lo que podríamos programar el módulo in-situ. El coste de todo el circuito incluyendo el SitePlayer y el rectificador 7805 no creo que ascienda a más de 35€ por lo que es una solución muy rentable y práctica :) . Como se puede observar ya esta colocado en su correspondiente pin el led que nos indicará si el módulo ha establecido conexion con la red. En lo que al led de alimentación se refiere, este estará emplazado en el mismo circuito del rectificador.

Regulando el voltaje (LM7805)

Este circuito integra un regulador de voltaje, un LM7805, donde 05 es el voltaje de salida, en este caso 5V, que es el voltaje necesario para alimentar el SitePlayer o el microcontrolador, en este caso un 16F877.
Por este entrara una tensión de 12V, y obtendremos de salida los 5V necesarios. El LM7805 acostumbra a calentarse bastante (lo digo por experiencia, ya he tenido algún percance :P) por lo que se le puede montar un disipador con tal de evitar que este se sobrecaliente. El LM7805 tiene un orificio, el cual podemos utilizar para atornillarle un disipador con tal de reducir el calor y evitar asi que se sobrecaliente.

Conector RJ45 (LF1S022)

Este es el conector RJ45 que ira incorporado en la placa base para el SitePlayer. Este se caracteriza frente a un conector RJ45 normal y corriente en que ya tiene la impedancia y los filtros necesarios como para ser conectado directamente al módulo SitePlayer sin tener que utilizar ningun componente adicional, lo que supone un montaje en un espacio más reducido y más comodidad de cara a soldar los componentes :)

PB SitePlayer

He encontrado por Internet un circuito en el cual basar la placa base del SitePlayer para mi desarrollo. Esta tiene lo mínimo e imprescindible para que el SitePlayer funcione, un conector RJ45, un rectificador LM7805 para pasar de los 12V que alimentan a todo el circuito a los 5V que necessita el SitePlayer, un jumper que haces las veces de conmutador, el cual substituire por un interruptor de palanca :) y un led que indica cuando el módulo está alimentado.
Modificaciones:
Habrá que añadir un MAX232 y un conector DB9 hembra para asi poder programar el módulo directamente desde la placa base, para ello habrá que utilizar los pines RX y TX del SitePlayer.
Luego, en el circuito se ha despreciado un pin que nos puede ahorrar muchos dolores de cabeza, el que he señalado como Led LINK, este nos informa de cuando el SitePlayer ha establecido una conexión correcta con la red, por lo que habrá que añadir un LED en ese pin con tal de que cuando la conexión con la red sea correcta, este se encienda :)

martes, julio 19, 2005

Componentes más comunes de la electrónica

Microcontrolador:

En el fondo no es más que un ordenador de pequeñas dimensiones, en el cual hay cargadas unas instrucciones, un programa, que va ejecutanto paso por paso. La mayoría de esas patitas las utiliza para interactuar con el medio exterior, por las cuales entran y salen datos en forma de 1 y 0 (lenguaje binario). Estos estan formados en su mayor parte por silicio. Los fabricantes más comunes son Microchip, Atmel, Motorola y Philips.

Resistencia:
Estas no son más que una bobina cuya función es reducir la intensidad que pasa por un equipo con tal de proporcionarle la necesaria y no más, caso en el cual el equipo podría llegar a sufrir daños muy graves. La resistencia de estas se mide en Ohmnios (Ω)
Condensador:
Acostumbraremos a verlos de dos tipos, electrolíticos (como el de la fotografía) y cerámicos. La principal diferencia entre estos dos es que los electrolíticos estan polarizados (tienen un polo positivo y uno negativo, los cuales no se pueden invertir y tienen una posición concreta dentro del circuito para el buen funcionamiento del mismo) y los cerámicos no.
Si sometemos a estos a una diferencia de potencial, estos adquieren una determinada carga eléctrica.
La capacidad de estos se mide en Faradios (F)
Led o diodo electroluminiscente:
Como su nombre bién dice, este es un diodo que se caracteriza por iluminarse cuando pasa corriente eléctrica por su interior.
Tiene dos polos, es decir, está polarizado, por lo que debemos colocarlo en posición correcta para que asi ceda a la energía eléctrica y se ilumine. En caso contrario, este no se iluminara y no pasará corriene eléctrica por su interior.
Cristal de cuarzo:
En el fondo, este no es más que un "reloj". Este posee un cristal de cuarzo encapsulado que vibra XX veces por segundo. Conectado a un microcontrolador, este le proporciona una frecuencia de trabajo para que asi el microcontrolador sepa con que frecuencia debe ejecutar cada instrucción.

¿Qué es WAP?

WAP (Wireless Application Protocol)
WAP es un protocolo basado en los estándares de Internet que ha sido desarrollado para permitir a teléfonos celulares navegar a través de Internet. Con la tecnología WAP se pretende que desde cualquier teléfono celular WAP se pueda acceder a la información que hay en Internet así como realizar operaciones de comercio electrónico.

WAP es una serie de tecnologías que consisten en: WML, que es el lenguaje de etiquetas, WMLScript es un lenguaje de script, lo que vendría a ser JavaScript y el Wireless Telephony Application Interface (WTAI)

Las características principales de WML son:

  • Soporte para imágenes y texto, con posibilidad de texto con formato.
  • Tarjetas agrupadas en barajas. Una pagina WML es como una página HTML en la que hay una serie de cartas, al conjunto de estas cartas se les suele llamar baraja.
  • Posibilidad de navegar entre cartas y barajas de la misma forma que se
    navega entre paginas Web.
  • Manejo de variables y formularios para el intercambio de información entre
    el teléfono celular y el servidor.

WML es un lenguaje de marcas similar al HTML. WML es compatible con XML 1.0. Las páginas WML son llamadas barajas ya que están compuestas por cartas, un navegador WAP, solo puede mostrar un carta al mismo tiempo.

Extraído de: http://www.webestilo.com/wml/

A trabajar con SitePlayer

Bueno, pues tras pasar horas y horas leyendo documentación, he decidido implementar el módulo SitePlayer a mi proyecto, el cual va a "sufrir" un par de modificaciones.
He decidido utilizar SitePlayer por:
  • La gran cantidad de documentos que he encontrado acerca de él
  • La simplicidad de su uso
  • Su bajo coste
  • Su reducido tamaño
  • Pero sobre todo por su bajo coste y lo bién documentado que está :)

Modificaciones que va a sufrir el proyecto:

  • El orden de prioridades cambia, a partir de ahora le doy prioridad a el módulo de comunicación (SitePlayer) y a su desarrollo puesto que desde mi punto de vista va a ser el punto fuerte del desarrollo.
  • La web almacenada en el SitePlayer no solo será accesible desde un navegador de internet normal y corriente, sino que está también será accesible desde un teléfono móvil con GPRS gracias al estandar WAP.
  • Desde la página web almacenada en el SitePlayer no solo podremos conocer el estado actual de las instalaciones, si no que también podremos interactuar con ellas (encender/apagar luces, calefacción, etc...)

Posiblemente termine por no incluír un teclado matricial en el módulo, puesto que la función principal de este era la activación/desactivación de un sistema interno de seguridad (una alarma), pero he encontrado un par de alternativas que por el momento no tengo la seguridad de que esten a mi alcance, las cuales podrían substituir por completo la función del teclado matricial y el nivel de seguridad es mucho más elevado. Más adelante si logro hacerme con alguna de ellas daré su nombre y características.

domingo, julio 17, 2005

Siteplayer VS Xport

He empezado a pensar como incormporar la interfaz web al módulo. El objetivo no es una simple conversión de señal de RS-232 a TCP/IP, lo cual nos sería util en el caso de que lo que quisieramos fuera enviar datos desde nuestro módulo a otro equipo de la Red/Internet, el objetivo es desarrollar un módulo que retenga la información que reciba desde el sistema principal, la interprete, y la muestre en forma de página web, pero no se acaba ahi, el objetivo final es poder llegar a controlar ciertas funciones desde la misma página web, como podría ser el encendido y el apagado de la calefacción. Para llevar a cabo esta tarea, he encontrado dos dispositivos que a mi parecer creo que son los más apropiados para esta función, estos son el SitePlayer y el Xport. Cada uno de ellos destaca en algún aspecto frente al otro.


  • Bastante documentación disponible
  • Precio (Oferta actual 29'95$)
  • Soporte para hasta 8 relés por módulo
  • Sintaxis de programación relativamente sencilla
  • 48Kb para páginas Web

  • Xport
  • Tamaño muy reducido
  • Soporte para red 10/100Mb
  • 384Kb para páginas Web
  • Conector RJ45 encastrado

Estado actual del desarrollo

Como bién se puede observar, en el esquema de conexiones anteriormente publicado existe alguna que otra falla como para la comunicación RS-232 solo he dispuesto un conector en el pin TX (es el RC6) y no para el RX (que es el RC7).
En lo que a nivel de código desarrollado se refiere, ahora mismo este ya dispone de interfaz con el LCD de 20x4 retroiluminado y un tecladomatricial de 3x4. Reacciona ante fugas de agua cerrando la electóválvula de paso general hasta que el usuraio mediante un pulsador ordena rearmar la válvula. En caso de lluvia, este verifica si las ventanas estan abiertas, y en tal caso, las cierra hasta que deje de llover, momento en el cual volverá a abrirlas a no ser que el usuario se asuetnte durante una larga temporada de casa, en tal casa este puede desactivar el sistema de apertura y cierre automático de las ventanas con tal de evitar robos, suciedad, etc... El módulo también ya está capacitado para reaccionar según sea de día o de noche, momento en el cual este encenderá las luces deambiente del jardín.
A través del teclado matricial de 3x4, tendremos la posibilidad de activar todos los sistemas de seguridad de la casa como pueden ser alarma ante la apertura de cualquier ventana, o entrada en la infraestructura si introducir la clave durante un tiempo previamente establecido.
Desde el LCD también podremos comrpovar el estado del sistema y su correcto funcionamiento además del estado de los sensores.
Está en proceso el desarrollo de la interfaz por control mediante WWW y la finalización del riego automático utilizando el PCF8583, un reloj de tiempo real.

sábado, julio 16, 2005

Circuito actual

viernes, julio 15, 2005

Haciendo números...

Vamos a hechar cuentas del presupuesto que necesitaremos para llevar a cabo de forma física todo lo ya mencionado. Precios aproximados...

  • PIC 16F877 --> 9€
  • PB para el 16F877 --> 20€ (por si acaso)
  • LCD azul retroiluminado --> 30€
  • Teclado matricial 3x4 --> 6€
  • Un segundo LCD sencillo --> 20€
  • 4 motores CC --> 12€
  • Cableado --> 6€
  • FA 12V 2Amp --> 30€
  • Adaptador para TE-20 (40 pines) --> 8€

Total: 141€...

Y esto sin tener en cuenta el módulo de comunicaciones TCP/IP y sensors varios (pendiente de esponsorización). Los precios son tirando un poco a lo alto para luego no encontrarme con sorpresas :(

Hasta que no disponga de el presupuesto necesario, no podré llevar a cabo todo lo ya desarrollado de manera física, por lo que paciencia...

jueves, julio 14, 2005

PCF8583

He incorporado al proyecto un reloj de tiempo real, a través del cual el módulo será consciente de la hora actual y actuar en consecuencia. Por ahora su función principal es la de activar el riego automático cada día a las 01:00 horas durante una hora, hasta las dos.
El pin siete siempre está en alto (5V+) hasta que surge una alarma, en tal caso, este pin se pone a nivel bajo (0V) hasta que la temporización de la alarma finalice, en este caso la temporización es de 1H.
Su frecuencia de trabajo es de 32.768kHz y se comunica por bus I2C.

Teclado matricial 3*4


Este es el aspecto del teclado matricial, con el cual poder activar desactivar ciertas funciones y el cual pretendo utilizar para activar/desactivar una alarma, la cual no solo controla que nadie ageno a la instalación entre en ella, si no que además su función será la de cerrar gas, luz, etc... en que salgamos de casa, con tal de disminuir el consumo eléctrico y evitar cualquier riesgo.
Este consume 7 pines, 3 para cada columna y 4 para cada fila.
la insercción de códigos será del tipo
123#
Utilizando así la almoadilla para la ejecución del código, y en caso de la insercción de un código erróneo, utilizar el * para empezar de nuevo.
Procurare que la visualización de la insercción de códigos también sea a través del LCD anteriormente comentado, con tal de ahorrar dinero y pines. Su precio aproximado son unos 6€

LCD 4*20 Retroiluminado azul HD44780

Este es el aspecto del LCD que pretendo incroporar al proyecto, sus características deberán ser:
  • 4 lineas de 20 dígitos cada una
  • Retroiluminado de color azul
  • Compatible con el modelo HD44780

La función principal de esteserá informar del correcto funcionamiento de todo el módulo, por ahora las funciones ya incorporadas son:

  • Control de fugas
  • Ventanas abiertas o cerradas
  • Iluminación exterior on/off

Este esta configurado a 4 bits con tal de ahorrarnos el tener que utilizar 4 pines más para controlarlo. Su precio aproximado, unos 30€, el precio es un poco alto a causa de la retroiluminación de fósforo azul, pero se agradece a la vista :)

Conexionado de los pines 16F877

Comunicación RS-232

He incorporado al proyecto la tarea de ir enviando por RS-232 utilizando USART el estado de diferentes sensores como puede ser si llueve o no llueve y si hay inundaciones o todo funciona correctamente.
Por ahora he descartado el teclado matricial pese a que ya tengo los puertos necesarios reservados para su futura incorporación.
En lo que al LCD se refiere. al poner en marcha todo el módulo, este muestra un mensaje de bienvenida y pasados 3 segundos ejecuta todo el código hasta llegar al final, donde el LCD pasa a informar del estado de todo el sistema. Una vez hecho esto, se vuelven a iniciar todas las tareas de comprobación del correcto funcionamiento del sistema, y en caso de que algo no sea correcto, el sistema actúa instintivamente y procede a continuar con las instrucciones.
Futuras incorporaciones:
  • Teclado matricial
  • Riego automático periódico (otro PIC mucho más sencillo)
  • Sistema de alarma (en proyecto actual)
  • Cierre de luces internas y fogones en caso de activació de alarma, caso en el cual se da por hecho que el usuario se habrá ausentado.

Cambio de microcontrolador --> 16F877


Debido a la necesidad de incorporar un teclado matricial de 3x4 y un LCD de 4x20, puesto que casi no me quedaban pines disponibles, he decidido utilizar un microcontrolador de prestaciones similares pero con más E/S. Para ello he elegio un PIC 16F877 cuyas ventajas frente al 16F876 son:

  • 33 pines configurables como E/S contra 22
  • Misma memoria (8Kb)
  • 8 canales A/D contra 5 (cosa que en este caso no me reporta ningún beneficio)
  • 14 interrupciones contra 13

Como se puede observar, el punto fuerte de este microcontrolador es el número de pines configurable como Entradas/Salidas. Para programarlo es posible utilizar el mismo programador, un TE-20, pero será necesario fabricar un adaptador. Por lo que a lo que ya llevaba hecho del proyecto y puesto que la estructura de los dos microcontroladores es muy similar, niple me permite importar el proyecto para utilizar elnuevo microcontrolador sin perder nada de lo ya hecho hasta ahora :)

miércoles, julio 13, 2005

Parte del código ya generado... =)

Gracias al entorno de desarrollo para microcontroladores de la serie 16F87X que me proporcionó Niple ya está generado el código para el control de:
  • En caso de fuga de agua el microcontrolador cierra una la bomba que proporciona agua a toda la infraestructura hasta que no se cumplan dos condiciones
  1. Que el sensor de humedad ya no detecte agua
  2. Que el usuario presione un pulsador conforme quiere volver a accionar la bomba de agua.
  • En caso de que el nivel de luz ambiental sea bajo, el microcontrolador acciona ciertas luces como pueden ser las del jardín. Cuando el nivel de luz ambiental vuelva a ser suficiente, este apaga las luces.
  • Si llueve y las ventanas están abiertas, el microcontrolador ordena cerrarlas hasta que la lluvia cese, momento en el cual el microcontrolador volverá a abrir las ventanas. Esto sucederá siempre y cuando el usuario no haya desactivado el sistema de apertura automática de las ventanas cosa útil en el caso de que el usuario tengra previsto ausentarse durante una larga temporada.

Próximos pasos...

Incorporar un LCD de 4 líneas desde el cual poder controlar el correcto funcionamiento del módulo.

Tareas pendientes

Ahora ya dispongo de un entorno sobre el cual desarrollar de forma bastante amena todo el código del PIC en ASM :)
Pendientes:
  • Adquirir un módulo Siteplayer y una tarjeta de desarrollo
  • Montar un circuito sobre el cual poder trabajar con el 16F876
  • Desarrollar el código del PIC para que este sea capaz de reaccionar ante inundaciones, precipitaciones, alumbrado, ...
  • Dotar al módulo Siteplayer de un termistor y utilizar las entradas digitales para que este pueda "interaccionar" de alguna forma con la infraestructura.

martes, julio 12, 2005

Niple como entorno de desarrollo


Niplesoft me ha cedido una licencia para poder desarrollar el proyecto con su cómodo entorno de programación para microcontroladores de la casa Microchip. GRACIAS :)

Cito textualmente:

Con niple podrá programar micros de la manera mas rápida y sencilla a través del diseño de un diagrama de flujo completamente gráfico y de alto nivel de programación. En todo momento el usuario realiza tareas en alto nivel de una manera totalmente amigable. niple se encarga del código en bajo nivel y de las tareas complejas.

Dividir el proyecto en dos partes

Quizas lo más comodo sería lo siguiente:

Por una parte tenemos la autogestión de ciertas tareas (PIC 16F876)
  • Cierre de electroválvuas en caso de fuga
  • Autogestión del alumbrado con tal de evitar el consumo innecesario
  • Cierre automático de ventanas en caso de lluvia

Por el otro lado tenemos la gestión a traves de internet (Siteplayer)

  • Conexión/desconexión de la calefacción
  • Conocer el estado de ciertos sensores (inundaciones, lluvia, apertura de puertas/ventanas)
  • Conexión/desconexión de la autogestión del sistema
  • Conexión/desconexión del aire acondicionado

Esto facilitaría bastante las cosas, el módulo del siteplayer con su tarjeta de desarrollo puede salir por unos 130€ mientras que el microcontrolador y su "plaquita" pueden salir por... ¿30€?

Siteplayer, una opción ?


Otra posibilidad podría ser substituir todo lo hasta ahora comentado por un módulo siteplayer con su propia tarjeta de desarrollo, la cual ya vene con tres pulsadores (un reset), dos leds y una termistencia montada, lo que ahorraría bastante trabajo. Esta se pude adquirir en la misma página de Siteplayer, pero entonces nos encontramos con que con esto solo lograríamos poder conocer el estado de las entradas digitales y del termistor a traves de internet, incluso activar/desactivar algún relé, pero falla la parte domótica, la que debería dotar a la instalación par activar/desactivar electroválvulas, encender/apagar luces en caso de necesidad, etc...

Interfaz RS-232



Ya tengo listo el conexionado del MAX232 para adaptar los niveles TTL a RS-232 y viceversa.
No estoy 100% seguro de que sean correctos, por lo que agradecería que alguien les echase un vistazo.

Esquema PB 16F876


Aquí está el primer esquema de lo que podría ser la placa desde la cual controlar el resto de la infraestructura la cual utiliza un PIC 16F876 como microcontrolador central. La he ejado lista para el conexionado RS-232 a través del cual luego podríamos implementar la conexión ethernet, pero por diversas causas, entre ellas que sería bastante comodo llegar a controlar el estado de distintas entradas y activar/desactivar relés por internet, quizás termine por utilizar un modulo Siteplayer que integra un servidor web de 48Kb en el cual podría albergar una página desde la cual controlar el estado de las entradas digitales y activar los relés a distancia :)

lunes, julio 11, 2005

Ethernet


¿ Como controlar ciertas funciones a través de internet ?
Para eso sera necesario de dotar a nuestro microcontrolador de comunicación mediante TCP/IP, pero no poseo conocimientos necesarios como para implementar una pila TCP/IP dentro del mismo microcontrolador, por lo que posiblemente termine por dotar al microcontrolador de comunicación mediante RS-232 y utilizar un conversor de señal RS-232/Ethernet (TCP/IP) cuyo coste no es muy elevado y parece relativamente sencillo de utilizar.

Sensores

Sensores a implementar

  • Un par de sensores LDR (día/noche)
  • Bumpers (ventanas/puertas abiertas/cerradas)
  • Algún sensor de temperatura digital (mantener una temperatura constante)
  • Sensor de humedad (lluvia/inundaciones)

domingo, julio 10, 2005

Programador PIC



Para programar los microcontroladores emplearé un TE-20 que tenía por casa, con el cual se puede programar cualquier PIC de la serie 12Cxxx, 12Fxxx, 16Fxxx y memorias 24LCxx. Si mal no recuerdo me costó unos 13€, este es de tamaño muy reducido y no precisa de alimentación externa.

Eligiendo un microcontrolador


En principio pensaba basar mi proyecto en un Basic Stamp, pero debido a su alto coste me apoyaré sobre un microcontrolador de la casa Microchip, alguno de la serie 16F87X puesto que poseen un número de pines I/O más que suficientes y memoria la memoria interna necesaria. Posiblemente un 16F876. Sus características son:
  • Frecuencia de trabajo de hasta 20Mhz
  • 8 Kb de memoria
  • Soporta USART
  • 5 entradas A/D
  • 22 E/S digitales