Paso 10: Mejorando el sistema de automatización y soluciones relacionadas
Este sistema se puede ampliar mediante la adición de más códigos de diferentes sistemas. Mientras que esta parte es fácil, hay otros dos factores que debes tener en cuenta.
Mejora 1 (rápido): Trabajan con señales de infrarrojos de diversas longitudes
- Códigos IR de los diferentes sistemas vienen con longitudes diferentes, incluso entre dos productos del mismo fabricante.
- Por ejemplo, en este caso, el IR código longitud de matriz de LED TV es 67, mientras que la de la barra de sonido Samsung es alrededor de 87.
¿El resultado? Televisor LED no se enciende porque el Buffer de código de infrarrojos ha sido corrompido por los códigos extra 20 no limpiados de la operación anterior.
Fix 1 (la manera fácil, no se recomienda)
Alterar el Arduino Sketch como sigue:
Cambiar las siguientes llamadas de función en la función loop() {}
Realizar cambios en la firma de la función anterior:
Mientras que esto es fácil, la matriz no es despejó totalmente y por lo tanto no es una solución muy limpia
Fix 2 (no es difícil, recomendado)
Declarar una variable adicional en la parte superior de los Arduino Sketch, después de la sección de comentarios:
Añadir esto a la parte superior de la función setup():
Desplácese hacia abajo y añadir una nueva función para el bosquejo inmediatamente después de la transmitIRCode() función:
Por último, nueva función de llamada por encima en la siguiente ubicación en la función loop():
Se trata de un enfoque más limpio como realmente se pone a cero todas las ubicaciones de la matriz de amortiguamiento IR que estaban pobladas por la más reciente señal de código de infrarrojos sin dejar nada al azar.
Mejora 2 (más complicado): repetición de transmisión de la señal del IR para ciertos dispositivos
- Algunos dispositivos requieren la misma señal se transmite varias veces para responder
Ejemplo: en este caso, la barra de sonido Samsung requiere el mismo código a enviar dos veces con una separación de 1 segundo
La corrección de concepto ha sido discutida aquí es un poco más y va a necesitar pruebas.
Agregar la funcionalidad de repetir el dibujo Ardunio significará que tienes flash el Sketch cada vez que agrega un nuevo dispositivo a su sistema de automatización de hogar
En cambio, agregar esta solución al cliente HTML SignalR y la aplicación Python SignalR servicio hace la solución mucho más flexible. Y esto podría lograrse en principio como sigue:
Modificar el cliente SignalR HTML para transmitir información repetida en el buje
Donde 2 es el valor de repetición y 1000 es el valor de retardo en milisegundos entre dos señales de repetición
Al hacer clic en este botón, el cubo de SignalR recibirá el código de tecla + Repeat_Spec
Modificar los métodos de lado de servidor SignalR analizar solamente el código de tecla:
- Utilice el código de clave para recuperar el código de infrarrojos de la base de datos como de costumbre
- Transmitir la clave código + Repeat_Spec y el IRCode para los clientes de SingalR como de costumbre
Modificar la aplicación de servicio de SignalR Python para transmitir señales utilizando los valores de repetición:
Abrir al cliente de Python y modificar las dos funciones siguientes:
- Esta manera, el Arduino no tiene que ser flasheado varias veces
- Cualquier número de frecuencias de repetición podría ser construido en este sistema
- Además, si utiliza la ONU, hay un límite para el tamaño que su bosquejo puede crecer!