sexta-feira, 24 de julho de 2015

Ventiduino - ventilador controlado por controle remoto usando Arduino

Essa vai pra você que quer comodidade total (assim como eu), afinal de contas,se ar condicionado tem controle remoto, pq não há no mercado um simples ventilador assim ? afinal de contas, muitas vezes um simples ventilador de mesa é tudo que você precisa.

Eu sou do tipo calorento, porém tenho sinusite crônica, ou seja não vivo sem um bom ventilador. Apesar disso, muitas vezes eu acordo a noite ou incomodado com calor e o ventilador está desligado, ou incomodado com o vento excessivo que eu deixei ao dormir, sendo obrigado a levantar da cama para ligar/desligar/alterar a potência. Depois de muito pesquisar e ler possíveis soluções, cheguei a conclusão de que a maneira mais fácil e barata para controlar o ventilador remotamente é utilizando o Arduino.

O Arduino Mini

No meu projeto estou levando em conta a reciclagem de diversos componentes que já tenho em casa, para baratear o máximo possível, então eu encontrei no mercado uma solução bem simples e barata do arduino chamado Arduino Mini:
Considerando o preço (em torno de R$15,00), fiquei impressionado com o tamanho e a versatilidade, ele é tão pequeno que pode ser encaixado em qualquer protoboard, porém ele faz tudo que o UNO também faz (só que é bem mais barato), ele somente não tem a saída USB, ou seja, a sua programação tem que ser por serial TTL. Eu não vejo problema algum nisso, pois de nada vai adiantar uma interface USB depois que o projeto estiver pronto. Na verdade as placas arduino com interface USB, contem embutido um conversor de USB para TTL Serial, algo que a encarece.

Bom, meu PC tem uma saída serial, porém eu não posso utiliza-la diretamente no arduino, pois ele é um serial RS-232 que trabalha com sinal digital de 12v. Procurando na internet eu encontrei um pequeno e simples (e de baixo custo) circuito que converte a saída digital de 12v do RS-232 para os 3.3v da saída TTL:

Clique na imagem para amplia-la

A única coisa que faltou foi o pino DTR, necessário para resetar a placa do arduino antes de enviar o sketch. Eu resolvi isso ligando um capacitor cerâmico de 0,1uF entre o pino RTS da serial e o pino DTR (ou reset) do arduino (conforme sugere no proprio site da arduino). Na verdade não é necessário usar o DTR, porém você terá que apertar o botão reset logo antes do IDE do arduino enviar o sketch, e muitas vezes saber a hora exata de apertar o reset pode ser um problema. Com esse capacitor, você verá o arduino resetar automaticamente antes do PC enviar o sketch para a placa do aduino. E é claro, usei um simples cabo USB para pegar os 5v necessários para alimentar a plaquinha conversora e a plaquinha do Arduino. Ahh e lembre-se que as saidas Tx e Rx entre a serial e a placa do arduino são em "crossing over" ou seja, é invertido: Rx no Tx e Tx no Rx.

A modificação

Inicialmente eu pensei que seria necessário adaptar um DIMMER controlado pelo arduino, para desligar/ligar e controlar a velocidade, (cheguei inclusive à comprar as peças e fazer o código para isso), porém eu pensei melhor, e percebi que eu estava na verdade fazendo da forma mais difícil e menos funcional, pois desta forma ele somente seria controlável pelo controle remoto. Não é necessário ter outro mecanismo de velocidade, pois o próprio ventilador já tem ! O ventilador em questão é um "Arno Alívio", que tem 3 velocidades controladas por um botão frontal:


As velocidades são selecionáveis por 3 fios internos que sobe para o motor, cada um para uma velocidade, quando nenhum dos 3 está energizado, o ventilador desliga. A ideia é transferir esse chaveamento para 3 relês e controla-los pelo arduino, e ainda não desativar a chave frontal física do ventilador, essa agora foi redirecionada para 3 portas no arduino, assim eu posso controlar o ventilador tanto pelo controle remoto como pelo botão original. O primeiro passo foi desligar a chave física e no lugar ligar o +5v e quando é acionada a chave, ela redireciona para uma das 3 saídas, essas ligadas em 3 portas do arduino ele sabe se você mexeu na chave (alterou o estado dela) e assim a velocidade e até mesmo se você quer desliga-lo por ela (não há +5v em nenhuma das 3 portas). Para entender melhor, de uma olhada nesse esquema.

Clique na imagem para ampliar

Software

Nada disso vai funcionar se não tiver o código implementado. Se quiser copiar o que eu fiz, clique aqui, nele eu usei uma biblioteca para codificar controle remoto, que está junto, afinal de contas , reinventar a roda não é preciso.

O Resultado final é esse:

Repare que eu deixei os pinos da serial disponíveis para futura atualização da firmware


Programando o Controle Remoto



Resultado Final

Agora é adeus sair da cama no meio da noite !


Atualização 02/12/2016

O projeto já vai fazer mais de um ano, e funciona perfeitamente ! Eu considero um projeto de sucesso que já ajudou muita gente a modificar seu ventilador, e proporcionar mais conforto ao seu utilizador. Parece algo simples, mas esse projeto já virou trabalho de TCC em curso de engenharia e já foi até copiado para outros projetos maiores.

Devido a grande procura de pessoas sobre ele, eu tive um sério problema de pessoas sem conhecimento algum em eletrônica me procurando no meu e-mail e me "perturbando" com questões básicas que poderiam ser resolvidas com um pouco mais de dedicação e estudo. Sinceramente, já é de muita boa vontade eu perder meu tempo postando o projeto aqui, e disponibilizando inclusive o código fonte (a parte mais complicada), fotos e videos do funcionamento. Eu trabalho como todo mundo e nunca ganhei nada com ele (nem com outros projetos), nem mesmo oferecendo consultoria. Por isso eu dei um basta e removi os comentários e meu e mail dos projetos a fim de ter paz.

Porém eu não quero prejudicar aquele que realmente tem condições técnicas de realizar o projeto, por isso eu criei um grupo no Yahoo, para que eu e inclusive outros usuários possam ajudar a construir você mesmo o seu próprio Ventiduíno e até mesmo outros que possam surgir. Então se você precisa de uma ajuda de nível intermediário, peça sua inscrição aqui:


Irei aprovar assim que possível.