Sensor de umidade HTU21D com Arduino

HTU21D
HTU21D

HTU21D com Arduino

Esse é o tipo de artigo eu que não gosto de escrever, mas me vejo obrigado mediante a situação.

Recentemente adquirir esse fabuloso dispositivo que mede temperatura e umidade (não confundir com humildade só porque em inglês se escreve humidity) só que não consegui fazê-lo funcionar com ESP8266 nem com uma PCDuino. Nunca o dispositivo aparecia no barramento I²C, tentei de todas as formas e cheguei a escrever para o vendedor (parceiro ABSOLEM) perguntando se havia algum procedimento especial. De fato não há; e para tirar a prova disso, estreei meu mais novo amigo Arduino Mega 2560 com esse sensor e funcionou de primeira. Já que citei o Mega, deixe-me apresentá-lo, caso você esteja iniciando no mundo Arduino e ainda não o conheça.

Arduino Mega
Arduino Mega

Esse Arduino é muito parrudo e antigamente não era tão acessível. Ele possui 53 GPIO (!), 4 UART (!), I²C, 11 pinos PWM (!), 15 pinos analógicos (!) e a primeira vista, parece compatível com shields para Arduino UNO, já que os pinos próximos ao header de alimentação são todos compatíveis. A questão aqui é o cuidado que se deve ter, uma vez que você não deve transformá-lo em uma fonte de alimentação para periféricos. Isto é, sempre use lógica invertida para evitar consumo demasiado advindo dos GPIO.

Onde adquirir o HTU21D





Esse sensor não é popular e foi bastante complicado encontrá-lo, portanto, se você teve a sorte de ler esse post, dê um “pulinho” no parceiro ABSOLEM através desse link e adquira o seu.

Biblioteca para o HTU21D

Voltando ao HTU21D, o processo foi uma moleza, isso é mais dica de grupo de Arduino do que um artigo, de tão rápido e objetivo.

Vá ao menu Sketch->Include Library->Manage Libraries e procure por HT21D. Você terá disponível  a biblioteca fornecida pela SparkFun, mas não confunda com a HTU21DF. Após isso, basta subir o sketch disponível em exemplos, no menu File->Examples->SparkFun HTU21D…

Abra o terminal serial e contemple a informação, precisa e constante.

Porque utilizar o HTU21D invés do DHT11 ou DHT22

Ainda vou escrever um artigo com um DHT, mas sério, ele não obedece o protocolo OneWire, o que dificulta um pouco sua manipulação. Como no Arduino tem biblioteca pronta, fica transparente pra você, mas utilizar um HTU21D lhe dá a vantagem do barramento I²C, onde você poderá pendurar mais de 100 dispositivos utilizando apenas 2 fios do Arduino. Estou dizendo isso em defesa do barramento I²C mesmo, que me salvou a pele em uma implementação muito bacana que fiz para gerenciamento de energia rua/gerador/bateria para torres de telecom:

USCA
USCA

Nesse caso, seria problemático utilizar outro barramento que não I²C, uma vez que os pinos do Raspberry já estavam esgotados. Aliás, deixe-me apresentar o projeto.

USCA – Unidade de Supervisão de Corrente Alternada





Existem diversos tipos de USCA, controladas por diversas maneiras, mas procuro implementar em meus projetos sempre o melhor possível. E essa USCA tem recursos bem interessantes.

Quando a energia advinda da rua está estável, ela mantém-se na rua, caso o LED frontal esteja em verde (modo automático). Se houver variação, isso é observado dentro de uma histerese, tanto para troca de alimentação quanto para retorno à rua.

Quando a energia da rua está muito baixa ou muito alta ou ausente, automaticamente sua entrada é desligada e observa-se o nível das baterias até um determinado nível considerado crítico. Em caso de ausência da energia da rua e nível baixo da bateria, automaticamente o gerador é ligado pelo software de gerenciamento. Aguarda-se o pre heat e então após certifcar-se de que há alimentação originada do gerador, é feita a mudança dos contatores para fornecimento de alimentação e carga das baterias. Outros eventos relacionados às possíveis excessões são monitorados e agora mudamos para a fase de gerenciamento remoto.

O software está conectado a um broker MQTT, enviando status das tensões, origem de alimentação, temperatura, umidade, pressão atmosférica (prevendo chuvas assim em conjunção à temperatura e sensor de umidade), consumo, estado da bateria do gerador, pressão do óleo do gerador etc. Além do MQTT, ele ainda envia status para uma página de gerenciamento online, por onde o operador pode intervir em seu funcionamento – tal qual por MTT, utilizando um aplicativo para smartphone. Por fim, o operador recebe alarmes no Zabbix, fechando assim um controle absoluto sobre o dispositivo.

É aí que voltamos ao I²C. Essa USCA conta com uma série de dispositivos I²C, entre os quais expansores de GPIO, sensores de umidade, temperatura e pressão atmosférica, conversor ADC, tensões de 3v3, 5v, 12v e 48v etc. Imagine a quantidade de fios se fossem utilizados sensores analógicos ou de barramentos diversos. Por isso enfatizo meu conselho; acostume-se a utilizar barramento I²C.

HTU21D com Arduino
HTU21D com Arduino

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.