Mostrando postagens com marcador dht11. Mostrar todas as postagens
Mostrando postagens com marcador dht11. Mostrar todas as postagens

19 dezembro 2017

Digispark com DHT11 e Display LCD 16x2 I2C

À pouco tempo atrás, publicamos um post mostrando como conectar um display oled na Digispark Attiny85. O post de hoje vai ser um post no estilo "2 em 1": vamos mostrar como usar a Digispark com display LCD 16x2 I2C, e também como mostrar nesse display as informações de temperatura e umidade usando um sensor de temperatura DHT11.

Digispark com DHT11 e Display LCD 16x2 I2C

O uso do display LCD 16x2 I2C com a Digispark permite mostrar de maneira simples informações como temperatura, contadores e mensagens de aviso sem grandes recursos gráficos, consequentemente economizando a memória do microcontrolador.

09 julho 2017

5 Projetos com o Shield Arduino Multifunções

Neste post vou falar de um shield bem interessante para você que é iniciante, estudante ou simplesmente quer aprender mais sobre placas Arduino sem montar complicados circuitos eletrônicos ou depender de outros componentes: o Shield Arduino Multifunções com Sensores e I/O´s, que na imagem abaixo está encaixado em uma Placa Uno.
Shield Arduino Multifunções e Arduino Uno
Como o próprio nome diz, esse shield tem incorporado uma série de sensores e portas para você fazer projetos básicos, sendo uma excelente opção para aprendizado de programação nessa placa microcontrolada.

13 junho 2016

Arduino e DHT11: Controle de relé por temperatura

No post de hoje vamos ver como montar um circuito de acionamento de relé por temperatura utilizando Arduino e DHT11, criando uma interessante opção de controle para o seu projeto de automação residencial, já que essa saída pode ser usada não só para acionar um relé, mas também para mandar um SMS, disparar um alarme ou executar qualquer outra ação que você desejar.

Arduino e DHT11 controle de rele por temperatura
O circuito funciona da seguinte maneira: você ajusta a temperatura de acionamento utilizando 2 botôes, e quando a temperatura ambiente atingir o valor da temperatura máxima ajustada, ele aciona uma porta do Arduino configurada no programa.

03 fevereiro 2015

Sensor de temperatura e umidade DHT22 (AM2302)

O sensor de temperatura e umidade DHT22 (ou AM2302), é uma evolução do DHT11, do qual já falamos algumas vezes aqui no Arduino e Cia.

É um sensor com baixo consumo de corrente (2,5 mA durante medições, e 100-150µA em standby), e  que possui internamente um sensor de umidade capacitivo e um termistor, além de um conversor analógico/digital para comunicação com o microcontrolador.

Sensor de umidade e temperatura DHT22

26 maio 2013

Display LCD Nokia 5110 e Sensor de temperatura DHT11

Como comentei no post anterior, segue esquema do circuito usando o display lcd Nokia 5110 junto com o sensor de temperatura e umidade DHT11, que você pode adquirir na FilipeFlop.

lcd nokia 5110 e dht11 arduino
Basicamente eu juntei os 2 post que eu fiz sobre o assunto, e, ao invés de mandar o resultado para o monitor serial, estou enviando para o display, gerando o resultado abaixo :

LCD Nokia 5110 Arduino e DHT11



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//Programa : Display Nokia 5110 e sensor de temperatura DHT11
//Autor : Arduino e Cia

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <dht.h>

#define dht_dpin A1 //Pino DATA do Sensor ligado na porta Analogica A1

dht DHT;

// pin 8 - Serial clock out (SCLK)
// pin 9 - Serial data out (DIN)
// pin 10 - Data/Command select (D/C)
// pin 11 - LCD chip select (CS/CE)
// pin 12 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(8, 9, 10, 11, 12);

// Variáveis que guardam a temperatura máxima e mínima
int maxtemp = -100,mintemp = 100;

// Variáveis que guardam a umidade máxima e mínima 
int maxhum = -100, minhum = 100; 
int temperatura,umidade;


static unsigned char PROGMEM grau[] =
{ B00001100, B00010010, B00001100, B00000000,}; //Array simbolo grau

void setup()
{
  Serial.begin(9600);
  display.begin();
  display.setContrast(50); //Ajusta o contraste do display
  display.clearDisplay();   //Apaga o buffer e o display
  display.setTextSize(1);  //Seta o tamanho do texto
  display.drawRect(0,0, 84,48, BLACK); //Desenha o retangulo da borda
  display.drawRect(1,1, 82,46, BLACK); //Desenha o retangulo da borda
  display.display();
}

