Iluminação Inteligente com Arduino

Créditos de imagem: https://es.pngtree.com/freepng/brain-bulb-icon-symbol-design-logo-smart-idea-vector-download_5199221.html brain bulb icon symbol design logo smart idea vector download

 

Introdução

 

Você provavelmente já saiu do seu quarto ou qualquer outro cômodo e esqueceu a luz acesa, ou até mesmo já precisou que ela estivesse acesa por estar com as mãos ocupadas ao voltar do mercado. Este tutorial foi desenvolvido pensado na comodidade, por isso vamos colocar em prática um projeto com aplicação prática no nosso dia a dia.

Estamos falando de um sensor que permite que a iluminação de um cômodo atue de forma automática e inteligente. Basicamente este dispositivo conta a quantidade de pessoas em um cômodo para que controle as luzes ou o que sua imaginação permitir. Como não é controlado por tempo, nos permite ficar por longos períodos no ambiente sem que fiquemos no escuro, o que é muito útil.

Ao final deste tutorial você terá acesso ao código fonte utilizado…

 

Materiais

 

Para fazer este projeto, iremos precisar dos seguintes materiais:

 

Resumo

 

Nosso projeto funcionará da seguinte forma:

  • O Arduino será responsável por executar e processar o nosso código, vale lembra que as ligações dos componentes são as mesmas para qualquer Arduino que tenha o micro controlador Atmega328p, são eles o Arduino UNO, Arduino NANO e Arduino Pro Mini.
  • Os sensores reflexivos infravermelho serão responsáveis por informar ao Arduino que há alguém entrando ou saindo do cômodo. Isso ocorrerá de maneira que um sensor será responsável pela entrada e outro pela saída, calculando a quantidade de pessoas existentes no ambiente. Esses sensores funcionam da seguinte forma:
  • Assim que algo está dentro do campo de detecção dos sensores reflexivos, a luz infravermelha é refletida e chega até o fototransistor, enviando nível lógico 0 ao Arduino. O trimpot embutido é para fazer ajuste de distância e sensibilidade de sensor (necessário se usado em lugares muito iluminados pela luz solar).
  • O led emissor de luz infravermelha auxiliará na quantidade de luz a ser refletida para o fototransistor.
  • LDR, responsável por captar e enviar para o Arduino a luminosidade do ambiente. O capacitor eletrolítico em paralelo ao LDR serve para diminuir a taxa de leitura, para que não haja falsa leitura nos momentos de pôr-do-sol.
  • Trimpot ou potenciômetro servem para ajustar a sensibilidade de chaveamento do transistor.
  • O transistor quando acionado, liga os sensores e o led IR, desligando-os no período de alta iluminação natural para economizar energia elétrica.
  • Pushbutton, realiza a troca manual do estado da iluminação.
  • Resistores para limitar corrente elétrica nos demais componentes.

 

Executando o projeto

 

Montando os componentes na protoboard:

Antes de mais nada, com o cabo USB do Arduino desconectado, ligue os jumpers da porta 5V e GND do Arduino na protoboard como na figura abaixo.

 

Observe que há jumpers conectando as duas extremidades de alimentação da protoboard.

Inicie o circuito conectando o transistor e o resistor de 330 OHM. O coletor do transistor é ligado ao 5V e sua base em um terminal do resistor, o segundo terminal do resistor é ligado a porta digital 6 do Arduino.

Conecte o led emissor de luz infravermelha ao circuito, de modo que seu terminal negativo esteja no GND, seu terminal positivo em um dos terminais do resistor de 270 OHM.

Vamos aos sensores!!!

Observando-os de frente, com os leds apontados para cima, os pinos dos sensores são respectivamente da esquerda para direita SINAL (out/D1), GND (G) e VCC. Conecte os pinos de VCC juntamente ao terminal sem conexões do resistor do passo anterior. Após feito isso, conecte o negativo no GND e os pinos de sinal nas portas digitais 3 e 4 do Arduino. O terminal emissor do transistor é ligado aos terminais positivos dos sensores e do led, como mostrado abaixo.

Conecte os terminais das extremidades do potenciômetro no VCC e GND (neste caso a polaridade não interfere), o terminal central deve ser ligado à porta analógica A1 do Arduino.

O terminal negativo do led deve ser conectado ao GND, seu terminal positivo conectado ao resistor de 330 OHM, e este por sua vez na porta digital 2 do Arduino. Ao final do projeto, você pode substituir o led e o resistor 330 OHM por um módulo relé. Lembrando que o módulo relé se liga com nível lógico 0.

Conecte o LDR em paralelo com o capacitor eletrolítico, de modo que o terminal positivo do capacitor seja ligado ao VCC e o negativo ao resistor de 10K OHM, juntamente na porta analógica A0 do Arduino. O próximo terminal do resistor de ver ligado ao GND.

O pushbutton será ligado ao VCC e ao resistor de 10K OHM, juntamente na porta digital 5 do Arduino. Repare que ele tem quatro terminais, dois deles estão em curto, se necessário, utilize um multímetro na função de continuidade para descobrir quais destes terminais estão em curto. O segundo terminal do resistor deve ser conectado ao GND.

Confira abaixo o circuito montado em uma protoboard, já com o Arduino conectado ao computador.

Se o seu circuito se encontra parecido com este, significa que finalizamos a parte da montagem, sendo assim, vamos à programação!!!

 

