Sensor de Radiação Ultravioleta com Arduino

CONHEÇA O SENSOR

O Módulo Sensor de Radiação Ultravioleta GY-8511, vendido na SmartKits é o melhor modelo de sensor que detecta a intensidade de luz ultravioleta ao seu redor que já tive a oportunidade de programar.


Figura 1: Sensor de Radiação UV (fonte SmartKits)

A sua saída gera um sinal analógico proporcional à quantidade de luz ultravioleta detectada, operando num espectro de frequência entre 280 a 390 nm compreendendo todo o espectro UV-B, que vai até 315 nm, e boa parte do espectro UV-A que vai até 400 nm. Em escala que conhecemos de raios UV, ele compreende do nível 0 ao 11 conforme imagem abaixo:

Figura 2: Divisão do espectro UV.

Sendo que se a escala medida pelo sensor estiver entre 0 e 2 é necessário aplicação de protetor solar fator de proteção 15, se for 3 ou 4 a escala mensurada o protetor solar terá que ser 15+, já escala com resultado 5 ou 6 teríamos que usar protetor solar com SPF 30+, entre 7 e 9 o fator de proteção seria 50 e acima de 10 UV o fator teria que ser 50+, mas a pergunta é, como eu saberia qual nível UV estaria naquele momento?

A IDEIA DO PROJETO

É aí que entra nosso projeto para que você, que é cliente SmartKits ou um leitor deste blog, possa replicar e evoluí-lo para quem sabe apresentação em uma feira de ciências, um TCC de fim de curso ou quem sabe desenvolver um produto, afinal qual mamãe não gostaria de ter um sistema portátil recarregável em sua bolsa para garantir a saúde da pele de seu filho e prevenindo possíveis condições de queimaduras solares?

Porém, além de aplicação na saúde esse sensor também é incrivelmente útil na criação de dispositivos que detectam o índice de UV para dados meteorológicos e esses dados serem usados na agricultura por exemplo.

Figura 3: pinagem do Sensor de Radiação Ultravioleta.