void loop()
{
  DHT.read11(dht_dpin); //Lê as informações do sensor
  temperatura = DHT.temperature;
  umidade = DHT.humidity;

  //Armazena a temperatura máxima na variável maxtemp
  if(temperatura > maxtemp) {maxtemp = temperatura;} 

  //Armazena a temperatura minima na variável mintemp
  if(temperatura < mintemp) {mintemp = temperatura;} 

  //Armazena a umidade máxima na variável maxhum
  if(umidade > maxhum) {maxhum = umidade;} 

  //Armazena a umidade minima na variável minhum
  if(umidade < minhum) {minhum = umidade;} 

  display.setTextColor(BLACK,WHITE); //Seta a cor do texto
  display.setCursor(3,5);  //Seta a posição do cursor
  display.print("Temp : ");  
  display.print(temperatura);
  //Desenha o simbolo do grau na posicao 56,5
  display.drawBitmap(56,5, grau, 8, 4, BLACK); 
  display.setCursor(65,5);
  display.println("C");
  display.setCursor(3,13);
  display.print("Umid : ");
  display.print(umidade);
  display.println(" %\n");

  display.setCursor(3,24);
  display.print("Max:");
  display.print(maxtemp);
  display.drawBitmap(37,24, grau, 8, 4, BLACK);
  display.setCursor(46,24);
  display.print("C/");
  display.print(maxhum);
  display.println(" %");
  display.setCursor(3,32);
  display.print("Min:");
  display.print(mintemp);
  display.drawBitmap(37,32, grau, 8, 4, BLACK);
  display.setCursor(46,32);
  display.print("C/");
  display.print(minhum);
  display.println(" %");
  display.display();

  delay(2000); //Aduarda 2 segundos e reinicia o processo
 }

Usei 4 variáveis para armazenamento dos valores máximo e mínimo de  temperatura e umidade, mostrando-as no final da tela. Usei também a função da biblioteca (display.drawRect) para desenho da borda.

Por ser um display gráfico, você consegue posicionar os caracteres no pixel desejado, não ficando restrito ao espaço de um caracter. Repare nas linhas contendo "display.setCursor", onde se pode usar qualquer valor  para posicionar o texto no display e evitar as bordas.

20 maio 2013

Sensor de umidade e temperatura DHT11

O sensor DHT11 é um sensor de temperatura e umidade , que permite medir temperaturas de 0 a 50 Celsius, e umidade na faixa de 20 a 90%. Não é um sensor extremamente rápido e preciso, por isso não é recomendada a utilização em ambientes de alto risco.

Sua faixa de precisão para temperatura é de 2 graus, e de umidade, 5%. Esse sensor pode ser adquirido na FilipeFlop, e o datasheet do DHT11 você encontra aqui.

O sensor em si tem 4 pinos, mas o pino 3 não é utilizado :

sensor de umidade temperatura dht11

O mais comum é encontrá-lo em forma de módulo, onde temos apenas 3 pinos : Vcc, Data e Gnd :
Módulo DHT11
Modulo DHT11 - Fundo

A ligação do sensor é bem simples, utilizando apenas uma porta do Arduino :

Circuito DHT11 e Arduino


O programa abaixo lê as informações do sensor, e apresenta essas informações no serial monitor do Arduino. A biblioteca para uso com o DHT11 você encontra aqui.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Programa : Sensor de umidade e temperatura DHT11
//Autor : Arduino e Cia

#include <dht.h>

#define dht_dpin A1 //Pino DATA do Sensor ligado na porta Analogica A1

dht DHT; //Inicializa o sensor

void setup()
{
  Serial.begin(9600);
  delay(1000);//Aguarda 1 seg antes de acessar as informações do sensor
}

void loop()
{
  DHT.read11(dht_dpin); //Lê as informações do sensor
  Serial.print("Umidade = ");
  Serial.print(DHT.humidity);
  Serial.print(" %  ");
  Serial.print("Temperatura = ");
  Serial.print(DHT.temperature); 
  Serial.println(" Celsius  ");

  //Não diminuir o valor abaixo. O ideal é a leitura a cada 2 segundos
  delay(2000);  
}

Execute o programa, abra o serial monitor e você terá uma tela como essa, contendo as informações de temperatura e umidade :

Sensor temperatura DHT11 - Serial Monitor

Aproveitando o post anterior, sobre o display Nokia 5110, que tal juntarmos tudo e apresentarmos esses dados de temperatura e umidade no display ? Assunto para o próximo artigo. Até lá !