Programação

 

O código para a programação se encontra disponível aqui, mas recomendo fortemente que você leia a explicação atentamente para que você consiga criar sua própria aplicação.

No primeiro momento do código definimos as portas de entrada, saída e declarar todas as variáveis.

Observe que as variáveis “luz”, “valorLDR” e “pessoas” são do tipo int, pois utilizaremos dados numéricos para as leituras e cálculos. As variáveis booleanas serão apenas para indicar os estados “ ligado” e “desligado”, mas também poderiam ser usadas variáveis do tipo int representadas por 1 e 0.

Após definirmos as portas e declararmos as variáveis, vamos ao setup.

Neste passo vamos configurar o modo das portas, como entrada ou saída, e também iniciaremos o monitor serial, através dele realizaremos os testes.

Neste passo serão criadas três funções que nos auxiliarão no desenvolvimento, elas serão chamadas para execução ao decorrer do loop.

A primeira realiza a leitura dos dois sensores reflexivos e após isso, compara em cada um deles seu estado atual com seu estado anterior. Ou seja:

Se o estado atual do sensor de entrada for diferente do estado anterior, e após isso o sensor de saída for acionado, significa que alguém entrou no cômodo, somando 1 ao número de pessoas no ambiente. O mesmo ocorre com o sensor de saída, porém, subtraindo 1 ao número de pessoas no ambiente. Se por algum motivo o número de pessoas for menor que 0, ele se iguala a 0 novamente, para que o número de pessoas não fique negativo.

A segunda controla o estado da lâmpada de acordo com a quantidade de pessoas. Note que o estado da lâmpada é escrito no pino de saída, caso seja utilizado um módulo relé, a expressão “digitalWrite(pinLamp, estadoLamp);” deve ser substituída pela função comentada, já que a maioria dos módulos relé são acionados com nível lógico 0.

A última função realiza apenas a leitura do LDR, não seria necessário criar uma função para isso, foi criada apenas com o intuito de facilitar a chamada da leitura.

O Loop é a função responsável por executar infinitamente tudo que estiver dentro dele, incluindo as outras funções, quando chamadas. Ele está dividido em três partes.

A primeira é responsável por fazer a leitura dos sensores e chamar para execução as funções.

 

A segunda parte é responsável pelo controle da luminosidade do ambiente e do pushbotton, caso estiver com luminosidade alta. Lembrando que o ajuste da luminosidade é feito através do trimpot.

Enquanto o valor de leitura do LDR for maior que o ajuste de luminosidade do trimpot, e, a lâmpada estiver desligada, ou seja, estiver de dia, os sensores são desligados fazendo com que a iluminação responda apenas através do pushbutton.

Nesta última parte da nossa programação, é efetuada apenas a leitura do pushbutton caso a luz ambiente esteja baixa e os sensores ligados. Isso faz com que o pushbutton inverta o estado da lâmpada.

 

Ajustes e Testes

 

Observe a imagem para realização dos próximos passos:

Para realizar os ajustes dos sensores, carregue o código no seu Arduino, e com o monitor serial aberto execute os seguintes passos:

  1. Com uma fita isolante, tampe o LDR para que não receba luz e assim ligue os sensores reflexivos. No seu monitor serial deve aparecer algo como abaixo.
  2. Pegue uma chave de fenda ou philips pequena e ajuste o trimpot dos sensores até que fique apenas com um led ligado. Faça isso para os dois sensores.
  3. Ainda com o LDR tampado e observando o monitor serial, ajuste o trimpot do LDR até que a variável “LUZ” chegue a um valor próximo de 590. Este valor pode ser alterado por você no futuro, pois é ele que determinará a sensibilidade do sistema com relação a luz natural do ambiente.
  4. Antes de retirar a fita do LDR, confirme que seu monitor serial apresenta valores parecidos com o da imagem do passo 1. Os sensores de entrada e saída devem estar em “1”, os valores da variável “LUZ” devem ser próximos a “590”, caso a variável “pessoas” seja maior que 0, pressione o pushbutton para desligar a saída.
  5. Retire a fita do LDR, agora é só instalar no cômodo de sua preferência e utilizar!!!

 

Conclusão

 

Acabamos de desenvolver uma aplicação simples com diversas funções. O funcionamento se dá basicamente por passar em frente ao sensor, fazendo com que ele conte as pessoas em um dado ambiente e controle uma lâmpada ou qualquer outra carga de acordo com esses dados.

O Arduino serve de protótipo para vários projetos de várias dimensões. Este dispositivo é uma prova que você pode projetar o que quiser!!!

Esperamos que você tenha entendido e conseguido montar nosso projeto.

Chegamos ao final, se toda montagem e programação ocorreu bem, deve funcionar como no vídeo abaixo:

 


Gostou do projeto e também construiu o seu? Avalie o post. Fez adaptações e conseguiu resultados melhores ainda? Tire uma foto e nos marque no Instagram @Eletrogate.

Caso tenha ficado com dúvida ou tenha uma sugestão, use a parte dos comentários aqui embaixo.

Avaliação: 4.7/5. De 11 votos.
Espere por favor...
Enzo Morelli
Enzo Morelli
Técnico em Eletrônica pelo SENAI, cursando Engenharia da Computação, Militar, hobbysta nas áreas de eletrônica, automação, inteligência artificial e domótica.
Acesse nossa loja