Índice:
- Etapa 1: Lista de Itens
- Etapa 2: introdução relativa
- Etapa 3: conectar o circuito
- Etapa 4: Prepare-se para compilar
- Etapa 5: Código de teste para porta serial do sensor DHT22
- Etapa 6: Código para o Projeto
- Etapa 7: Descrição
Vídeo: Estação meteorológica usando Arduino UNO: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Criado por: Hazel Yang
Este projeto é uma estação meteorológica usando uma placa Arduino UNO para controlar o fluxo de dados, um sensor DHT22 para coletar os dados e uma tela OLED para mostrar os dados.
Etapa 1: Lista de Itens
1. Tela: OLED, visor SH1106 de 1,3 , cor branca I2C ---- PID: 18283
2. Sensor: Sensor Digital de Umidade e Temperatura DHT22 ---- PID: 7375
3. Conecta: Jumper Fios ---- PID: 10316 ou 10318 ou 10312 (depende do comprimento) ou você pode usar fio sólido 22 AWG ---- PID: 22490
Placa de ensaio ---- PID: 10686 ou 10698 ou 103142 (depende do tamanho)
4. Alimentação: Este cabo só pode ser conectado a uma porta USB do computador e o cabo também é usado para transferência de dados entre o IDE e a placa Arduino. CABO USB, A TO B, M / M, 0,5M (1,5FT) ---- PID: 29862
Ou você pode usar isto para alimentar a placa: 5V 2A AC / DC Adapter ---- PID: 10817.
Etapa 2: introdução relativa
Introdução da tela: display OLED de 1,3 branco
1. Você pode encontrar o documento que mostra a configuração básica e as descrições:
Introdução do Sensor: Sensor de Umidade e Temperatura DHT22 1. Você pode encontrar o documento que mostra as descrições:
Etapa 3: conectar o circuito
O sensor DHT22 envia dados seriais para o pino 2. Portanto, conecte o segundo pino da esquerda, o pino "SDA" deve ser conectado ao pino 2.
Para o display SSH1106, ele usa o pino analógico para transmitir. O circuito da tela será o pino "SCL" no "A5" do Arduino e o pino "SDA" no "A4" do Arduino. Enquanto os dados de posição do pixel estão sendo transmitidos continuamente, a função de exibição no programa apenas aciona o comando uma vez a cada vez que lê os dados do sensor.
Tanto o sensor quanto a tela podem usar 3,3 V para ligar o Arduino como uma entrada de alimentação CC. Para ligar, precisamos conectar os pinos "VCC" ao "3.3V" do Arduino. E os pinos "GND" podem ser simplesmente conectados ao pino "GND" na placa Arduino.
Use o cabo USB A para B, conecte o Arudino ao computador.
Etapa 4: Prepare-se para compilar
"u8glib" para a tela SSH1106 da Olikraus.
"Biblioteca de sensores DHT" para o sensor DHT22 da Adafruit. Você deve baixar as duas bibliotecas: Biblioteca de sensores DHT22:
U8glib:
E use “gerenciar biblioteca” no IDE para descompactá-los. Instruções online de gerenciamento de bibliotecas:
Etapa 5: Código de teste para porta serial do sensor DHT22
Coeficiente de teste para a porta serial do sensor DHT22 (que está dentro da biblioteca DHT22 >> exemplos):
(Você pode pular esta parte.)
É apenas para testar o sensor DHT22 que lê os dados normalmente
#incluir
#incluir
#incluir
#incluir
#incluir
# define DHTPIN 2
# define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup () {
Serial.begin (9600);
Serial.println (F ("Teste DHT22!"));
dht.begin ();
}
void loop () {
// Aguarde alguns segundos entre as medições.
atraso (2000);
// A leitura da temperatura ou umidade leva cerca de 250 milissegundos!
// As leituras do sensor também podem ter até 2 segundos de idade (é um sensor muito lento)
float h = dht.readHumidity ();
// Lê a temperatura como Celsius (o padrão)
float t = dht.readTemperature ();
// Lê a temperatura como Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature (true);
// Verifique se alguma leitura falhou e saia mais cedo (para tentar novamente).
if (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("Falha ao ler do sensor DHT!"));
Retorna;
}
// Calcula o índice de calor em Fahrenheit (o padrão)
float hif = dht.computeHeatIndex (f, h);
// Calcula o índice de calor em Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex (t, h, false);
Serial.print (F ("Umidade:"));
Serial.print (h);
Serial.print (F ("% Temperatura:"));
Serial.print (t);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("Índice de calor ° F:"));
Serial.print (hic);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// Após compilar o programa, clique em FERRAMENTAS >> MONITOR SERIAL para verificar os dados.
// Fim do programa de teste.
Etapa 6: Código para o Projeto
#incluir
#incluir
#incluir
#incluir
#incluir
# define DHTPIN 2
# define DHTTYPE DHT22
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
Sensor DHT (DHTPIN, DHTTYPE);
void draw (void) {
u8g.setFont (u8g_font_unifont);
float h = sensor.readHumidity ();
// Lê a temperatura como Celsius (o padrão)
float t = sensor.readTemperature ();
// Verifique se alguma leitura falhou e saia mais cedo (para tentar novamente).
if (isnan (h) || isnan (t)) {
u8g.print ("Erro.");
para(;;);
Retorna;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatura (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Umidade (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
void setup (void) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
void loop (void) {
// loop de imagem
u8g.firstPage ();
Faz {
empate();
} while (u8g.nextPage ());
// reconstruir a imagem após algum atraso delay (2000);
}
// Fim do programa principal.
Etapa 7: Descrição
Em seguida, inicialize o circuito de pinos para a placa Arduino. Porque a biblioteca de sensores requer os dados para declarar o objeto.
E você pode testar os dados do sensor monitorando os dados de saída por meio do pino digital 2 usando a função chamada "Serial.print ()". Como a frequência de transmissão de dados é de aproximadamente 1 leitura a cada 2 segundos (que é 0,5 Hz), quando programado no IDE do Arduino, precisamos definir o atraso dentro da função de loop para mais de 2 segundos. Portanto, há um "atraso (2000)" dentro da função de loop. Isso garante que os dados sejam atualizados com frequência. Na função "desenhar", pegue os dados da porta de dados serial e coloque-os em números flutuantes usando as funções "readHumidity" e "readTemperature".
Imprima a umidade e a temperatura usando a função de impressão no arquivo "u8glib". Você pode ajustar a posição alterando o número na função "setPrintPos". A função de impressão pode mostrar diretamente o texto e os números.
Para configurar o hardware, dê à porta serial um atraso de 10 segundos. Em seguida, chame a função de início do sensor. De acordo com meu circuito, minha tela estava de cabeça para baixo. Então, também incluí uma função "setRot180" para girar a tela.
A função de loop da placa Arduino é a função principal. Ele continua chamando a função de desenho para exibir o texto e os dados sempre que o sensor é atualizado.
A tela fica assim:
Você pode desconectar o Arduino UNO do seu computador e ligá-lo usando um adaptador de energia 5 V CC conectado ao conector de energia de 2,1 mm. Ele armazena o programa em sua unidade e pode executá-lo continuamente novamente após ser ligado.
Recomendado:
Mini estação meteorológica usando Arduino e ThingSpeak: 4 etapas
Mini estação meteorológica usando Arduino e ThingSpeak: Olá a todos. Neste Instructable, irei guiá-lo através das etapas para fazer uma mini estação meteorológica personalizada. Além disso, usaremos a API ThingSpeak para fazer upload de nossos dados meteorológicos para seus servidores, ou então qual é o propósito de uma equipe meteorológica
Estação meteorológica NaTaLia: Estação meteorológica com energia solar Arduino Feito da maneira certa: 8 etapas (com fotos)
Estação meteorológica de NaTaLia: Estação meteorológica com energia solar Arduino feito da maneira certa: após 1 ano de operação bem-sucedida em 2 locais diferentes, estou compartilhando meus planos de projeto de estação meteorológica movida a energia solar e explicando como ela evoluiu para um sistema que pode realmente sobreviver por muito tempo períodos de energia solar. Se você seguir
Estação meteorológica DIY e estação de sensor WiFi: 7 etapas (com fotos)
Estação meteorológica DIY e estação de sensor WiFi: Neste projeto, vou mostrar como criar uma estação meteorológica juntamente com uma estação de sensor WiFi. A estação sensora mede os dados locais de temperatura e umidade e os envia, via WiFi, para a estação meteorológica. A estação meteorológica exibe então t
Estação meteorológica ambiente usando Arduino e BME280: 4 etapas
Estação meteorológica do quarto usando Arduino e BME280: Anteriormente, compartilhei uma estação meteorológica simples que exibia a temperatura e a umidade da área local. O problema era que demoraria para atualizar e os dados não eram precisos. Neste tutorial faremos um monitor de clima interno
Estação meteorológica inteligente (usando Arduino): 5 etapas
Estação meteorológica inteligente (usando Arduino): Uma estação meteorológica é uma instalação, seja em terra ou no mar, com instrumentos e equipamentos para medir as condições atmosféricas para fornecer informações para previsões do tempo e estudar o tempo e o clima. As medições feitas incluem temperatura