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

Construa uma Estação Meteorológica Compacta com Arduino Nano – Guia DIY Fácil

Componentes e Materiais

Ferramentas e Máquinas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Introdução

Capturar dados físicos em tempo real é sempre fascinante. Neste projeto, você não só poderá capturar três parâmetros físicos fundamentais para previsão do tempo – temperatura, umidade e pressão atmosférica – mas também exibir os dados em tempo real em uma tela LCD.

Descrição e Princípio de Funcionamento

Os dois sensores usados são BMP280 e DHT11. O primeiro mede temperatura e pressão atmosférica; o segundo mede umidade relativa. O DHT11 poderia ser dispensado usando um BME280 (que também mede umidade) em vez do BMP280, mas considerando o custo, a combinação usada aqui é muito mais econômica para projetos DIY. Note que, embora o DHT11 possa medir temperatura e umidade, ele é usado apenas para umidade porque sua resolução de temperatura é ±2°C comparado a ±0.5°C do BMP280. O coração do projeto é a placa de desenvolvimento Arduino NANO. O NANO foi escolhido em vez do UNO por seu preço acessível. Uma tela TFT LCD ST7735 de 1.44" é usada como display. Uma tela maior foi evitada para não sobrecarregar o Arduino NANO.

Circuito e Programação

Uma combinação de diagrama de circuito e diagrama de blocos foi fornecida para ajudar a entender a configuração física e conexão dos componentes. Tabelas de pinagem dos componentes também são fornecidas. Ao analisar o diagrama e tabelas, notará que os pinos 5V e GND do header ICSP no Arduino NANO foram utilizados para alimentar os componentes junto com os pinos de alimentação e terra onboard. Isso evita fonte de alimentação adicional, mantendo o sistema compacto.

Quanto à programação, na primeira parte várias bibliotecas são incluídas para manter o código curto e simples. Além das óbvias, as bibliotecas Wire.h e SPI.h merecem destaque: Wire.h permite comunicação I2C/TWI com BMP280 e LCD ST7735; SPI.h fornece interface serial periférica com o LCD ST7735. Na segunda parte, os sensores são inicializados e o layout, cor da fonte, etc. do LCD são configurados para exibir dados conforme preferência. Na parte final, as leituras dos sensores são obtidas e exibidas com atraso conveniente entre cada leitura para manter a estabilidade.

Construção e Testes

No protótipo, os componentes foram mantidos modulares e conectados com jumpers em vez de solda. Isso permite fácil troubleshooting e reparo, além de tornar a montagem sem complicações. A caixa do dispositivo foi impressa em 3D sob medida para encaixe perfeito. A caixa possui ventilação adequada para expor os sensores aos measurands e dissipar calor gerado pelo sistema, que interferiria nos elementos sensores. O dispositivo é alimentado via cabo USB tipo A para mini USB tipo B, o mesmo usado para programar o Arduino. O protótipo foi testado em ambiente interno por algumas horas usando tanto porta USB do PC quanto carregador de smartphone 5V. Os resultados são bastante precisos comparados com dados meteorológicos online, considerando custo de produção e tempo de desenvolvimento.

Conclusão

Em conclusão, este projeto é bastante econômico, útil e, o mais importante, é divertido ter uma pequena estação meteorológica portátil que cabe no bolso.

Para comprar componentes eletrônicos, peça na UTSOURCE.

Bibliografia

Construa uma Estação Meteorológica Compacta com Arduino Nano – Guia DIY Fácil
Construa uma Estação Meteorológica Compacta com Arduino Nano – Guia DIY Fácil
Construa uma Estação Meteorológica Compacta com Arduino Nano – Guia DIY Fácil
Construa uma Estação Meteorológica Compacta com Arduino Nano – Guia DIY Fácil

Código

O CÓDIGO C/C++

ESTE É O SKETCH RELEVANTE PARA O PROJETO, OS COMENTÁRIOS EXPLICAM O FUNCIONAMENTO

#include <SPI.h> // Interface Serial Periférica
#include <Wire.h> // Interface Dois Fios (I2C)
#include <Adafruit_GFX.h> // Biblioteca gráfica Adafruit
#include <Adafruit_ST7735.h> // Biblioteca Adafruit ST7735 TFT
#include <Adafruit_BMP280.h> // Biblioteca sensor Adafruit BMP280
#include "DHT.h" // Biblioteca sensor DHTXX

#define DHTPIN 2 // Pino de dados DHT11 no pino D2 do Arduino
#define DHTTYPE DHT11 // Tipo de sensor DHT usado
#define TFT_RST 8 // Pino RST do TFT no pino D8 do Arduino
#define TFT_CS 10 // Pino CS do TFT no pino D9 do Arduino
#define TFT_DC 9 // Pino DC do TFT no pino D10 do Arduino

// Inicializa biblioteca ST7735 SERIES TFT
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

