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

Sensor de temperatura DHT11 / DHT22

Componentes e suprimentos

Sensor DHT11 de Temperatura e Umidade (4 pinos)
× 1
Raspberry Pi 2 Modelo B
× 1
Arduino UNO
× 1
Cabo de ligação macho para macho
× 3
Breadboard (genérico)
× 1
4.7K Ω Resistor
× 1
Cobbler Breakout Kit
× 1

Aplicativos e serviços online

Microsoft Windows 10 IoT Core
Arduino IDE
Raspberry Pi Raspbian
Microsoft Visual Studio 2015
WinSCP
PuTTY

Sobre este projeto





Introdução





Antecedentes


O DHT11 é um sensor de temperatura e umidade de 4 pinos (um pino não usado), capaz de medir 20% - 90% de umidade relativa e 0 a 50 ° C. O sensor pode operar entre 3 e 5,5 Vcc e se comunica usando seu próprio protocolo OneWire proprietário. Este protocolo requer um tempo muito preciso para obter os dados do sensor. Os bits LOW e HIGH são codificados no fio pelo tempo em que o sinal é HIGH. O tempo total para fazer uma leitura é de no máximo 23,4 ms. Isso inclui um atraso de 18 ms necessário para iniciar a transferência de dados e uma janela de até 5,4 ms para os dados. Os sinais individuais podem ser tão curtos quanto 20 μs e até 80 μs.

Quando o Windows 10 IoT Core foi disponibilizado pela primeira vez, peguei meu Raspberry Pi 2 e meu sensor DHT11 e experimentei em C #. Rapidamente descobri que não ia funcionar. O problema com o C # no Windows 10 IoT Core é que ele simplesmente não será rápido o suficiente (pelo menos não agora).

Eu postei no fórum da Microsoft e tive algumas trocas com outros desenvolvedores que estão enfrentando a mesma dificuldade. Acabei encontrando uma resposta da Microsoft sobre o protocolo OneWire no Windows 10 IoT Core que dizia:

Depois de um tempo, recebi uma resposta à minha postagem que dizia:

Bem, isso será ótimo e estou realmente animado com a capacidade que está por vir, mas quem pode esperar? Recentemente, vi que a Microsoft postou um exemplo sobre como oferecer suporte a um protocolo OneWire usando o DHT11 como o sensor de amostra e usando C ++ no Windows 10 IoT Core. Eu vi isso como uma oportunidade de trazê-lo para C #.

Este projeto visa transformar essa amostra em uma biblioteca que pode ser usada em C #. Agradeço a pessoa que escreveu a biblioteca para ajudar a tornar este sensor popular útil no Windows 10 IoT Core e, espero, com esta biblioteca será ainda mais útil.





Biblioteca


A biblioteca que criei é uma refatoração simples do código originalmente postado pela Microsoft, portanto, não recebo nenhum crédito pelo trabalho realizado para obter a leitura do sensor.

A biblioteca apresenta uma classe simples chamada Dht11 no namesapace Sensors.Dht . Criar um novo objeto em C # é simples.

Primeiro abra o pino GPIO que você tem o pino do sensor DHT11 conectado.
  using Sensors.Dht; GpioPin pin =GpioController.GetDefault (). OpenPin (4, GpioSharingMode.Exclusive);  

Em seguida, passe este pino para o construtor do Dht11 classe e especifique o modo GPIO Pin Drive. Isso permite que você decida se irá adicionar seu próprio resistor pull-up.
  Dht11 dht11 =novo Dht11 (_pin, GpioPinDriveMode.Input);  

Para obter uma leitura do dispositivo, use o GetReadingAsync método.
  DhtReading reading =await dht11.GetReadingAsync (). AsTask ();  

Há uma sobrecarga que permite que o valor máximo de nova tentativa seja especificado. O valor padrão é 20. Isso especifica quantas tentativas fazer para fazer a leitura do sensor antes de desistir e retornar uma leitura com falha.

O DhtReading estrutura é definida como:
  valor público struct DhtReading {bool TimedOut; bool IsValid; temperatura dupla; Umidade dupla; int RetryCount;};  





Observações


Mesmo que o sensor funcione em C ++, ele ainda não obtém uma leitura todas as vezes. Portanto, a necessidade de uma opção de nova tentativa na classe (na verdade, isso faz parte do exemplo da Microsoft). Achei que seria melhor comparar isso com outras plataformas para ver como funciona. Tentei codificar no Raspberry Pi 2 executando Raspbian, bem como em um Arduino Uno. O código que usei para ambos foi incluído no repositório GitHub.

O vídeo incluído neste projeto irá demonstrar e comparar a saída de cada uma dessas plataformas.





Primeiros passos





Monte o circuito para o Raspberry Pi 2


