lunes, 13 de junio de 2016

EasyArduino

int threads[] = {1, 2, 3, 4};

int numThreads = 4;

int i;

void remove(int id){
  for(i=0; i<numThreads; i++){
    if(i+1 == id){
      threads[i] = 0;
    }
  }
}

void programa1(){
  while (digitalRead(1)) {
    tone(8, 500, 500);
  }
  tone(8, 200, 500);
}

void programa2(){
  if (digitalRead(1)) {
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);

  }
}

void programa3(){
  if (25 <= round((1/(log((float)(1023-analogRead(A2))*10000/analogRead(A2))/10000)/3975+1/298.15)-273.15)) {
    digitalWrite(13,HIGH);

  } else {
    digitalWrite(13,LOW);

  }
}

void programa4(){
  if (analogRead(A2) <= 150) {
    digitalWrite(13,HIGH);

  } else {
    digitalWrite(13,LOW);

  }
}

void setup()
{
  pinMode(1, INPUT);
  pinMode(1, INPUT);
  pinMode(13, OUTPUT);
}


void loop()
{
  for(i=0; i<numThreads; i++){
    if(threads[i] != 0){
      switch (i+1) {
        case 1:
          programa1();
          break;
        case 2:
          programa2();
          break;
        case 3:
          programa3();
          break;
        case 4:
          programa4();
          break;
      }
    }
  }
}

Arduino

Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo físico a través de tu ordenador personal. Es una plataforma de desarrollo de computación física (physical computing) de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa. Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y otros actuadores físicos. Los proyectos con Arduino pueden ser autónomos o comunicarse con un programa (software) que se ejecute en tu ordenador. La placa puedes montarla tú mismo o comprarla ya lista para usar, y el software de desarrollo es abierto y lo puedes descargar gratis desde la página 

Especificaciones técnicas:
Microcontroller ATmega328
Operating Voltage 5V 
Input Voltage (recommended) 7-12V 
Input Voltage (limits) 6-20V 
Digital I/O Pins 14 (of which 6 provide PWM output) 
Analog Input Pins 6 
DC Current for I/O Pin 40 mA 
DC Current for 3.3V Pin 50 mA 
Flash Memory 32 KB (ATmega328) 
SRAM 2 KB (ATmega328) 
EEPROM 1 KB (ATmega328) 
Clock Speed 16 MHz 

Pines de alimentation 
 Bien alimentemos al arduino mediante la conexión USB o mediante una 
fuente externa (recomendada de 7-12V), vamos a tener unas salidas de tensión 
continua debido a unos reguladores de tensión y condensadores de estabilización. 
Estos pines son: 
  •  VIN: se trata de la fuente tensión de entrada que contendrá la tensión a la que estamos alimentando al Arduino mediante la fuente externa. 
  •  5V: fuente de tensión regulada de 5V, esta tensión puede venir ya sea de pin VIN a través de un regulador interno, o se suministra a través de USB o de otra fuente de 5V regulada. 
  •  3.3V: fuente de 3.3 voltios generados por el regulador interno con un consumo máximo de corriente de 50mA. 
  •  GND: pines de tierra. 

Digital Inputs/Outputs 
 
Cada uno de los 14 pines digitales se puede utilizar como una entrada o salida. Cada pin puede proporcionar o recibir un máximo de 40 mA y tiene una resistencia de pull-up (desconectado por defecto) de 20 a 50 kOhm. Además, algunos pines tienen funciones especializadas como: 
  •  Pin 0 (RX) y 1 (TX). Se utiliza para recibir (RX) y la transmisión (TX) de datos serie TTL. 
  •  Pin 2 y 3. Interrupciones externas. Se trata de pines encargados de interrumpir el programa secuencial establecido por el usuario. 
  • Pin 3, 5, 6, 9, 10 y 11. PWM (modulación por ancho de pulso). Constituyen 8 bits de salida PWM con la función analogWrite (). 
  •  Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estos pines son de apoyo a la comunicación SPI. 
  • Pin 13. LED. Hay un LED conectado al pin digital 13. Cuando el pin es de alto valor, el LED está encendido, cuando el valor está bajo, es apagado. 

