Paso 5: Código de Arduino
Inicialización de
Se incluyen sólo el WDT (WatchDogTimer) y las bibliotecas RFM. El WDT se utiliza en el caso de Arduino cuelga en algún lugar y con el WDT reiniciará por sí mismo. Sin embargo con esta caja, el Arduino no se perdió hasta ahora.
El código está vinculado y debe ser más o menos comprensible. Se supone que sabes que cosas al menos a medio leer. El código de Arduino puede parecer familiar como ha sido copiado de diferentes fuentes, modificado y juntos.
No llevo demasiado exigente el idNodo; mantener 2 dígitos ya que probablemente no tendrá nodos más de 90 en su casa. No cambie el número de dígitos, o tendrá que cambiar prácticamente por todas partes más tarde.
Definir la banda de frecuencia determinada por el módulo de compra. La ChannelFreq puede ser que necesite para ajustarse a las normas de donde usted vive; el número es en Hertz.
La estructura del mensaje tiene que ser el mismo en toda la red
Un dispositivo se definió para el LightSequence, el interruptor de la dim y la fadespeed
Creo que es más fácil enviar comandos.
Programa de instalación
Nada especial que mencionar. El digitalwrite y color luz-hasta el final de la instalación es una manera fácil de ver el Arduino puesto en marcha correctamente. Es también una forma rápida de ver si todas las conexiones (especialmente a la tierra) eran soldadas ok.
Lazo
Comprueba si algún dato fue recibido a través de FM (más abajo).
Si los datos recibidos dice para cambiar a un color sólido predefinido, que uno se encuentra.
Los códigos de parpadeo solo se predefinen demasiado. Hay 7 colores solo ir alta y baja en juegos repetidos. Las repeticiones, pausas entre parpadeos y colores no se puede cambiar de openHAB. La luz a plena potencia.
Tenga en cuenta al probar e iluminación con el LED en su vista definitivamente conduce a dolores de cabeza!
El doble-blink es muy similar a un solo-abrir y cerrar. Simplemente contiene una "si lazo más".
Escoge y dos parpadeos no son realmente óptimos para el estado de ánimo como vas loco. Así que mejor utilizar como luces de alarma (rojas fuego, azul agua, rojo y azul para PIR fijado apagado cuando nadie casa, etc.), o interfaz openHAB con el FritzBox y han parpadear amarillo cuando el teléfono suene y así sucesivamente.
La ola de color o luz de respiración es ideal para el estado de ánimo. Sin embargo, sólo "colores puros" (R, G, B y 3 mezclas + blanco) es muy bien al ser agitado. De lo contrario usted tendrá que hacer cálculos serios sobre Arduino y los colores aún no ser agradables. Por ejemplo R255, G50, B100 no puede reducirse muy bien hasta 0 porque los números no son todas 0 o 255... Si se empieza la prueba, sabes lo que quiero decir.
La gran ola con ColorSet = 80 es un código modificado de enlace del paso anterior. Se ha modificado para ejecutar en un bucle y "al mismo tiempo" (entre dim-pasos entre los intervalos de velocidad se descolora) escuchar las instrucciones de openHAB enviado a través de FM.
Analizar el comando
Dependiendo de los valores recibidos en el paquete de datos de FM, se toman diferentes acciones.
80 es el relay de AC. Realmente no estoy seguro si es realmente necesario porque si se envía el color 0.0.0, el LED permanece oscuro. Supongo que la fuente de alimentación todavía utiliza un poco de carga, y me siento más ahorrar sabiendo que la CA está apagada.
Dispositivo 77 se define como la FadeSpeed utilizado en las olas de color. Simplemente actualiza la variable que se utiliza en el siguiente ciclo del bucle.
Dispositivo 76 se utiliza para la regulación. También simplemente actualiza la variable que se utiliza en el siguiente ciclo del bucle.
Dispositivo 75 se utiliza para establecer la LightSequence. La razón para hacerlo de esa manera fue que la secuencia ligera se puede elegir con un número de 2 dígitos, mientras que eligiendo un color mediante color-code sería bastante complicado si desea luego el color se descolora. Parpadeos y colores sólidos no deberían ser tan difíciles sin embargo.
Según ColorSet, diferentes variables se definen diferentemente.
Que hacer en la próxima versión del código de Arduino:
- eliminar todos los retrasos y reemplazarlos con la misma lógica para los intervalos entre enviar RFM.
- aumentar el defecto FadeSpeed 200 o así, que es una luz menos nerviosa a ver...