
Desculpe, não me divirto com nomes há muito tempo, assim como com periféricos para automação residencial. Especificamente, essa coisa - o controle remoto da luz - acabou porque eu queria algo com uma interface push-twist-click, e não com a dispersão usual de botões. O efeito uau não foi alcançado: em casa, não noto o controle remoto à queima-roupa, mas pelo menos fechei a gestalt.
Resumo TOR:
1) Gerenciamento de três grupos de iluminação na cozinha
2) Gestão de três grupos de iluminação na sala
3) Gerenciamento de todas as fontes de luz ao mesmo tempo
4) Vida útil da bateria razoável (a partir de uma semana)
5) Compatível com a codificação Livolo, SC2260, EV1527
Portanto, você não precisa ler mais se não gostar de Arduino, comutadores Livolo e tomadas de rádio chinesas. Porque o primeiro é a base do controle remoto, e o segundo e o terceiro são a periferia.
Conceito
A lógica de controle me pareceu a seguinte:
- Pressionar o botão giratório alterna as zonas do grupo de iluminação em um anel (cozinha - sala - tudo).
- Girar o botão, dependendo da direção da rotação, liga ou desliga a iluminação do grupo selecionado.
- O modo operacional (grupo selecionado) é exibido por uma indicação discreta do LED.
Como uso o controle por rádio de acordo com a opção mais desprezada, sem proteção contra interferências e feedback, ao mesmo tempo, é fornecido um pequeno truque em caso de falha na operação.
Se girar o botão não levar ao resultado desejado, pressione e gire combinados na direção oposta para pular o comando. Em seguida, o comando pode ser repetido como de costume.
Ou seja, se eu girar o botão no sentido horário e a luz principal não acender, eu posso pressionar o botão, girá-lo no sentido anti-horário e soltá-lo e girá-lo novamente no sentido horário para repetir a ativação.
Por que é tão difícil? Além dos protocolos desajeitados, também tenho periféricos desajeitados. Por exemplo, as luzes controladas por rádio comutam o Livolo e os relés de rádio, que têm o mesmo comando para ligar e desligar, juntamente com as tomadas de rádio comuns, cujos comandos para ligar e desligar são separados.
O truque de pular da equipe permite que você supere de maneira criativa a não inclusão (não exclusão) sem quebrar o esquema geral de iluminação. Além disso, pular um comando permite pular sobre fontes de luz que você não precisa ativar ou desativar.
Bem, é claro, para entender o que está acontecendo com o controle remoto, ele tem um indicador separado que acende ao enviar um comando.
Se o console não for tocado por algum tempo (configurado no código), o controlador entrará em suspensão. No entanto, ele não salva o último estado e, quando acorda pressionando a caneta, começa a vida do zero.
Isto não é um erro. Repito, tenho comutadores sem feedback e o console é fisicamente incapaz de obter informações sobre o estado atual de cada dispositivo periférico controlado.
Portanto, imediatamente após acordar, o botão giratório liga ou desliga a luz do zero.
Primeira abordagem
O conceito visual do tipo “caixa com uma torção” exigia, como você pode imaginar, duas coisas: caixas e torções. Na primeira versão, o papel da caixa foi desempenhado por um fino banco de potência, cujo uso resolveu dois problemas ao mesmo tempo: eu tinha um gabinete e um esquema de carregamento de bateria, além disso, com um conector. A própria bateria, é claro, teve que ser substituída por uma mais compacta, caso contrário, o enchimento não poderia mais caber.

Acabou mais complicado com a torção. Ao pesquisar, descobri que quanto mais bonito o botão do potenciômetro e maior, mais próximo o custo de seu grama do custo de um grama de ouro. Portanto, adquiri uma caneta, que me servia minimamente para propriedades estéticas.

A parte de controle foi o resultado de um experimento com o ATmega328P e uma continuação lógica do enredo definido pela automação residencial existente (no mesmo Arduino e nos protocolos de rádio primitivos).
Não comprei muito dispendiosamente os controladores mencionados e protótipo condicionalmente (de fato, um adaptador de um gabinete pequeno para um grande passo) com o objetivo de tentar criar uma versão de baixo orçamento do Arduino com um número mínimo (mas razoável) de elementos.



O experimento acabou sendo bem-sucedido, e o controlador configurado para o ambiente Arduino piscou o LED com bastante sucesso depois de engolir o clássico Blink. Bem, então, com o princípio de “terminar a coruja”, adicionei um codificador (com um botão), três LEDs e um transmissor normal com modulação de amplitude em uma portadora de 433,92 MHz à placa resultante.
Para colocar todos os elementos em um estojo pequeno, tive que sofrer um pouco, mas o controle remoto ainda funcionava. E, embora, ao que parece, o problema esteja resolvido, eu queria mais - o caso original.


