jueves, 17 de noviembre de 2016

Diagrama de clases (clase ObjetoConectado, PlacaHW)

Seguimos con el diagrama de clases, ahora con los actuadores y los sensores y placas auxiliares que nos servirán al sistema:

Es fácil ver cómo de nuevo la clase ObjetoConectado herede de ObjetoGeneral, que era la clase que encapsula algunos de los métodos de gestión, la clase ObjetoConectado añade un atributo que el un puntero a un objeto Conexion.

Conviene mencionar también la clase ObjetoControl, que no es sino un contenedor de sensores y actuadores. Esta clase nos va a dar posibilidades de agrupamiento. Por ejemplo, si tuviéramos que controlar una piscina, un jardín y un edificio, se podrían dar de alta 3 ObjetoControl, si el control es independiente. Es decir, los Actuadores y Sensores colgarán de los ObjetosControl.

La clase Actuador de momento no la desarrollaremos mucho, podrá ser un Contactor o un Telerruptor (es importante porque el modo de activación cambia) y todavía no entraremos en control de velocidad de motores o incluso de servos.

La clase PlacaHW nos va a servir para gestionar HW externo a la placa Arduino Mega. Esto es, he decidido introducir ademas de la ATMega de Arduino (aprox unos 11€ en amazon):

  • Placa DS3231: funcionalidad RTC con sensor de temperatura interno en un bus I2C): nos da el control de hora con una batería y funciona de maravilla (unos 2€ en amazon).

  • Placa SD para tarjeta microSD: bus SPI, nos va a permitir acceder a una tarjeta microSIM, en mi caso he metido una de 16GB, lo que nos da una versatilidad en almacenamiento de datos muy relevante. A su vez, esta tarjeta va a almacenar datos de configuración, ficheros log, eventualmente podríamos meter el código html de un servidor, ... lo que necesitemos (unos 2€ + tarjeta microSIM aparte que pueden ser otros 6€ una EVO Samsung de 16GB).

  • Placa ESP8266: implementa WLAN, interfaz serie. Esta es un poco más cara, unos 7-9€ en amazon.


  • Placa HC-05: implementa Bluetooth, interfaz serie. Unos 5€, ojo, no confundir con la HC-06, que algo más barata, pero solo nos vale como esclavo, no como master:
Finalmente conviene tener un modulo de alimentación MB102, son unos 5€ y te soluciona la vida con los 5V y los 3,3V, evitando inestabilidades en los módulos ESP sobre todo (esta placa no la vamos a gestionar de momento, ya veremos cómo aseguramos alimentación al sistema y la medimos, habrá que hacer algo de HW externo y conectar una sensor analógico para medir tensión en la entrada):

Entrando en la clase Sensor, vemos una especialización progresiva. Lo más importante es que debemos entender la naturaleza de los sensores que a priori pueden ser Binarios o de Rango, es decir, ON/OFF o que nos de un float como valor. La idea es que cada vez que invoquemos un método (actualiza_valor) nos devuelva el valor del sensor sin saber qué hay debajo o cómo se gestiona.

Conviene ver que para los sensores de Dallas, aprovechamos la libreria de Dallas, que implementa muchas de las funciones necesarias para escanear las direcciones, inicializar o leer las temperaturas, recordemos que estos sensores de temperatura pueden estar en el mismo bus 1-wire y lo mejor de todo, por un precio muy bajo (poco más de 2€), los tenemos hasta sumergibles (ds18b20 -  http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf).


Todo esto nos configura una arquitectura HW como la siguiente:
Con la arquitectura SW que propongo, podemos también la posibilidad de tener actuadores y sensores vía WIFI o BT, lo que nos dará una flexibilidad importante, habida cuenta de que los pines son finitos. En este caso, también tendremos que diseñar los protocolos entre ellos.

Veremos cómo al final la limitación importante será la de la memoria del micro.

En resumidas cuentas, el sistema son unos 40€, equipandolo con RTC, un primer sensor de temperatura interno, WLAN, BT y alimentación estabilizada.

Bueno, hasta aquí esta parte, va tocando ponerse a codificar ...







No hay comentarios:

Publicar un comentario

Datos personales