// Endereço I2C do dispositivo: 0x76 ou 0x77 (0x77 é padrão da biblioteca)
#define BMP280_I2C_ADDRESS 0x76
Adafruit_BMP280 bmp280; // Inicializa biblioteca Adafruit BMP280
DHT dht(DHTPIN, DHTTYPE); // Inicializa sensor DHT

void setup(void) {
  dht.begin(); // Sincroniza sensor DHT
  tft.initR(INITR_144GREENTAB); // Inicializa chip ST7735S, aba verde
  tft.fillScreen(ST77XX_BLACK); // Fundo preto
  tft.drawFastHLine(0, 15, tft.width(), ST77XX_CYAN); // Linha horizontal separadora em (0,15)
  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK); // Cor texto ciano, fundo preto
  tft.setTextSize(1); // Tamanho texto 1
  tft.setCursor(25, 5); // Cursor em (25,5)
  tft.print("WEATHER BUDDY"); // Título

  // Inicializa sensor BMP280
  if (bmp280.begin(BMP280_I2C_ADDRESS) == 0) {
    tft.setTextColor(ST77XX_RED, ST77XX_CYAN);
    tft.setTextSize(2);
    tft.setCursor(5, 76);
    tft.print("Connection");
    tft.setCursor(35, 100);
    tft.print("Error");
    while (1); // Trava aqui
  }

  tft.drawFastHLine(0, 55, tft.width(), ST77XX_CYAN); // Linha em (0,55)
  tft.drawFastHLine(0, 95, tft.width(), ST77XX_CYAN); // Linha em (0,95)
  tft.setTextColor(ST77XX_RED, ST77XX_BLACK);
  tft.setCursor(30, 20);
  tft.print("TEMPERATURE ");
  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK);
  tft.setCursor(40, 60);
  tft.print("HUMIDITY ");
  tft.setTextColor(ST77XX_GREEN, ST7735_BLACK);
  tft.setCursor(40, 100);
  tft.print("PRESSURE ");
  tft.setTextSize(2);
}

// Loop principal
void loop() {
  char _buffer[8];
  // Lê temperatura, umidade e pressão do BMP280
  float temp = bmp280.readTemperature(); // Temperatura em °C
  float hum = dht.readHumidity(); // Umidade em %rH
  float pres = bmp280.readPressure(); // Pressão em hPa (Pa na verdade, convertemos depois)

  // 1: Imprime temperatura (em °C)
  if (temp < 0)
    sprintf(_buffer, "-%02u.%02u", (int)abs(temp), (int)(abs(temp) * 100) % 100);
  else
    sprintf(_buffer, " %02u.%02u", (int)temp, (int)(temp * 100) % 100);

  tft.setTextColor(ST77XX_YELLOW, ST77XX_BLACK);
  tft.setCursor(11, 34);
  tft.print(_buffer);
  tft.drawCircle(89, 34, 2, ST77XX_YELLOW); // Símbolo de grau (°)
  tft.setCursor(95, 34);
  tft.print("C");

  // 2: Imprime umidade (em %)
  sprintf(_buffer, "%02u ", (int)(hum));
  tft.setTextColor(ST77XX_MAGENTA, ST77XX_BLACK);
  tft.setCursor(45, 74);
  tft.print(_buffer);
  tft.setCursor(75, 74);
  tft.print("%");

  // 3: Imprime pressão (em hPa)
  sprintf(_buffer, "%04u.%02u", (int)(pres / 100), (int)((uint32_t)pres % 100));
  tft.setTextColor(ST77XX_ORANGE, ST77XX_BLACK);
  tft.setCursor(3, 112);
  tft.print(_buffer);
  tft.setCursor(91, 112);
  tft.print("hPa");

  delay(1000); // Aguarda 1 segundo antes da próxima leitura
}

Peças Personalizadas e Caixas

ESTE É O ARQUIVO STL PARA AS PEÇAS IMPRESSAS EM 3D QUE USEI

Esquemático

BASTA SEGUIR A FIAÇÃO MOSTRADA.

Construa uma Estação Meteorológica Compacta com Arduino Nano – Guia DIY Fácil

Processo de manufatura

  1. Construindo Estação Meteorológica Externa com Raspberry Pi 2 e ADS‑WS1
  2. Construa Estação Meteorológica Raspberry Pi que Envia Dados Diários por Email
  3. Monitoramento Remoto do Tempo com Raspberry Pi 3 e PubNub
  4. Estação Meteorológica Avançada v2.0: Monitoramento em Tempo Real de Temperatura, Pressão, Umidade e Altitude
  5. Console de Controle DIY para Photoshop com Arduino Nano RP2040
  6. Relógio Preciso de 7 Segmentos com Arduino Pro Mini e RTC DS1302
  7. Estação Meteorológica Portátil Arduino por $10 – DIY com Nano, DHT22, BMP180 e LCD
  8. eDOT: Relógio de Precisão e Estação Meteorológica Arduino com Controle IR Embutido
  9. Construa um Rádio FM Compacto com Arduino Nano e RDA5807M
  10. Monitoramento Meteorológico em Tempo Real com Arduino e ThingSpeak IoT