Certamente você já se perguntou qual era a temperatura ambiente da sua casa ou talvez até mesmo qual a umidade relativa do ar em determinado local. Essa informação poderia ser muito útil, principalmente quando incrementada em algum projeto de automação, como uma estufa, por exemplo. O Sensor SHT20 Arduino pode dar uma resposta precisa e responder suas dúvidas.
Além de ser muito preciso, tanto em questões de temperatura, quanto umidade, ele tem proteção ip65, contando também com uma ampla faixa de medição de temperatura entre -40 e 125°graus Celsius e umidade relativa do ar em uma faixa de 0% até 100%.
O Sensor STH20 utiliza comunicação o I2C, ou seja, somente utiliza dois pinos do Arduino, e você ainda irá poder utilizar esses mesmos 2 pinos para conectar outros dispositivos, pois a conexão I2C utiliza endereços, onde cada dispositivo I2C conectado será reconhecido e irá ter seus dados isolados, mesmo vindo dos mesmos pinos.
Materiais para o Projeto
Neste projeto vamos utilizar apenas dois produtos, que são: o Sensor SHt20 que ira medir as condições da temperatura e umidade e um Arduino Uno que irá receber os dados, interpretar e enviar através do cabo usb para o monitor serial, permitindo a visualização das informações.
Esquemático Sensor SHT20 com Arduino
O esquema de ligações é bem simples, o fio marrom do sensor será conectado ao 5v do Arduino, o fio preto ligado ao gnd, o amarelo ao pino A4 e o azul ao pino A5, conforme imagem abaixo:
Código Utilizado no Teste
Iremos utilizar para fazer a medição dos valores do sensor duas bibliotecas, a DFRobot_SHT20.h e a Wire.h que são para fazer a comunicação com o sensor.
O código é bem simples iremos simplesmente ler o sensor e mostrar os valores no monitor serial.
Cabeçalho
Primeiramente iremos incluir as bibliotecas DFRobot_SHT20.h e a Wire.h, feito isto iremos criar o objeto “sht20”, o qual iremos medir a temperatura.
1 2 3 4 |
#include <Wire.h> #include "DFRobot_SHT20.h" DFRobot_SHT20 sht20; |
Void Setup
No void setup vamos iniciar o monitor serial na velocidade 9600 e iremos mostrar a mensagem “Exemplo SHT20”, após isto iremos iniciar o sensor.
1 2 3 4 5 |
void setup(){ Serial.begin(9600); Serial.println("Exemplo SHT20"); sht20.initSHT20(); } |
Void Loop
Já no void loop iremos criar 2 variáveis que irão armazenar os valores de temperatura e umidade, apos isto iremos mostrar esses valores no monitor serial a cada 1 segundo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
void loop() { float umd = sht20.readHumidity(); float temp = sht20.readTemperature(); Serial.print(" temperatura:"); Serial.print(temp, 1); // mostra a temperatura com 1 número após o ponto Serial.print("C"); Serial.print(" umidade:"); Serial.print(umd, 1); // mostra a umidade com 1 número após o ponto Serial.print("%"); Serial.println(); delay(1000); } |
O resultado no monitor serial será o seguinte:
Conclusão
Hoje nós aprendemos a monitorar a temperatura e umidade com a utilização do Sensor SHT20 e um Arduino Uno, que pode ser aplicado em vários projetos, desde monitorar e mostrar em uma tela, por exemplo, ou até mesmo integrar em um projeto de automação.
Durante os teste ele apresentou excelente precisão, podendo ser utilizado em projetos amadores ou profissionais, além de ter ótima proteção contra água e poeira, graças seu incrível conjunto de micro esferas do encapsulamento que possibilista que ele realize a leitura externa e impeça que a água penetre em seu interior. Vale lembrar que ele não pode ser mergulhado na água.
Em breve teremos mais projetos envolvendo Arduino, fique atento ao nosso site, e as novidades que estão por vir.
Conheça toda Linha de Produtos Arduino no Site da UsinaInfo.
olá,
estou estudando esse Sensor SHT20 implementando esse exemplo aqui no blog. Mas tenho como resposta apenas essas informações:
temperatura:998.0C umidade:998.0%
poderia me explicar as razoes para esses valores?
Obrigado
olá Flavio, tudo bem? espero que sim!
Estranho o recebimento destes valores! Posso sugerir a verificação das ligações (talvez os pinos scl e sda podem estar invertidos), caso as ligações estiverem corretas, tente atualizar a ide do arduino e/ou a biblioteca wire.h (ela faz a comunicação com o sensor).
Espero que ajude, qualquer duvida que persista, estou a disposição!
Olá Gustavo Rodolfo, tudo bem? espero que sim!
Refiz as ligações e já tenho as leituras como esperado. Tudo esta funcionando bem. Obrigado pela atenção.
Mas surgiu aqui um problema. Estou utilizando Um display 20X04 com Adaptador I2C. E portanto usa os mesmos pinos de comunicação que utilizados pelo Sensor SHT20 Arduino.
Poderia me ajudar com uma alternativa a essa situação?
Obrigado!
Ola eu estou querendo conectar dois sht20 em um arduino leonardo, mas ele esta dando stack overflow
pode me ajudar?
Bom dia Fabioki! O SHT20 possui um padrão de comunicação I2C, então para utilizar dois ao mesmo tempo em um Arduino, eles precisam estar conectados em um mesmo pino e com diferentes endereços para não dar erro.
Para medir em ambiente externo, é necessário protegê-lo com um abrigo meteorológico, como é feito com o dht22?
Olá Bruno! De acordo com as especificações do produto, não teria problema deixá-lo exposto no tempo, porém eu recomendaria protege-lo, até pela proteção das conexões e melhor aplicação do projeto.