Analog Inputs 
 
 El Arduino posee 6 entradas analógicas, etiquetadas desde la A0 a A5, cada una de las cuales ofrecen 10 bits de resolución (es decir, 1024 estados). Por defecto, tenemos una tensión de 5V, pero podemos cambiar este rango utilizando el pin de AREF y utilizando la función analogReference(), donde le introducimos una señal externa de continua que la utilizara como referencia. 



viernes, 3 de junio de 2016

Software domótica libre.

La domótica libre es emplear sofware y hardware con licencia libre en los aparatos que instalemos. El objeto de este proyecto es crear un diseño tipo de instalación domótica para un hotel de hasta unas 100 habitaciones, basada en componentes Hardware/Software diseñados y distribuidos por la empresa OpenDomo. OpenDomo es una empresa dedicada al desarrollo y comercialización de productos de control domótico, para cuyo desarrollo del software necesario se basa en los principios de software libre. La instalación propuesta está orientada principalmente al ahorro energético y por tanto al control de los principales elementos que tienen impacto sobre el ahorro, esto es, la iluminación y la climatización; aunque pueden ampliarse y particularizarse en la etapa de diseño con aplicaciones más concretas según necesidades del cliente hotelero. En el modelo se define una distribución tipo de componentes, la topología y redundancia de los elementos de la red, la interconexión necesaria con sensores y actuadores, así como una descripción de su comportamiento funcional. El problema se plantea como un proyecto informático de redes, con la particularidad de que al no tratarse de una aplicación a un caso concreto sino a un modelo, algunas de sus distintas fases se aplicarán a un escenario ficticio que sirva como modelo de referencia. El sistema propuesto se apoya por un lado en la gama de productos OpenDomo, y muy particularmente en el controlador ODControl como elemento básico, y por otro en los dispositivos, tecnologías y protocolos de red abiertos de uso común en el mercado, lo cual confiere al modelo unas ventajas en diversos aspectos sobre otras tecnologías propietarias. 

Sensores y Actuadores.


Parte de la inteligencia que tiene una instalación domótica viene de su capacidad de analizar el ambiente de la vivienda y actuar de una manera determinada sobre los sistemas que la componen.
Una definición aceptable de sensor sería la de un dispositivo con la capacidad de transformar una magnitud física o química en una tensión o corriente eléctrica. De hecho es una definición mas acorde con cualquier libro de electrónica básica que con lo que nos dice la RAE que es…
Sin entrar a ver todos los campos de actuación (robótica, medicina, industria, vehículos…) de la enorme cantidad de tipos de sensores diferentes que existen, nos vamos a centrar solamente en los que son aplicados comúnmente en domótica.

Temperatura:
En una vivienda hay distintas temperaturas que pueden ser de interés para el usuario. La exterior y la interior son las mas típicas, pero también es habitual tener en cuenta temperaturas de piscinas, de calderas, etc. Con esta medida controlaremos adecuadamente el sistema de climatización o la apertura o cierre de ventanas por ejemplo.
Un tipo de especial de reostato de estado solido, conocido como resistencia termica. Se usa para captar liquido refrigerante, y en algunos sistemas la, temperatura de aire tambien. Vea Resistencia termica.
Humedad: 
Aunque se pueden encontrar en el mercado versiones independientes, lo mas es usual verlo combinado con un sensor de temperatura siendo una variable mas a analizar para el sistema de climatización.



 Existen varios tipos de Sensores de humedad, según el principio físico que siguen para realizar la cuantificación de la misma.
  • Mecánicos: aprovechan los cambios de dimensiones que sufren cierto tipos de materiales en presencia de la humedad. Como por ejemplo... fibras orgánicas o sintéticas, el cabello humano,...
  • Basados en sales higroscópicas: deducen el valor de la humedad en el ambiente a partir de una molécula cristalina que tiene mucha afinidad con la absorción de agua.
  • Por conductividad: la presencia de agua en un ambiente permite que a través de unas rejillas de oro circule una corriente. Ya que el agua es buena conductora de corriente. Según la medida de corriente se deduce el valor de la humedad.
  • Capacitivos: se basan sencillamente en el cambio de la capacidad que sufre un condensador en presencia de humedad.
  • Infrarrojos: estos disponen de 2 fuentes infrarrojas que lo que hacen es absorber parte de la radiación que contiene el vapor de agua.
  • Resistivos: aplican un principio de conductividad de la tierra. Es decir, cuanta más cantidad de agua hay en la muestra, más alta es la conductividad de la tierra.
