
Com o nascimento de um filho, surgiu a pergunta sobre uma lâmpada noturna. Em algum lugar, eles leem que é necessário um sono tranquilo. Rapidamente usado para dormir com pouca luz. É muito conveniente acordar de gritos e uivos no meio da noite e ver do que o bebê está reclamando (se é que você consegue entender). Além disso, com pouca luz, você pode balançar, virar e continuar dormindo.
Inicialmente, uma amostra de teste da lâmpada foi feita a partir de um pedaço de fita LED amarela (12 volts), que foi usada por 1,5 anos.

Além do design frágil, começou a incomodar todas as manhãs para remover a fonte de alimentação da lâmpada da tomada. Levanto-me de manhã, luz suficiente entra na sala da rua. Assim, a lâmpada é desperdiçada por várias horas todos os dias. Mais uma vez, em meio ano, o controlador de fita RGB chinês esqueceu a configuração atual e foi necessário procurar um painel de controle para lembrá-lo de como trabalhar. Decidi fazer uma nova lâmpada com desligamento automático, com ajuste de cor usando potenciômetros e rádio.
Montou rapidamente um protótipo baseado no arduino nano. Depure a funcionalidade básica.

Aproveitei esta oportunidade para experimentar o Fritzing. Não gostei, mas as imagens são claras e "engraçadas". Aparentemente, nada de novo foi inventado.

Substituiu "nano" por um módulo pouco conhecido e compatível com arduino por um transceptor de rádio embutido (controlador de 8 bits, desempenho e enchimento são comparáveis a "Nana"). Em casa, eu já tenho um dispositivo operando na frequência de 868 MHz, este será o segundo. Breves especificações no site do fabricante:

Não vejo grandes problemas fazendo o mesmo no ESP8266 (existe um coletor de firmware on-line conveniente para scripts no LUA). Um pouco mais complicado no Bluetooth (para atualizar o módulo HM-10, você precisa de um programador barato, ambiente de desenvolvimento e entendimento do protocolo). Embora você possa usar o módulo Bluetooth com o arduino. Mas eu usei o ZUNo, porque ele está mentindo e me esperando há muito tempo, e toda a infraestrutura está pronta para conectar e gerenciar dispositivos semelhantes em uma rede (estou falando do controlador de rede doméstica inteligente).
Para todas as pernas usadas no arduino, foram encontrados análogos no módulo.

Para trabalhar com o módulo do IDE do Arduino, é necessário configurá-lo (a descrição das configurações está no site do fabricante). Nenhum milagre aconteceu. Ao tentar compilar, recebi o erro "não suporta" for "instrução com colunas vazias ou sem corpo!" Eu usei a biblioteca Adafruit_NeoPixel. Entrei nele, vi quantos ciclos havia nele e o fechei. Eu tive que ir novamente ao site do fabricante e procurar exemplos de trabalho com LEDs (um exemplo foi encontrado rapidamente). Portanto, não sou o primeiro a encontrar um problema semelhante.
Para que esta lâmpada seja controlada por rádio no código do Arduino, você precisa adicionar uma macro e implementar várias funções:
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 descreve um dispositivo Z-Wave com três comutadores de vários níveis (controle RGB) e um comutador simples (ligar / desligar simples).
Eu tenho a implementação mais simples de funções (como nos exemplos no site do fabricante). Você pode vê-lo na lista em anexo.
Seleção de caso
Eu já tive um caso.
Selado com uma tampa transparente . Sob a tampa, ajuste 25 LEDs. Os testes foram bem sucedidos. A lâmpada possui uma grande margem de brilho no meu quarto. A capa deste gabinete é transparente, então decidi difundir um pouco a luz.

Contas coloridas esboçadas e cubos de acrílico, preenchidos com epóxi transparente. A tinta das contas coloridas se dissolveu sob a influência da resina.

O mais interessante é que a tampa da caixa selada vazou e quase toda a resina vazou. Não sei onde consegui bater na tampa, mas depois de secar a fenda é claramente visível.

A placa de circuito impresso foi feita pelo método fotorresistivo.


Após decapagem e usinagem

O módulo com o microcontrolador foi substituído por seu protótipo, que estava no armário (porque não é uma pena, mas o ZUNo precisa ser protegido). A primeira versão do ZUNo, mas as dimensões são maiores e piores que a antena, e você já não pode comprá-lo. Os testes foram mais ou menos bem-sucedidos. O último segmento teve que ser soldado novamente. Foi originalmente soldado para o lado errado. E ajuste o número de LEDs no firmware.


Aqui está o que aconteceu:

Rádio controle
Janela principal com canais de controle da lâmpada

Ajustar o brilho de um canal da faixa de LED

Definir o desligamento matinal da luz noturna

Conclusão
O dispositivo está funcionando. É compacto e arrumado. É alimentado pelo carregamento de um telefone celular.
Dos problemas observados:
- durante a montagem, retire parte das faixas em resistores variáveis; portanto, no modo manual, você pode controlar apenas um canal.
- apenas 20 dos 25 LEDs funcionam normalmente. Eu tenho muito disso, então provavelmente deixarei identificar falhas mais graves
Esboço de luz noturna #include "ZUNO_NeoPixel.h" #define MAX_PIXELS 20