Segunda abordagem
Na verdade, a primeira versão (reclamando) na aparência de um grupo de camaradas foi destruída, então eu a adiei indefinidamente. Mas ele não entendeu: é uma pena.
Mas quando a impressora 3D apareceu, ele prometeu a si mesmo um dia fazer o mesmo estojo original e, assim, encerrar a questão com o controle remoto.
Não sei se ficou bom ou ruim - não sei como avaliar minhas coisas. Mas no 3DToday a equipe é mais acolhedora do que no MySKU (do qual não estou reclamando - não é um presente para mim), e eles classificaram o caso como mais alto do que eu.

Mas, com total liberdade de ação, recusei as frágeis e gastas baterias chinesas e tomei a boa e velha 18650 como fonte de energia.E, como você pode ver facilmente, são precisamente suas dimensões que determinam amplamente as dimensões de todo o caso.
Comecei a tornar o invólucro modular, composto por várias partes, o que me permitiu reimprimir apenas elementos individuais (errôneos ou não muito ideais), e não o produto inteiro.
Outro ponto é que eu realmente não gosto de fazer recortes para conectores, o que realmente não posso fazer. Portanto, na cadeia de suprimentos há outro truque conhecido por
Evelyn, o ouriço : o carregamento sem fio.

No meu zashashnik apenas colocar outro receptor, que eu imediatamente coloquei em ação.
Finalmente, o último truque é bastante óbvio, mas ainda assim: para que o controle remoto não se arraste pela mesa, colei um pedaço de um tapete antiderrapante no fundo. E, no final, isso é um monólito absoluto, embora reorganizá-lo para outro lugar também não seja um problema.
O que é preciso para repetir
Pedaço de ferro
1) Controlador ATmega328P - 1 pc. (no meu pacote TQFP, mas qualquer um pode)
2) resistor de 10 kOhm - 5 unid. (4 para suprimir o retorno do codificador, 1 para o controlador)
3) Resistor de 100 Ohm - 3 peças.
4) Capacitores de cerâmica 0,1 microfarads - 4 un. (ao controlador e supressão do retorno do codificador)
5) Empurre o codificador (valcoder) - 1 pc. (Eu tenho
PEC12-4220F-S0024 )
6) LEDs - 3 peças. (diâmetro 3 mm)
7) Placa de carregamento da bateria de lítio - 1 pc. (do banco de potência que chegou a mão, em teoria, qualquer pessoa com ativação automática sob carga fará)
8) Receptor de carregamento sem fio Qi - 1 pc.
9) Um transmissor com modulação de amplitude em 433 MHz - 1 pc. (
assim )
10) Alguma fibra de vidro para a placa do codificador
11) impressora 3D
12) Plástico adequado (imprimi PLA)
13) Parafusos M4x30 - 4 peças
Em geral, o número de componentes pode ser reduzido. Por exemplo, em uma versão muito mínima, o controlador não exige cintagem, embora eu tenha decidido seguir
o conselho de Nick Gammon e não poupou alguns capacitores e um resistor.
Da mesma forma, você não pode se preocupar com a supressão por hardware da rejeição de contato e tentar se dar bem com o software. Depois, você pode atravessar mais quatro resistores e um par de capacitores.
Como alternativa, você pode usar uma placa Arduino pronta, como o Pro Mini, mas, neste caso, não posso garantir um baixo nível de consumo de energia e você deve evocá-la. Ao mesmo tempo, você terá que corrigir o caso.
Esquema:

Para referência, a pinagem ATmega328p no pacote TQFP-32 da
Hobby Electronics :

Para o meu codificador, desenhei uma pequena placa:



Se estiver bom, teria que ser perfurado para montar o codificador ou pressionado com a “barriga contra a placa (cuidando do isolamento para que não houvesse curto-circuito) para que o codificador fosse montado a) mais ou menos uniformemente eb) não oscilaria. Historicamente, tenho uma segunda opção.
Para o caso, é importante que a altura da placa com peças, excluindo o codificador, não tenha mais (ou não muito mais) 5 mm.
Se a placa do Arduino não estiver pronta, então para que tudo funcione, você deve primeiro gravar o carregador de inicialização do Arduino no controlador ATmega328P.Para fazer isso, primeiro, adicione uma descrição do controlador ao ambiente do Arduino. Para fazer isso, acesse
o site oficial do Arduino e faça o download do arquivo de descrição adequado para sua versão do ambiente (
para 1.6 ,
para 1.5 ,
para 1.0 ).
O conteúdo do arquivo morto deve ser extraído para a pasta de hardware da pasta de ambiente do Arduino. No futuro, descrevo o que está acontecendo no exemplo do ambiente 1.0.3, que ainda uso.
Quando as descrições são copiadas, você deve iniciar o Arduino e carregar o esboço do programador no Arduino, que será usado como esse próprio programador. O esboço está localizado no menu Arquivo - Exemplos - ArduinoISP.

