Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Breakout Compacto DHT de Temperatura e Umidade para Raspberry Pi – ATtiny85 & DHT22/DHT11

História

Introdução

Os sensores DHT11 e DHT22 são populares para medição de temperatura e umidade devido à sua precisão a custo muito baixo. Um problema com eles, porém, é que operam sobre um protocolo one-wire proprietário que exige temporização precisa. Esses sensores têm se mostrado difíceis de ler em placas com sistemas operacionais não-tempo-real.

Há algum tempo, publiquei um artigo intitulado "Sensor de Temperatura DHT11/DHT22" demonstrando como usar o código de exemplo C++ da Microsoft a partir de C# para ler esses sensores. A biblioteca conseguia obter uma leitura, mas precisei adicionar lógica de retentativa para torná-la mais confiável. Isso funcionou para a maioria, mas algumas pessoas tiveram problemas para obter funcionamento consistente.

Dado o nível de interesse em usar esses sensores no Raspberry Pi rodando Windows 10 IoT Core, decidi criar uma segunda opção que fornece um método muito confiável de leitura desses sensores mantendo baixo custo.

Visão Geral

A abordagem apresentada aqui é acoplar o sensor DHT a um ATtiny85 barato e configurá-lo como dispositivo escravo I2C. Isso é feito usando a biblioteca TinyWireS e criando um conjunto de registradores que podem ser lidos e escritos para interagir com o dispositivo.

O dispositivo suporta as seguintes funções:

O Código-Fonte

Existem três conjuntos de código neste projeto. O firmware principal para a placa, um sketch mestre Arduino usado para testar e demonstrar a placa conectada a um Arduino Uno e a aplicação Windows 10 IoT que demonstra como usar o dispositivo a partir do Raspberry Pi. Todo o código está disponível no repositório GitHub vinculado.

O Circuito/Dispositivo

O circuito é pequeno e usa apenas alguns componentes baratos. O ATtiny85 pode ser comprado de vários fornecedores. Recomendo adquirir alguns, pois têm muitos propósitos úteis.

O circuito tem um header de seis pinos que permite conexão a outro circuito ou diretamente ao Raspberry Pi. Os pinos são definidos como segue:

Há também um header de dois pinos onde um jumper pode ser adicionado para habilitar, ou removido para desabilitar o LED onboard.

Ao utilizar em projeto maior, o circuito do DHT Tiny pode ser mesclado ou embutido no circuito existente do projeto. Neste caso, os pinos do header e LED são opcionais.

O circuito também pode ser construído em placa separada e conectado ao Raspberry Pi com alguns fios ou cabo conector.

Programando o ATtiny85

Carregue o sketch DHT_Tiny_Breakout.ino no ATtiny85 usando seu programador AVR. Se não tiver programador, pode usar um Arduino Uno (ou similar). Consulte um ou mais dos artigos abaixo para ajuda.

Uso o SparkFun Tiny AVR Programmer para carregar meu ATtiny85.

Estou rodando meu chip a 16 MHz. Veja meu artigo "ATtiny @ 16MHz" para instruções de como fazer isso.

Ao usar o ATtiny85, o sketch escravo requer a biblioteca TinyWireS instalada na pasta de bibliotecas. Esta biblioteca pode ser baixada de https://github.com/rambo/TinyWire.

Montando o Circuito no Protoboard

O primeiro passo é colocar o DHT Tiny para funcionar no protoboard. Usando um protoboard meia-tamanho, construa o circuito seguindo o esquemático e diagramas de protoboard incluídos no projeto.

Algumas dicas para facilitar:

Abaixo estão algumas imagens da versão protoboard do meu DHT Tiny.

Conectando o Arduino Uno

Se você quer teste rápido, demonstração, ou está com dificuldade para fazer funcionar com seu Raspberry Pi, pode conectar o DHT Tiny a um Arduino Uno (ou similar).

Carregue e execute o sketch DHT_Tiny_Master.ino. Este sketch exibirá saída no Serial Monitor.

Ao conectar I2C entre as duas placas, é importante ter resistores pull-up nas linhas SDA e SCL. Neste circuito, há dois resistores de 4,7 kΩ conectados entre os pinos e 5V.

Abaixo estão algumas imagens do DHT Tiny no protoboard conectado ao Arduino Uno.

Conectando ao Raspberry Pi

Se você quer teste rápido, demonstração, ou está com dificuldade para fazer funcionar com seu Raspberry Pi, pode conectar o DHT Tiny a um Arduino Uno (ou similar).

