Utilizando o ESP32-C3 em conjunto com o sensor de luz ultravioleta ML8511 e a Arduíno IDE

26/09/2023 11:45 Comentário(s) Por Carlos Korovsky

No tutorial de hoje, vamos mostrar como usar o ESP32-C3 em conjunto com o sensor ML8511 para luminosidade no espectro ultravioleta, também vamos mostrar essas informações em um display OLED.


Materiais utilizados: 

  • ESP32-C3 (UKT-ESP32C3-DEV-MINI-USB) - (veja onde comprar)
  • ML8511 
  • Display LCD (128x32)
  • Jumpers ou fios

Esquemático:

Bibliotecas Arduíno utilizadas: 

  • ML8511 by RobTillaart 
  • SSD1306 by Adafruit

E dependências das respectivas bibliotecas acima.

Seleção da placa na Arduíno IDE:

Selecionamos o módulo ESP32C3.

Código:

#include "Adafruit_SSD1306.h"
#include <ML8511.h>

// Define o tamanho do display OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32

#define ANALOGPIN 0
ML8511 ml(ANALOGPIN);
// Inidicaliza o sensor e o display
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
  //Velocidade do monitor serial
  Serial.begin(115200);
  // Pinos do barramento I2C
  Wire.begin(3, 2);

   // Verifica estado de inicialização do display, acusa falha em caso de erro
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0, false, true)) {
    Serial.println(F("Falha ao inicializar o SSD1306"));
    while (1);
  }
  //Parametros da tensão de operação do sensor e do adc
  ml.setVoltsPerStep(3.3, 4096);   

  // Limpe o buffer do display
  display.clearDisplay();

  // Configuração do texto
  display.setTextSize(1.5);             // Tamanho do texto (1 = 6x8 pixels)
  display.setTextColor(SSD1306_WHITE);  // Cor do texto
}

void loop() {
  // Tempo entre cada medida
  delay(2000);


  Serial.print("UV: ");
  Serial.println( ml.getUV(), 4);

  // Formata o dados para exibir no display
  char uvString[25];
  sprintf(uvString, "Ultravioleta: %.5f", ml.getUV());

  // Limpa o buffer do display
  display.clearDisplay();
  // Posição inicial do cursor no display
  display.setCursor(0, 0);
  //Envia novos dados ao buffer do display
  display.println(uvString);
  // Atualiza o display para mostrar os dados no buffer
  display.display();
}

Resultado:

Agora, o ESP32-C3 deve ler os valores do sensor ML8511 e exibi-los no display OLED. Você verá a luminosidade no espectro ultravioleta em tempo real.


Este é um exemplo básico para começar a trabalhar com o sensor ML8511 e um display OLED em um ESP32-C3. Você pode personalizar o código e adicionar recursos adicionais, como a conversão para unidades UV específicas ou a inclusão de informações adicionais no display, conforme necessário para o seu projeto.

Sobre o autor:

Matheus desempenha o papel de desenvolvedor de sistemas de tecnologia da informação dentro da equipe da UKTech. Possui  experiência no
domínio de micro controladores e desenvolvimento de software, e está na reta final de sua graduação em Engenharia de Computação. 
Em seus momentos de lazer, ele se dedica a interesses como jogos de computador e a apreciação de animes.
Partilhar -