Manual
do
Maker
.
com
Tem sensor que dispensa artigo. Esse é um deles, com o sensor de umidade e temperatura SHT3x da Sensirion.
Algumas poucas informações podem ser necessárias, como nível lógico; ele trabalha tranquilamente em 3v3 e 5v, servindo para qualquer MCU.
Seu consumo de energia é de 4.8uW em 2.4V com baixa repetibilidade e 1 medição por segundo. Significa que o pico dele é maior, mas se fosse o dobro, ainda estaria próximo de "nada".
A umidade relativa (RH) vai de 0 à 100%.
A temperatura (T) vai de -40 à 125 graus Celsius.
Esse dispositivo também usa barramento I2C. Aliás, acho que para dispositivos I2C e SPI deveriam existir placas com slots no estilo dos SSD M.2. Um padrão no pinout iria bem.
O wiring é extremamente simples, bastando alimentá-lo ao 5V no Arduino (porque é o nível do GPIO e a tensão de referência precisa ser a mesma para o sensor), GND, SDA no analógico 4 e SCL no analógico 5.
Essa tem aos montes. Eu usei a Microfire_SHT3x. É só ir no gerenciador de bibliotecas e procurar por esse nome aí. Depois, abra um sketch de exemplo para pegar as partes que interessam para seu projeto. Um sketch do exemplo (não vale a pena escrever um do zero):
/*!
microfire.co for links to documentation, examples, and libraries
github.com/u-fire for feature requests, bug reports, and questions
questions@microfire.co to get in touch with someone
*/
#include "Microfire_SHT3x.h"
Microfire::SHT3x sht30;
void setup()
{
// start Serial and I2C
Serial.begin(9600);
Wire.begin();
// start the sensor
sht30.begin();
}
void loop()
{
// take a measurement
sht30.measure();
// display the results
switch (sht30.status)
{
case sht30.STATUS_NOT_CONNECTED:
Serial.println("Error: Sensor not connected");
break;
case sht30.STATUS_CRC_ERROR:
Serial.println("Error: CRC error");
break;
case sht30.STATUS_NO_ERROR:
Serial.println((String)sht30.tempC + " °C");
Serial.println((String)sht30.tempF + " °F");
Serial.println((String)sht30.RH + " %RH");
Serial.println((String)sht30.vpd_kPa + " VPD kPa");
Serial.println((String)sht30.dew_pointC + " dew point °C");
Serial.println((String)sht30.dew_pointF + " dew point °F");
Serial.println((String)sht30.heat_indexC + " heat index °C");
Serial.println((String)sht30.heat_indexF + " heat index °F");
Serial.println((String)sht30.wet_bulbC + " wet bulb °C");
Serial.println((String)sht30.wet_bulbF + " wet bulb °F");
break;
}
delay(1000);
}
Não fiz nada. Exibir em display? Se quiser exibir algo em qualquer display, só ir na caixa de busca rápida, você encontrará praticamente tudo que tem no mercado, já testado aqui no blog. Ligar a um display não é um projeto; projeto é algo funcional, então, melhor ficar na serial para "prova de conceito".
Deu pra ver a praticidade, não é mesmo? Esse sensor você encontra em nosso parceiro CurtoCircuito, bastando clicar no link do banner aí no início da página para ir até o blog. Do lado esquerdo aí da página tem um botão redondo para rolar pra cima, caso esteja com preguiça de movimentar demais o mouse.
A Curto tem muitos sensores e até onde vi, nenhum outro tem a variedade que ela tem, portanto, a considero "especialista em sensores". Confira.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.