
Devo dizer imediatamente, a manchete é talvez um pouco alta. Eu realmente precisava puxar apenas um comando do protocolo para controlar o dimmer. Sobre como isso foi feito e o que aconteceu no final, continue lendo no artigo.
Portanto, existe uma empresa alemã
EOS Premium SPA Technology . Produz uma ampla gama de equipamentos para saunas. Eles têm painéis de controle bastante interessantes, com telas sensíveis ao toque, uma unidade de energia de alta qualidade. É verdade que eles são muito caros, mas parecem se justificar.
No entanto, há um grande menos em seus equipamentos. As unidades de energia podem controlar fornos elétricos de vários quilowatts, mas, ao mesmo tempo, possuem um canal de controle de iluminação muito fraco. Apenas até 150 watts! A iluminação pode ser convenientemente controlada diretamente do controle remoto, ligar / desligar e ajustar o brilho. Mas 150 W é MUITO pequeno! Existem unidades adicionais para controle de iluminação à venda, mas o preço é muito desumano.
Nesse sentido, a tarefa parecia criar um dimmer que controlaria a carga com maior potência e, além disso, carga de baixa tensão (faixa de LED em 12 / 24V ou lâmpadas de halogênio em 24V).
Halogênios, embora consumam mais e tenham tendência a se esgotar, mas, na minha opinião, a iluminação deles é mais agradável. Embora isso seja uma questão de gosto. Em geral, essa tarefa amadureceu. Por que essa iluminação é necessária é bem ilustrado nesta figura:

O EOS lança muitos painéis de controle, mas os mais comuns são o Emotec e o Emotouch III. Nós vamos lidar com eles.


Devo dizer que o painel de controle no equipamento EOS está conectado à unidade de energia através de um cabo telefônico convencional de 4 pinos:

Uma rápida inspeção da placa mostrou que dois fios foram alocados para energia de 24V e os outros dois na linha de interface RS-485. Em geral, uma implementação padrão. As linhas A e B estão no meio:

Após conectar-se à linha usando o conversor USB-RS-485 e definir a velocidade de 9600 bps a partir do careca, vimos bytes em execução, mas seu objetivo, é claro, era desconhecido. O protocolo de troca não foi encontrado em domínio público e o próprio fabricante se recusou a fornecê-lo, embora uma solicitação correspondente tenha sido enviada a eles.
Eu tive que lidar com me decodificar :-)
Sim, notarei imediatamente uma nuance. O controle do dimmer funciona apenas depois que a unidade de energia é colocada em operação. Isso é claramente visível quando a lâmpada está conectada à saída do dimmer embutido. Começa a brilhar somente depois que a sauna começa a esquentar.
Inicialmente, eles começaram a classificar as velocidades de 9600 a 115200 bps da série padrão.
E a uma velocidade de 38400, percebi que os comandos são separados por dois bytes padrão 0x0A, 0x0D.
Bem, isso já é alguma coisa. Vamos fazer o próximo truque. Vamos procurar o comando que precisamos pelo valor do brilho. De repente, é transmitido em claro.
Definimos o valor 73 (0x49) no controle remoto:

Em seguida, removemos o log e procuramos estupidamente esse byte lá:

Voila! Encontramos, olhe para a esquerda e direita para os bytes 0x0A, 0x0D, tentando selecionar o pacote que precisamos. E, como resultado, obtemos essa estrutura:
0x0E 0x04 0x04 0x49 0x49 0x00 0x00 0xD1 0x0A 0x0D
Durante os experimentos, verificou-se que 2 e 3 bytes são sempre iguais a 0x04, 4 e 5 definem o brilho em porcentagem, 6 e 7 são iguais a 0, 8 - muda, o que significa que não está claro, 9 e 10 - 0x0A, 0xD.
Como as experiências demonstraram, o primeiro byte é o endereço. Define o chamado número do quarto. O fato é que os controles remotos EOS podem controlar várias unidades de energia ao mesmo tempo. Cada um tem seu próprio endereço, que é transmitido neste byte.
Os endereços são os seguintes:
Para painéis de controle do forno:
01 - primeiro quarto
21 - segundo quarto
41 - terceiro quarto
61 - quarto quarto
81 - quinto quarto
A1 - sexto quarto
C1 - sétimo quarto
E1 - oitava sala
Para painéis de controle de gerador de vapor:
0E - primeiro quarto
2E - segundo quarto
4E - terceiro quarto
6E - quarto quarto
8E - quinto quarto
AE - sexto quarto
CE - sétima sala
EE - oitavo quarto
Na verdade, tudo isso é decodificação.
Para verificar, por assim dizer na "dinâmica", lançamos rapidamente o programa no Delphi para exibir o valor do brilho e giramos o controle deslizante. Tudo se cumpre claramente.
Depois disso, desenvolvemos em C um programa simples para decodificar esses pacotes e lançamos tudo no hardware. O dispositivo em si é bastante simples. Lá, o PWM comum é implementado em uma chave de poder, mas, se estiver interessado, posso escrever um artigo separado sobre isso.