O módulo sensor estudado neste post, possui 5 pinos, são eles:

  • VIN – Pino de ligação do sensor com alimentação 5V, logo ele irá regular para 3,3V;
  • 3V3 – Pino de ligação do sensor com alimentação 3,3V, esse é o pino ideal para alimentar, pois tratando-se de projetos embarcados e IoT (pois esse tutorial poderá virar um projeto IoT) falamos de alimentação em 3,3V.
  • GND – Ligado no 0V;
  • OUT – Saída Analógica do sensor;
  • EM – Pino de habilitação do sensor e referência (não há necessidade de uso neste projeto, esse pino usamos quando ocorre instabilidades de temperaturas com mudanças bruscas, de frio para quente por exemplo.

Figura 4: componentes do Sensor de Raio UV.

E como todo bom módulo, o sensor GYML8511 funciona com tensão contínua entre 3 a 5 V, o que é conveniente tanto para Arduino quanto outros microcontroladores, observe a montagem de nosso projeto na figura abaixo.

Figura 5: Circuito de montagem do projeto detector de raios UV.

Eu, Sandro Mesquita, juntamente com a equipe top da SmartKits tomamos o cuidado em lhe entregar um tutorial o mais próximo possível de um produto final, onde ao comprar o sensor com a gente você já tenha uma ideia e um projeto testado para iniciar sua aplicação. Para isso montamos o circuito de recarga das baterias de Íon-Lítio 18650, que também é vendido em nosso site, sem precisar retirar elas do sistema, basta apenas conectar uma fonte de energia de 12v ou 9v (isso você vai definir e ajustar no regulador de tensão LM2596), o importante é que a tensão de saída dele seja ajustado para 8v que vai diretamente para a BMS 2S de 7,4v.

Então para facilitar o desenvolvimento de seu projeto, separei os componentes com os links para comprar na loja SmartKits em dois tópicos. O tópico 2.1 caso você queira apenas comprar o material necessário para desenvolver um protótipo para estudar e replicar o que vamos ensinar aqui. O tópico 2.2 são os componentes necessários para complementar e desenvolver um produto bem legal. Vale destacar você precisa de PLA para imprimir uma case para seu produto. Se você ainda não tem impressora 3D, não perca essa chance de comprar uma na SmartKits.

  1. Lista de componentes para protótipo
  1. Lista de componentes para desenvolver o produto

Além desses componentes, para desenvolver o produto você precisará de ferramentas, se ainda não tem, você pode adquirir também na loja SmartKits:

Para montá-lo, você poderá fazer em um recipiente reciclado ou modelar e imprimir um na impressora 3D, se sua opção for a segunda, você também precisará de mais 02 coisas:

E todo bom maker, não deixa de ter em seu arsenal uma pistola de cola quente para fazer os ajustes final e fixar aqueles componentes que não tem como parafusar, se ainda não tem em casa, pra sua sorte também temos na loja SmartKits:

Se você não percebeu, acabou de ganhar de brinde neste post uma super dica que todo iniciante tem dúvida, “O que preciso ter em meu laboratório para iniciar no mundo maker?

Seguindo o esquema de ligação, usando o display OLED nas portas SDA e SCL do Arduino e o pino OUT do sensor no pino A3 do Arduino, você terá o projeto pronto para receber o código.

Figura 6: Código – Declaração das variáveis e setup.

A biblioteca usada neste projeto já vem incorporada na IDE, porém caso precise, segue o link do site Arduino para você conhecer o funcionamento da biblioteca “U8glib.h” e o link do Github para baixá-la.

https://www.arduino.cc/reference/en/libraries/u8glib/

https://github.com/olikraus/U8glib_Arduino

Apesar de não usarmos o pino EN, escrevi o uso dele no código, no caso ele estaria na linha 4, com a declaração da variável pinoRef = A2, ou seja, essa variável seria a referência de alimentação do sensor para no caso de instabilidade dela, observe a imagem abaixo de como ficaria a ligação do sensor:

Figura 6: Conexões do Arduino UNO com o Sensor de Radiação Ultravioleta

Logo no void setup() é necessário definir que os pinos A3 e A2 (se for usá-lo) são do modo entrada, INPUT.

Nas linhas 12, 13, 14 e 15 ainda da imagem acima temos a configuração do display de OLED, no próprio código tem comentários sobre cada linha executada.

Figura 7: Código – void loop.

No void loop temos a chamada para as funções Nivel_UV() (iremos estudá-la logo abaixo), a função da biblioteca U8glib.h responsável por apresentar a imagem no display OLED. Caso haja algo novo para transmitir a linha 21 chama a função Display() que imprime o resultado na tela do OLED.Logo após aguardamos 200ms para que a comunicação i2C e impressão na tela ocorra tranquilamente.

Figura 8: Código – Função de classificação do código UV.

Na função Nivel_UV() é onde está a regar do negócio, o Sensor de Radiação Ultravioleta varia o valor de sua saída em forma de tensão de acordo com a intensidade dos raios inseridos sobre ele, logo a linha 27 seria a responsável por fazer essa leitura, porém precisamos converter para uma faixa de valor que dependa da tensão de referência , como ligamos o nosso sensor na tensão 3,3v a formula aplicada é a descrita na linha 32, caso seja em 5v altere o 3.3 por 5 ou se você esta usando o pino de referência, aquele que mostrei ligado na imagem com o Arduino Uno, substitua o valor 3.3 pela variável valorSensorRef, pois ela estará armazenando o que esta sendo lido no pino A2 do Arduino conforme montagem.

Já das linhas 36 a 47 está a lógica IF do que será apresentado no display, no meu caso optei por apresentar o valor do nível UV, mas você poderá alterar para informar qual protetor solar a mamãe deve passar no seu filho, ou seja, aqui é só pra abrir sua mente, agora vai depender do seu esforço de estudar e aplicar sua imaginação.

Figura 9: Código – Função de escrita no Display de OLED.

Na última imagem do código, a figura 9 representa a função de impressão dos valores no Display de OLED. Lembrando que se você for alterar o que deseja imprimir, logo as linhas que chamam as funções u8g.drawFrame, drawBox, drawStr e setPrintPos devem ter seus valores de coordenadas alterados para ajuste na tela de onde a informação deve aparecer.

Segue abaixo o sketch completo.

 

Figura 10: Foto do projeto montado.

Na imagem acima apresentamos a simplicidade da ligação. Não montamos o circuito da bateria pois poderia causar confusão no momento da montagem. Porém seguindo a imagem do circuito apresentada no início desse tutorial você terá sucesso em sua montagem do circuito completo.

Também sugiro desenvolver uma case e imprimir na 3D, iria ficar top né?

Figura 11: Foto do projeto testado.

Testando o sensor e funcionando conforme esperado, nesta imagem, o registro do teste foi feito dentro de casa, por isso o valor 01 UV. Tambem levei o sensor para minha janela chegando a 7UV. Instalei na vela da prancha de WindSurf chegando a valores de 9 UV. Em resumo, muita radiação Ultravioleta no momento da prática do esporte as 15h.

Qualquer dúvida estou a disposição. Comenta aqui que teremos o prazer em ajudar, e se você melhorar esse projeto, fala pra nós, envia as fotos de como tá ficando.

Sandro Costa Mesquita

Professor de Robótica com uso de plataforma Arduino, Raspberry e Esp32: Estudando e aplicando conhecimentos de Inteligência Artificial usando a Linguagem Python como base. Professor do Governo do Estado do Ceará no curso Técnico em Eletrotécnica com as disciplinas Estudos dos materiais e Geração, Transmissão e Distribuição de Energia Elétrica. Professor de Faculdades e centro Universitários nos cursos de Análise e Desenvolvimento de Sistema, Engenharia de Produção e Engenharia de Software ministrando as disciplinas de Integração Homem Máquina, Lógica de Programação e sistemas embarcados.

Post navigation

Deixe um Comentário

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Modelos e tipos de Arduino

Placa Arduino: Open Software e Open Hardware

Como usar o Módulo Joystick 5D Rocker JY50