Sensor Umid DHT11

Estou tentando calibrar o sensor umidade DHT11, ele também é sensível a temperatura mas optei somente pela umidade.
Estou usando como referência os valores de umidade disponíveis no google para o meu bairro, porém ja tentei usar média , equações e em nenhum obtive sucesso, se não me engano o datasheet diz que não há a necessidade de calibrar ,mas vários posts da internet dizendo que o sensor não apresenta valores confiáveis. Quero saber se alguém já obteve sucesso na calibração desse sensor ou se há outro ,exceto o dht22, que forneça valores de umidade.

As medidas do Google não levam em consideração o que se passa dentro de tua casa.

Por exemplo, se existe roupa a secar, se acabaste de tomar banho, se o vizinho está a regar a relva, etc...

O que as pessoas dizem acerca desse sensor é que ele não é o mais preciso do mercado para medir humidade, não que não é de fiar.

Bem observado, não notei essa variáveis, entao so é possível tentar calibrá-lo com higrômetro. O pior é que eu deixando a programação normal de exemplo ele marca pela noite 27% de umidade um valor impossível para a cidade onde moro. Num mas obrigado.

Porque é que é impossível para a cidade onde moras?

Onde é que tens o sensor? Ao ar livre? Ao sol?

Moro em uma cidade litorânea e um pouco perto do litoral . Umidade abaixo de 50% ,salvo engano, causam sangramento nas narinas e é perceptível ao ser humano, por isso é impossível uma umidade 27%.
Tentarei calibrá-lo por valores iguais , ele parece não obedecer a nenhuma equação, mas apresenta uma boa repetibilidade.

Onde está o sensor?

Varanda , ar aberto a 5m de altura do solo.

Queres meter aqui o código? O sensor apanha sol durante alguma parte do dia?

Postarei em breve, usei o código exemplo da biblioteca.

#include <dht.h> // Inclui a biblioteca no seu código

dht DHT; // Cria um objeto da classe dht
uint32_t timer = 0;

void setup()
{
Serial.begin(9600); // Inicializa serial com taxa de transmissão de 9600 bauds
}

void loop()
{
// Executa 1 vez a cada 2 segundos
if(millis() - timer>= 2000)
{

DHT.read11(A2); // chama método de leitura da classe dht,
// com o pino de transmissão de dados ligado no pino A1

// Exibe na serial o valor de umidade
Serial.print((DHT.humidity)); //cte de calibracao 1.444
Serial.println(" %");

// Exibe na serial o valor da temperatura
Serial.print(DHT.temperature);
Serial.println(" Celsius");

timer = millis(); // Atualiza a referência
}
}

biblioteca anexa

DHT.zip (4.47 KB)

Ola Felipe,
Esse código não confere com a classe presente na biblioteca DHT.zip anexo a postagem.

E o DHT11 e um sensor com saída digital, porque esta usando uma entrada analógica? (afinal e A1 ou A2?)

O código parece ser dessa biblioteca Arduino Playground - DHTLib

Mude onde o sensor esta conectado para uma das entradas digitais e mude o código de acordo.

Interessante nos sites brasileiros , ele é usado em pinos analógicos. Em sites americanos vi alguns em pinos digitais, surgiu uma dúvida, eu pensei que sensores só poderiam ser ligados em pinos analógicos devido a medição ser em uma escala e o tipo de função do hardware ser output.

Tentarei usá-lo em pino digital. Nos sites estrangeiros que fui também há queixas da calibração desse sensor.

Ola,
Tecnicamente não tem problema usar os pinos analógicos para entradas ou saídas digitais. Já que ira ser mapeado de acordo com a configuração do modo. Mas como gerenciamento de recursos, só deveria ser usado em ultimo caso.
Outra coisa que notei, o seu exemplo não esta verificando se a leitura e ou a transferência de dados foi feito de forma correta.
Veja esse fragmento do exemplo:

 // READ DATA
  Serial.print("DHT11, \t");
  chk = DHT.read11(DHT11_PIN);
  switch (chk)
  {
    case DHTLIB_OK:  
		Serial.print("OK,\t"); 
		break;
    case DHTLIB_ERROR_CHECKSUM: 
		Serial.print("Checksum error,\t"); 
		break;
    case DHTLIB_ERROR_TIMEOUT: 
		Serial.print("Time out error,\t"); 
		break;
    default: 
		Serial.print("Unknown error,\t"); 
		break;
  }
 // DISPLAY DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);

  delay(1000);
}

Existem dois tipos de erro, o de checksum (dados recebidos) e de tempo esgotado.
De muita atenção as rotinas de tratamento de erros.

uhum esse é o exemplo da biblioteca, peguei outra para testar

Também sem sucesso, atualmente marca 24% umidade.

/*
Curso de Arduino e AVR 109

WR Kits Channel

Utilizando Sensor de Temperatura e Umidade DHT11

Autor: Eng. Wagner Rambo Data: Março de 2017

www.wrkits.com.br | WR Kits | WR Kits - YouTube | dailymotion.com/wrkits

*/

// ===============================================================================
// --- Biblioteca Auxiliar ---
#include <dht.h> //biblioteca do sensor de umidade e temperatura

// ===============================================================================
// --- Mapeamento de Hardware ---
#define dht_pin 5 //pino de sinal do dht11 ligado no digital 5

// ===============================================================================
// --- Declaração de Objetos ---
dht my_dht; //objeto para o sensor

// ===============================================================================
// --- Variáveis Globais ---
int temperatura = 0x00, //armazena a temperatura em inteiro
umidade = 0x00; //armazena a umidade em inteiro

// ===============================================================================
// --- Configurações Iniciais ---
void setup()
{
Serial.begin(9600); //serial em 9600 baud rate

} //end setup

// ===============================================================================
// --- Loop Infinito ---
void loop()
{
my_dht.read11(dht_pin);

temperatura = my_dht.temperature;
umidade = my_dht.humidity;

Serial.print(temperatura);
Serial.print(" ");
Serial.println(umidade);

delay(2000);

} //end loop

Datasheet_DHT11.pdf (451 KB)

DHT-lib.zip (10.7 KB)

Sera que se seu sensor não esta com defeito?
Experimenta aproximar de um copo com água quente, e vê se a umidade muda.
Tenho um DHT11 em algum lugar aqui, mas até achar e montar o circuito vai levar um tempão.
Seriam melhor conseguir um DHT22 para a sua aplicação.

Num copo fechado com gelo a umidade altera e em um vasilhame de sal tambem altera. Achei uma biblioteca que aparentemente está dando certo, mas esse sensor é realmente de se questionar os seus valores.

esse link: Lendo temperatura do sensor DHT11 + Arduino - YouTube

Nos forúns estrangeiro eles calibram por adição, não sei se a variação é linear, logarítmica, exponencial mas adotei por adição também