domingo, 25 de enero de 2015

Domos - Leyendo el mando a distancia

Recordemos mi objetivo inicial. Apagar y encender una estufa de Pellets a distancia. La maldita estufa está preparada para que, cuando recibe corriente, quedarse siempre en modo stand-by y olvidar la hora que es e incluso la programación. Por lo tanto, un Relé no sirve como sistema de encendido o apagado, así que pretendo "hackearla" utilizando su mando a distancia.

Véase la entrada anterior: http://luisetemiravalles.blogspot.com.es/2015/01/domos-apagando-y-encendiendo-cosas.html

Necesito conocer los códigos que envía su mando a distancia, para luego poder replicarlos desde mi proyecto Arduino.

Con un Arduino y un simple sensor de IR y el siguiente sketck han salido a relucir los códigos que envía el mando a distancia de la estufa:

/*
 * Detector de código infrarrojo con el estándar NEC
 */
#define PIN 7

NECIRrcv ir(PIN) ;
void setup() {
  Serial.begin(9600);
  Serial.println("Detector de IR");
  ir.begin();
}

void loop() {
   unsigned long codigo;
   while(ir.available()) {
     codigo=ir.read();
     Serial.print("Leido codigo 0x");
     Serial.println(codigo, HEX);   
   } 
}

Así que nuestros códigos IR son:

ON-OFF : 0xED12FE01
TURBO  : 0xEE11FE01
ECO    : 0xEF10FE01
PROG   : 0xE41BFE01
TEMP+  : 0xE51AFE01
TEMP-  : 0xEC13FE01
Ahora me encuentro con otro problema: El botón de ON es el mismo que el de OFF por lo que el circuito arduino debe conocer el estado para poder actuar correctamente. NO es suficiente con que el servidor sepa el estado deseado sino que hay que saber de verdad el estado real. Pero esto me complicaría la vida, necesitaría añadir un sensor que me dijera el estado de la estufa y no quiero añadir esa complejidad.

Por lo tanto, añadiré el siguiente convenio a mi proyecto Arduino:

  1. Cuando encienda el circuito (En el Setup) siempre tendré la estufa apagada 
  2. El sketch enviará una señal de apagado al servidor para que actualice el estado y de esta forma tendremos sincronizado el estado deseado del servidor con el estado real de la estufa.Por ejemplo, enviará la siguiente petición http:   http://....?set?id=xxx&estado=OFF

Con este convenio puedo sobrevivir, no en vano lo que pretendo hacer de forma remota es encender la estufa. Si de alguna forma se pierde el sincronismo entre el servidor y el arduino lo peor que puede pasar es que me quede encendida.

Para hacer el sistema más fiable podria combinar el encendido y apagado del mando a distancia con un Relé. La estufa necesita 20 minutos de proceso de apagado durante el cual deben estar funcionando los ventiladores. Así que podría hacer lo siguiente al enviar el apagado: Esperar 20 minutos y entonces apagar un Relé. Y viceversa, en el proceso de encendido podría encender un relé, esperar 2 minutos y luego enviar la señal con el mando a distancia. Eso ya veremos si lo hago,.,..

Ahora, el siguiente paso será incluir en el proyecto el envío de señales IR. 


No hay comentarios:

Publicar un comentario