Obviamente, você deve escolher sua placa e porta. Eu escolho Mega, porque eu tenho:

Após carregar o esboço do programador, você precisa mudar para o quadro de destino. I.e. no nosso caso - ATmega328 com uma frequência de 8 MHz e um oscilador mestre interno. Estará na lista de painéis se as descrições mencionadas acima forem copiadas corretamente:

Agora você precisa conectar as linhas MISO, MOSI e SCK da placa do programador e da placa com o futuro Arduino, além de conectar RESET, GND e VCC. Além disso, o poder é o melhor em último lugar.
Com base no infográfico acima e na descrição do Arduino Mega, a seguinte imagem aparece:
SPI - Arduino Mega - ATmega328p
MISO - 50 - 16
MOSI - 51 - 15
SCK - 52 - 17
SS (RESET) - 53 - 29
Conexão física ao seu gosto, usei um método exclusivamente bárbaro - fios comuns da tábua de pão diretamente nos orifícios da placa, sem solda e isolamento:

Se tudo estiver pronto, anote o gerenciador de inicialização. Primeiro, verifique se o programador correto está selecionado (Serviço - Programador - Arduino como ISP):

Em seguida, fazemos o serviço - Bootloader Record:

Depois disso, a saída é uma placa Arduino minimalista, para carregar esboços nos quais você pode usar o adaptador USB-Serial ou uma placa Arduino completa com esse adaptador na placa. No primeiro caso, você precisa conectar RX e TX transversalmente e não se esqueça de conectar um ponto comum. No segundo caso, é adicionalmente necessário colocar em curto o RESET Arduino, que é usado como um adaptador, para o aterramento.
Se você, como eu, não possui um circuito para redefinir automaticamente o controlador antes de baixar o esboço, há duas opções: puxar sua redefinição ou simplesmente ligar sua energia quando o ambiente do Arduino diz que o download foi iniciado.
Habitação
O caso, como eu disse, é modular. Isso significa que, na parte interna oculta dos olhos, você pode deixar entrar o plástico velho e que não é mais adequado. Você pode colocar eletrônicos nele:

Chamo a atenção para o fato de que o caso é específico e foi projetado para caber na minha versão do preenchimento.
Proponho tornar o rotor transparente, para dispersar a luz dos indicadores. Para maior peso, uma porca M16 pode ser inserida dentro do rotor:

Ainda precisa de uma camisa do rotor e uma capa. A tampa é simplesmente inserida para dentro e repousa sobre o atrito. E, é claro, você não pode prescindir das partes superior e inferior da caixa externa.
Imprimi um rotor com um preenchimento de 10%, o restante dos elementos com um preenchimento de 5%. Plástico - PLA. A temperatura definida do bico na minha impressora é de 200 ° C nas três primeiras camadas, e de 185 ° C na próxima. Infelizmente, não sei dizer qual é a temperatura real do bico. A mesa está fria.
A montagem é simples.

As placas são colocadas nas ranhuras da caixa durável, os LEDs - pernas nas ranhuras da parte inferior da caixa durável. A antena do transmissor é derrubada, o receptor de carregamento sem fio é derrubado da mesma maneira - para que fique mais próximo dessa mesma carga.

O preenchimento é fixado por uma placa intermediária, na ranhura da qual passa a fiação do encoder.
O codificador é fixado com a placa superior, todos juntos são apertados com parafusos M4x30, que cortam as roscas em plástico.
Agora, o estojo durável pode ser colocado ao meio do estojo externo. Um rotor é colocado no eixo do codificador e uma camisa é colocada no rotor. Opcionalmente, um tapete antiderrapante é colado na parte inferior do corpo. Outra opção é uma inserção decorativa que oculta a costura entre as metades do corpo.
CódigoNo código, você precisa especificar comandos para ligar e desligar seus dispositivos periféricos. Opcional - altere o tempo limite do desligamento automático.
Tudo isso está localizado na seção variável.
Modelo de caso
por referência .
Só isso.
PS: Tentei não esquecer nada, mas consegui. Nesse caso, peço desculpas e farei o possível para responder corretamente às perguntas principais e corrigir os erros.