Ao conectar I2C entre as duas placas, é importante ter resistores pull-up nas linhas SDA e SCL. Neste circuito, há dois resistores de 4,7 kΩ conectados entre os pinos e 3V3.

MUITO IMPORTANTE! A placa DHT Tiny será alimentada pelo pino 5V do Raspberry Pi, mas os resistores pull-up devem ser conectados ao pino 3V3 do Raspberry Pi (3V3 está nos pinos 1 e 17).

Abaixo estão algumas imagens do DHT Tiny no protoboard conectado ao Raspberry Pi 3.

Executando a Aplicação Windows 10

Obtenha o código do link do repositório GitHub no final do projeto e descompacte no seu computador. Abra o código fonte da Universal Application no Visual Studio 2015 e faça deploy para o Raspberry Pi e inicie pelo console de admin ou execute em modo debug pelo Visual Studio.

Se esta é a primeira vez que você roda código do Visual Studio para aplicação Windows 10 IoT Core, veja estes artigos da Microsoft:

Veja a demonstração em vídeo abaixo para ver a aplicação rodando em um Raspberry Pi 3 conectado ao DHT Tiny.

Destaques da Aplicação

A aplicação UWP Windows 10 é uma aplicação de demonstração que mostra todos os recursos do DHT Tiny. O código exibe temperatura atual, umidade e outros valores de registradores do dispositivo. A UI também permite alterar a configuração do dispositivo incluindo o endereço do dispositivo.

Biblioteca DHT Tiny

O código de exemplo usa uma biblioteca escrita para interagir com o DHT Tiny. Esta biblioteca está pronta para uso e pode ser incluída diretamente em todas as suas aplicações.

Obtenha a Biblioteca do NuGet

Se não quiser incluir o projeto diretamente na sua aplicação, simplesmente baixe a biblioteca DHT Tiny do NuGet usando o comando abaixo. Abra o Package Manager Console no Visual Studio e digite:

PM> Install-Package IoT.DhtTiny

Escaneando o Barramento I2C para o Dispositivo

A biblioteca DHT Tiny inclui um método que busca no barramento I2C por dispositivos DHT Tiny e retorna lista de endereços. Esta lista pode ser usada para inicializar um ou mais dispositivos encontrados. Especialmente útil se você alterou o endereço do dispositivo mas não lembra qual configurou. O método callback é opcional.

// ***
// *** Enumerar dispositivos DHT Tiny no barramento i2c.
// ***
IEnumerable<byte> address = await DhtTiny.FindAllDhtTinyAsync(this.FindAllDhtTinyCallback);
// ***
// *** Método callback
// ***
private void FindAllDhtTinyCallback(I2cScanEventArgs e) {
    int percentComplete = (int)((double)e.CurrentIndex / (double)e.Total * 100.0d);
    this.Status = string.Format("Localizando dispositivos [0x{0:X2}] [{1}%] [Encontrados = {2:##0}]...", e.CurrentAddress, percentComplete, e.Items.Count());
}

Esquemático do DHT Tiny Breakout para Raspberry Pi

Demonstração de Software

Este vídeo demonstra a aplicação Universal rodando em Raspberry Pi 3 conectada ao DHT Tiny no protoboard.

[VÍDEO EM BREVE]

Criando o Dispositivo Final

A forma mais fácil e econômica de criar a placa é usar uma placa de protótipo PCI como a Perma-Proto Quarter-sized Breadboard PCB da Adafruit. A imagem abaixo mostra o breakout usando esta placa de protótipo. Usei uma Dremel para remover as seções de trilho de alimentação da placa.

Veja Mais: DHT Tiny Breakout para Raspberry Pi

Processo de manufatura

  1. Monitoramento Profissional de Temperatura com Raspberry Pi e DS18B20
  2. Construindo Estação Meteorológica Externa com Raspberry Pi 2 e ADS‑WS1
  3. Meça Sensores Analógicos no Raspberry Pi sem ADC Nativo
  4. Conectando Sensor Ultrassônico HC-SR04 ao Raspberry Pi – Guia Prático
  5. Principais Acessórios para Desbloquear Todo o Potencial do Seu Raspberry Pi
  6. Usando ADC MCP3008 para Ler Sensores Analógicos com Raspberry Pi
  7. SIGHT: Óculos Inteligentes Capacitando Cegos
  8. SparkFun Qwiic HAT para Raspberry Pi – Guia Completo de Conexão
  9. Instalando Windows 10 IoT Core no Raspberry Pi 3 Model B+: Guia Passo a Passo
  10. Construa Seu Próprio Robô Raspberry Pi com Kit MonkMakes RRB2 – Guia Detalhado