CO, CO2, gases, calidad del aire:
Dentro de la familia de “alarmas técnicas”, la calidad del aire y las altas concentraciones de gases son revisadas para la salud de los usuarios, actuando por ejemplo, abriendo la puerta, activando ventilación o activando una alarma con sonido.
schneider_detector_co2_temp_humedad_mnt6005-0001
Para tener un control total de un sistema de climatización con ventilación (HVAC), se necesitan disponer de las medidas de: temperatura, humedad y también nivel de CO2.
De esta forma se podrá en funcionamiento el sistema de ventilación cuando el nivel de CO2 supere cierto umbral de seguridad.
Sensor_temperatura_humedad_CO2_Schneider
Humo:
Su uso esta extendido en instalaciones con o sin domotica, lo englobamos dentro de la familia de “alarmas técnicas”  ya que nos avisa en caso de incendio o fuego no controlado en la cocina.
Es una alarma que detecta la presencia de humo en el aire y emite una señal acústica avisando del peligro de incendio. Atendiendo al método de detección que usan pueden ser de varios tipos: - Detectores iónicos: Utilizados para la detección de gases y humos de combustión que no son visibles a simple vista. - Detectores ópticos: Detectan los humos visibles mediante la absorción o difusión de la luz.
Inundación:
Este es un sensor dentro de lo que consideramos “alarmas técnicas”, en este caso es de uso diario (¡esperamos!) si no que se activa si detecta una inundación. Se coloca a pocos milimetros del suelo en baños, cocinas o salas de lavadoras.

Presencia y movimiento:
Son de los sensores mas típicos que podemos encontrar y con el que casi todos estamos familiarizados. De uso común en zonas de paso, lavabos de edificios de uso publico, garajes… tradicionalmente usados para controlar un punto de luz concreto. Ahora los integramos en la domótica para abarcar mas funcionalidades, sabiendo si una estancia esta ocupada o  no podemos optimizar el consumo de la climatización o solamente tener el dato por seguridad.
Sensor_movimiento_Luxomat
Sensor de movimiento de Luxomat.
Medidas de consumos energéticas: 
Aunque no suelen ser incluidos dentro de las categorías de sensores, consideramos que tanto desde el punto de vista electrónico como domótico deben estas en este pequeño análisis que hacemos. Medir el consumo energético es fundamental para poder ahorrar.
Luminosidad o crepuscular:
Con este tipo de sensor sabremos la cantidad de sol que esta incidiendo en nuestra vivienda de cara a manejar persianas o regular la iluminación interior.
Viento o anemómetro:
Si tenemos toldos o persianas enrollables en nuestra vivienda, detectar a tiempo un exceso de viento es de gran utilidad para evitar destrozos ya que podríamos recogerlos a tiempo.
Lluvia:
Al igual que el anemómetro, conocer las condiciones externas nos facilita la gestión de los cerramientos de la vivienda, cerrando a tiempo antes de que entre el agua.
Rotura de cristales:
Dentro de la familia de “alarmas técnicas” tenemos este tipo de sensor que nos avisa en caso de que se rompa un cristal de una ventana o puerta. Por seguridad,  tener controladas estas posibles roturas puede ayudarnos de mayores problemas.
Sensor_rotura_ventana_Loxone
Sensor de rotura de ventanas de Loxone
Contacto para puertas y ventanas:
Saber si una puerta o ventana esta abierta o cerrada es de gran utilidad de cara a gestionar la climatización, de nada sirve gastar enfriar si tenemos la ventana abierta, ¿no?. Por otro lado desde la perspectiva de la seguridad también viene bien saber si hay algo abierto cuando no debería estarlo…