<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.uktech.com.br/bloguk/tag/ml8511/feed" rel="self" type="application/rss+xml"/><title>UKTech - Blog UKTech #ML8511</title><description>UKTech - Blog UKTech #ML8511</description><link>https://www.uktech.com.br/bloguk/tag/ml8511</link><lastBuildDate>Thu, 07 May 2026 09:38:05 -0700</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[Utilizando o ESP32-C3 em conjunto com o sensor de luz ultravioleta ML8511 e a Arduíno IDE]]></title><link>https://www.uktech.com.br/bloguk/post/utilizando-o-esp32-c3-em-conjunto-com-o-sensor-de-luzultravioleta-ml8511-e-a-arduíno-ide</link><description><![CDATA[<img align="left" hspace="5" src="https://www.uktech.com.br/images/photo-1635280145597-3eb75459ee55"/>Crie projetos com o ESP32-C3 em conjunto com o sensor ML8511 para medir a luminosidade no espectro ultravioleta e mostrar essas informações em um display OLED.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_wDuwbGK932g4olQbmuIykQ" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_afUrrxdQaj5JR0_DItBh6g" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_x78zbcjv29_vjfy7XNB9Aw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"></style><div data-element-id="elm_St04_W-2aI1zML9qxRoTDQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_St04_W-2aI1zML9qxRoTDQ"] .zpimage-container figure img { width: 1110px ; height: 628.26px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_St04_W-2aI1zML9qxRoTDQ"] .zpimage-container figure img { width:723px ; height:409.22px ; } } @media (max-width: 767px) { [data-element-id="elm_St04_W-2aI1zML9qxRoTDQ"] .zpimage-container figure img { width:415px ; height:234.89px ; } } [data-element-id="elm_St04_W-2aI1zML9qxRoTDQ"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="center" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-center zpimage-tablet-align-center zpimage-mobile-align-center zpimage-size-fit zpimage-tablet-fallback-fit zpimage-mobile-fallback-fit "><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/photo-1635280145597-3eb75459ee55" width="415" height="234.89" loading="lazy" size="fit"/></picture></span></figure></div>
</div></div></div></div></div><div data-element-id="elm_nH7IBjnxQJSL1YQ_n4Y61A" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_tap_zgfCTGeL-JW7fgrhYw" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_LAJ4-P29RsazLZC7lLIxuA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_LAJ4-P29RsazLZC7lLIxuA"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_IwDCegfZTkyBQYIc3yOcHg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_IwDCegfZTkyBQYIc3yOcHg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;"><span style="color:inherit;">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.</span><br/></p><p style="text-align:left;"><span style="color:inherit;"><br/></span></p><div><div><div><p style="text-align:left;"><span style="font-family:verdana, sans-serif;color:rgb(49, 188, 173);font-size:20px;">Materiais utilizados:&nbsp;</span></p><ul><li style="text-align:left;">ESP32-C3 (UKT-ESP32C3-DEV-MINI-USB)<br/></li><li style="color:inherit;text-align:left;"><span style="color:inherit;">ML8511&nbsp;</span><br/></li><li style="color:inherit;text-align:left;"><span style="color:inherit;">Display LCD (128x32)</span></li><li style="color:inherit;text-align:left;">Jumpers ou fios</li></ul></div></div><div style="color:inherit;"><h2 style="text-align:left;"><span style="font-size:20px;">Esquemático:</span></h2></div></div></div>
</div><div data-element-id="elm_tmNN9MFAIv10mlHAcsfWTw" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_tmNN9MFAIv10mlHAcsfWTw"] .zpimage-container figure img { width: 500px ; height: 375.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_tmNN9MFAIv10mlHAcsfWTw"] .zpimage-container figure img { width:500px ; height:375.00px ; } } @media (max-width: 767px) { [data-element-id="elm_tmNN9MFAIv10mlHAcsfWTw"] .zpimage-container figure img { width:500px ; height:375.00px ; } } [data-element-id="elm_tmNN9MFAIv10mlHAcsfWTw"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Utilizando%20o%20ESP32-C3%20em%20conjunto%20com%20o%20sensor%20ml-1-.png" width="500" height="375.00" loading="lazy" size="medium" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_A0_p-rE00McDIH3qkA1vXQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_A0_p-rE00McDIH3qkA1vXQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="font-family:verdana, sans-serif;color:rgb(49, 188, 173);font-size:20px;">Bibliotecas Arduíno utilizadas:&nbsp;</span></p><ul><li><span style="color:inherit;">ML8511 by RobTillaart&nbsp;</span></li><li><span style="color:inherit;">SSD1306 by Adafruit</span></li></ul><div><br/></div><div><span style="color:inherit;">E dependências das respectivas bibliotecas acima.</span><br/></div></div>
</div><div data-element-id="elm_zAx3EBPOsVKPQAJUiMw6jA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_zAx3EBPOsVKPQAJUiMw6jA"].zpelem-heading { border-radius:1px; margin-block-start:-3px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="color:inherit;font-size:20px;">Seleção da placa na Arduíno IDE:</span><br/></h2></div>
<div data-element-id="elm_XsGPIGU9-hYQQ29mUXL0nQ" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_XsGPIGU9-hYQQ29mUXL0nQ"] .zpimage-container figure img { width: 277px !important ; height: 51px !important ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_XsGPIGU9-hYQQ29mUXL0nQ"] .zpimage-container figure img { width:277px ; height:51px ; } } @media (max-width: 767px) { [data-element-id="elm_XsGPIGU9-hYQQ29mUXL0nQ"] .zpimage-container figure img { width:277px ; height:51px ; } } [data-element-id="elm_XsGPIGU9-hYQQ29mUXL0nQ"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-original zpimage-tablet-fallback-original zpimage-mobile-fallback-original hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/2023-09-18-14-53-23-Captura%20de%20tela%20de%202023-09-18%2014-53-18.png" width="277" height="51" loading="lazy" size="original" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_dVdRCBk7I0-rYGu7kWgpXg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_dVdRCBk7I0-rYGu7kWgpXg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="color:inherit;">Selecionamos o módulo ESP32C3.</span><br/></p></div>
</div><div data-element-id="elm_3wpLV_MtYt5510wVR1wFig" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_3wpLV_MtYt5510wVR1wFig"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Código:</span></h2></div>
<div data-element-id="elm_Qds91ejClcv6yLAt2gVt8A" data-element-type="codeSnippet" class="zpelement zpelem-codesnippet "><div class="zpsnippet-container"><pre><code class="fenced-code-block language-arduino"><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string">"Adafruit_SSD1306.h"</span></span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">include</span> <span class="token string">&lt;ML8511.h&gt;</span></span>

<span class="token comment">// Define o tamanho do display OLED</span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">SCREEN_WIDTH</span> <span class="token expression"><span class="token number">128</span></span></span>
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">SCREEN_HEIGHT</span> <span class="token expression"><span class="token number">32</span></span></span>

<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">ANALOGPIN</span> <span class="token expression"><span class="token number">0</span></span></span>
ML8511 <span class="token function">ml</span><span class="token punctuation">(</span>ANALOGPIN<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// Inidicaliza o sensor e o display</span>
Adafruit_SSD1306 <span class="token function">display</span><span class="token punctuation">(</span>SCREEN_WIDTH<span class="token punctuation">,</span> SCREEN_HEIGHT<span class="token punctuation">,</span> <span class="token operator">&amp;</span><span class="token builtin">Wire</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token keyword">void</span> <span class="token keyword">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  <span class="token comment">//Velocidade do monitor serial</span>
  <span class="token builtin">Serial</span><span class="token punctuation">.</span><span class="token function">begin</span><span class="token punctuation">(</span><span class="token number">115200</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token comment">// Pinos do barramento I2C</span>
  <span class="token builtin">Wire</span><span class="token punctuation">.</span><span class="token function">begin</span><span class="token punctuation">(</span><span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

   <span class="token comment">// Verifica estado de inicialização do display, acusa falha em caso de erro</span>
  <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token builtin">display</span><span class="token punctuation">.</span><span class="token function">begin</span><span class="token punctuation">(</span>SSD1306_SWITCHCAPVCC<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token builtin">Serial</span><span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span><span class="token function">F</span><span class="token punctuation">(</span><span class="token string">"Falha ao inicializar o SSD1306"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
  <span class="token comment">//Parametros da tensão de operação do sensor e do adc</span>
  ml<span class="token punctuation">.</span><span class="token function">setVoltsPerStep</span><span class="token punctuation">(</span><span class="token number">3.3</span><span class="token punctuation">,</span> <span class="token number">4096</span><span class="token punctuation">)</span><span class="token punctuation">;</span>   

  <span class="token comment">// Limpe o buffer do display</span>
  <span class="token builtin">display</span><span class="token punctuation">.</span><span class="token function">clearDisplay</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

  <span class="token comment">// Configuração do texto</span>
  <span class="token builtin">display</span><span class="token punctuation">.</span><span class="token function">setTextSize</span><span class="token punctuation">(</span><span class="token number">1.5</span><span class="token punctuation">)</span><span class="token punctuation">;</span>             <span class="token comment">// Tamanho do texto (1 = 6x8 pixels)</span>
  <span class="token builtin">display</span><span class="token punctuation">.</span><span class="token function">setTextColor</span><span class="token punctuation">(</span>SSD1306_WHITE<span class="token punctuation">)</span><span class="token punctuation">;</span>  <span class="token comment">// Cor do texto</span>
<span class="token punctuation">}</span>

<span class="token keyword">void</span> <span class="token keyword">loop</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  <span class="token comment">// Tempo entre cada medida</span>
  <span class="token function">delay</span><span class="token punctuation">(</span><span class="token number">2000</span><span class="token punctuation">)</span><span class="token punctuation">;</span>


  <span class="token builtin">Serial</span><span class="token punctuation">.</span><span class="token function">print</span><span class="token punctuation">(</span><span class="token string">"UV: "</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token builtin">Serial</span><span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span> ml<span class="token punctuation">.</span><span class="token function">getUV</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

  <span class="token comment">// Formata o dados para exibir no display</span>
  char uvString<span class="token punctuation">[</span><span class="token number">25</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
  <span class="token function">sprintf</span><span class="token punctuation">(</span>uvString<span class="token punctuation">,</span> <span class="token string">"Ultravioleta: %.5f"</span><span class="token punctuation">,</span> ml<span class="token punctuation">.</span><span class="token function">getUV</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

  <span class="token comment">// Limpa o buffer do display</span>
  <span class="token builtin">display</span><span class="token punctuation">.</span><span class="token function">clearDisplay</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token comment">// Posição inicial do cursor no display</span>
  <span class="token builtin">display</span><span class="token punctuation">.</span><span class="token function">setCursor</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token comment">//Envia novos dados ao buffer do display</span>
  <span class="token builtin">display</span><span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>uvString<span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token comment">// Atualiza o display para mostrar os dados no buffer</span>
  <span class="token builtin">display</span><span class="token punctuation">.</span><span class="token function">display</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span></code></pre></div>
</div><div data-element-id="elm_qdhG74SqffJCXzvt3SNIxg" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_qdhG74SqffJCXzvt3SNIxg"].zpelem-heading { border-radius:1px; margin-block-start:-11px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true"><span style="font-size:20px;">Resultado:</span></h2></div>
<div data-element-id="elm_I8P2vo9gWMPvhSI8S5R4FA" data-element-type="image" class="zpelement zpelem-image "><style> @media (min-width: 992px) { [data-element-id="elm_I8P2vo9gWMPvhSI8S5R4FA"] .zpimage-container figure img { width: 500px ; height: 375.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_I8P2vo9gWMPvhSI8S5R4FA"] .zpimage-container figure img { width:500px ; height:375.00px ; } } @media (max-width: 767px) { [data-element-id="elm_I8P2vo9gWMPvhSI8S5R4FA"] .zpimage-container figure img { width:500px ; height:375.00px ; } } [data-element-id="elm_I8P2vo9gWMPvhSI8S5R4FA"].zpelem-image { border-radius:1px; } </style><div data-caption-color="" data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimage-container zpimage-align-left zpimage-tablet-align-left zpimage-mobile-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
                type:fullscreen,
                theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/Utilizando%20o%20ESP32-C3%20em%20conjunto%20com%20o%20sensor%20ml-1-final.jpeg" width="500" height="375.00" loading="lazy" size="medium" data-lightbox="true"/></picture></span></figure></div>
</div><div data-element-id="elm_Bz8tL57goq7DQY4DaZbQtg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Bz8tL57goq7DQY4DaZbQtg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><div style="color:inherit;"><p style="text-align:justify;">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.</p><p style="text-align:justify;"><br/></p><p style="text-align:justify;">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.</p></div></div>
</div><div data-element-id="elm_dZ0gMzMKUo1L063tqgO1bw" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_dZ0gMzMKUo1L063tqgO1bw"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_81TedfHy-KQL6i5kzi0_qQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_81TedfHy-KQL6i5kzi0_qQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p><span style="font-style:italic;">Sobre o autor:</span></p><div><pre style="color:inherit;margin-right:26px;font-size:15px;"><span style="font-family:arial, sans-serif;">Matheus desempenha o papel de desenvolvedor de sistemas de tecnologia da informação dentro da equipe da UKTech. Possui  experiência no</span></pre><pre style="margin-right:26px;"><span style="color:inherit;font-family:arial, sans-serif;font-size:15px;">domínio de </span><span style="font-family:arial, sans-serif;font-size:15px;">micro controladores</span><span style="color:inherit;font-family:arial, sans-serif;font-size:15px;"> e desenvolvimento de software, e está na reta final de sua graduação em Engenharia de Computação. </span></pre><pre style="color:inherit;margin-right:26px;font-size:15px;"><span style="font-family:arial, sans-serif;">Em seus momentos de lazer, ele se dedica a interesses como jogos de computador e a apreciação de animes.</span></pre></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 26 Sep 2023 11:45:54 -0300</pubDate></item></channel></rss>