Use este guia para montar o circuito enquanto usa o diagrama localizado próximo ao final da página como um guia (observe que as cores dos fios são opcionais e foram selecionadas para ajudar a tornar o circuito fácil de seguir quando for construído).
  • Coloque o sapateiro em forma de T na extremidade esquerda da meia placa + tabuleiro (onde os números começam em 1). Os dois pinos mais à esquerda estarão em E1 e F1 no quadro. Os dois pinos mais à direita estarão em E20 e F20
  • Coloque o resistor 4,7K Ω entre A4 e 3V3
  • Conecte um fio laranja macho a macho jumper entre B4 e F28
  • Conecte um fio vermelho macho a macho entre F29 e 3V3
  • Conecte um fio jumper preto macho a macho entre F30 e GND
  • Coloque os sensores DHT11 em J30 (-), J29 (+) E J28 (s)
  • Conecte o cabo de fita ao sapateiro e ao Raspberry Pi





Monte o circuito para o Arduino


Use este guia para montar o circuito enquanto usa o diagrama localizado próximo ao final da página como um guia (observe que as cores dos fios são opcionais e foram selecionadas para ajudar a tornar o circuito fácil de seguir quando for construído).
  • Coloque o resistor 4,7K Ω entre E12 e E13
  • Conecte um fio branco macho a macho jumper entre D13 e pino 5 no Arduino
  • Conecte um fio vermelho macho a macho entre D12 e o 5V pino no Arduino
  • Conecte um fio jumper preto macho a macho entre D11 e GND no Arduino
  • Coloque os sensores DHT11 em A11 (-), A12 (+) e A13 (s)
  • Conecte o cabo USB do seu computador ao Arduino

Abaixo estão as fotos dos circuitos que construí.





Iniciando o aplicativo para o Raspberry Pi


Escolha Depurar, Configuração ARM e Máquina Remota. Agora clique com o botão direito do mouse no projeto, selecione Propriedade e clique em Tag de depuração. Em seguida, coloque o endereço IP do Raspberry Pi 2 no campo Máquina remota e desmarque Usar autenticação.

Pressione F5 . O aplicativo será implantado no dispositivo, o que pode levar alguns minutos na primeira vez.





Iniciando o aplicativo para o Arduino


O esboço para este projeto está disponível no GitHub em um arquivo chamado Dht11_Speed ​​ . Inicie o IDE Arduino e abra o esboço. Faça upload do esboço para o Arduino ( Ctrl U ) E, em seguida, inicie o Monitor Serial ( Ctrl Shift M )

Se você não tiver certeza de como fazer isso ou for novo neste ambiente, o vídeo a seguir demonstrará como fazer isso.





Iniciando o aplicativo para Raspbian


O código C para o Raspberry Pi está disponível no GitHub para este projeto em um arquivo chamado Dht11.c . A fonte precisa ser copiada para o Raspberry Pi e compilada lá. Gosto de usar o WinSCP para copiar arquivos. Se você não tem esse aplicativo, recomendo que você baixe e instale-o agora. O código-fonte usa wiringPi, que deve ser instalado antes de compilar o aplicativo.

O comando para compilar o código no Raspberry Pi é:
  gcc -oDht11_Speed ​​Dht11_Speed.c -L / usr / local / lib -lwiringPi -std =c99 -lm  

Para executar o aplicativo, digite o comando:
  sudo ./Dht11_Speed ​​1000 10  

Onde 1000 especifica um atraso de 1000 ms (1 segundo) e 10 é o número de amostras a serem lidas.

O vídeo demonstrará com mais detalhes como copiar o código e como compilá-lo no Raspberry Pi executando o Raspbian. Para saber como carregar o Raspbian em seu Raspberry Pi, vá para https://www.raspberrypi.org/downloads/raspbian/.





Vídeo


O vídeo abaixo é uma demonstração do aplicativo:

Veja este vídeo no You Tube usando o modo Teatro para obter a melhor qualidade.

Código

Código-fonte do Visual Studio 2015 C # / C ++
https://github.com/porrey/dht.git

Esquemas

Dht11_RPi2.fzz Dht11_Arduino.fzz

Processo de manufatura

  1. Registrador de temperatura Raspberry Pi
  2. Biblioteca Python do sensor de temperatura TMP006 usando Raspberry pi,
  3. Sensor de temperatura Python e Raspberry Pi
  4. Sensor de temperatura de 1 fio DS1820 em Raspberry Pi (GPIO diretamente)
  5. Sensor de termômetro digital de 1 fio Raspberry Pi (DS18B20)
  6. Temperatura do Raspberry Pi e sensor de luz
  7. Sensor de temperatura Raspberry Pi
  8. Projeto Raspberry PI IoT Conectando o Sensor DHT11
  9. Sensor de temperatura do rolamento | detector
  10. Medições de temperatura por sensor infravermelho