
Con el nacimiento de un niño, surgió la pregunta sobre una lámpara de noche. En algún lugar leyeron que es necesario un sueño tranquilo. Rápidamente solía dormir con una luz tenue. Es muy conveniente despertarse de los gritos y aullidos en medio de la noche y ver de qué se queja el bebé (si puede entenderlo). Además, con poca luz, puede balancearse, voltearse y continuar durmiendo.
Inicialmente, se hizo una muestra de prueba de la lámpara a partir de un trozo de tira de LED amarillo (12 voltios), que se utilizó durante 1,5 años.

Además del diseño endeble, comenzó a molestar todas las mañanas para quitar la fuente de alimentación de la lámpara del tomacorriente. Me levanto por la mañana, entra suficiente luz desde la calle. Por lo tanto, la lámpara se desperdicia durante varias horas todos los días. Una vez más, en medio año, el controlador de cinta RGB chino olvidó la configuración actual y tuvo que buscar el panel de control para recordarle cómo trabajar. Decidí hacer una nueva lámpara con apagado automático, con ajuste de color usando potenciómetros y radio.
Ensambló rápidamente un prototipo basado en arduino nano. Depurar la funcionalidad básica.

Aproveché esta oportunidad para probar Fritzing. No me gustó, pero las imágenes son claras y "divertidas". Aparentemente no se ha inventado nada nuevo.

Reemplazó "nano" por un módulo poco conocido, compatible con Arduino, con un transceptor de radio incorporado (controlador de 8 bits, el rendimiento y el relleno es comparable a "Nana"). En casa, ya tengo un dispositivo funcionando a una frecuencia de 868 MHz, este será el segundo. Breves especificaciones del sitio web del fabricante:

No veo grandes problemas para hacer lo mismo en ESP8266 (hay un conveniente recopilador de firmware en línea para scripts en LUA). Un poco más complicado en Bluetooth (para actualizar el módulo HM-10 necesita un programador económico, un entorno de desarrollo y una comprensión del protocolo). Aunque puedes usar el módulo Bluetooth con el arduino. Pero usé ZUNo, porque ha estado mintiéndome y esperándome durante mucho tiempo, y toda la infraestructura está lista para conectarse y administrar dispositivos similares en una red (estoy hablando del controlador de red doméstica inteligente).
Para todas las patas usadas en arduino, se encontraron análogos en el módulo.

Para trabajar con el módulo desde el IDE de Arduino, debe configurarlo (la descripción de la configuración se encuentra en el sitio web del fabricante). No sucedió ningún milagro. Al intentar compilar, recibí el error "¡no admite la declaración" for "con columnas vacías o sin cuerpo!" Usé la biblioteca Adafruit_NeoPixel. Me subí a él, vi cuántos ciclos había en él y lo cerré. Tuve que volver al sitio web del fabricante y buscar ejemplos de trabajo con LED (se encontró rápidamente un ejemplo). Entonces no soy el primero en encontrar un problema similar.
Para que esta lámpara sea controlada por radio en el código Arduino, debe agregar una macro e implementar varias funciones:
ZUNO_SETUP_CHANNELS( ZUNO_SWITCH_MULTILEVEL(getRed, setRed), ZUNO_SWITCH_MULTILEVEL(getGreen, setGreen), ZUNO_SWITCH_MULTILEVEL(getBlue, setBlue), ZUNO_SWITCH_BINARY(switch_getter, switch_setter) );
Esta macro describe un dispositivo Z-Wave con tres interruptores de niveles múltiples (control RGB) y un interruptor simple (encendido / apagado simple).
Tengo la implementación más simple de funciones (como en los ejemplos en el sitio web del fabricante). Puedes verlo en el listado adjunto.
Selección de caso
Ya tuve un caso.
Sellado con una cubierta transparente . Debajo de la tapa caben 25 LED. Las pruebas fueron exitosas. La lámpara tiene un gran margen de brillo para mi habitación. La cubierta de este estuche es transparente, así que decidí difuminar un poco la luz.

Bolas de colores esbozadas y cubos acrílicos, rellenos de epoxi transparente. La pintura de las cuentas coloreadas se disolvió bajo la influencia de la resina.

Lo más interesante es que la tapa de la carcasa sellada se filtró y casi toda la resina se filtró. No sé dónde logré golpear la tapa, pero después de secar la grieta es claramente visible.

La placa de circuito impreso fue hecha por el método fotorresistivo.


Después de decapado y mecanizado

El módulo con el microcontrolador fue reemplazado por su prototipo, que yacía en el armario (porque no es una pena, pero ZUNo necesita protección). La primera versión de ZUNo, pero las dimensiones son más grandes y peores que la antena, y ya no puedes comprarla. Las pruebas fueron más o menos exitosas. El último segmento tuvo que volverse a soldar. Originalmente fue soldado al lado equivocado. Y ajuste la cantidad de LED en el firmware.


Esto es lo que sucedió:

Radio control
Ventana principal con canales de control de la lámpara.

Ajuste el brillo de un canal de la tira de LED

Configurar el apagado matutino de la luz nocturna

Conclusión
El dispositivo esta funcionando. Es compacto y ordenado. Se alimenta cargando un teléfono móvil.
De los problemas notados:
- durante el ensamblaje, arrancó parte de las pistas en resistencias variables, por lo que en modo manual puede controlar solo un canal.
- solo 20 de los 25 LED funcionan normalmente. Tengo mucho de esto, así que lo dejaré para identificar fallas más serias
Bosquejo de luz nocturna #include "ZUNO_NeoPixel.h" #define MAX_PIXELS 20