Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Construye una estación meteorológica compacta con Arduino Nano: Guía DIY fácil

Componentes y materiales

Arduino Nano R3 × 1
Módulo DHT11 × 1
Sensor de presión BMP-280 × 1
Pantalla LCD 1.44" ST7735 × 1
Caja impresa en 3D × 1
Cable USB A a mini USB B × 1

Herramientas y máquinas necesarias

Aplicaciones y servicios en línea

Sobre este proyecto

Introducción

Capturar datos físicos en tiempo real es siempre fascinante. En este proyecto, no solo podrás capturar tres parámetros físicos fundamentales para predicción meteorológica (temperatura, humedad y presión atmosférica), sino también mostrar los datos en tiempo real en una pantalla LCD.

Descripción y principio de funcionamiento

Los dos sensores usados son el BMP-280 y el DHT-11. El primero detecta temperatura y presión atmosférica, el segundo la humedad relativa. Se podría haber usado un BME-280 (que también mide humedad) en lugar del BMP-280, pero considerando el coste, la combinación usada aquí es mucho más económica para proyectos DIY. También cabe notar que aunque el DHT-11 puede medir temperatura y humedad, se usa solo para humedad porque su resolución de temperatura es ±2°C frente a ±0.5°C del BMP-280. El corazón del proyecto es la placa de desarrollo Arduino NANO. Se eligió NANO sobre el popular UNO por su precio asequible. Se usa una pantalla TFT LCD ST7735 de 1.44" como display. Se evitó una pantalla mayor para no sobrecargar el Arduino NANO.

Circuito y programación

Se proporciona una combinación de diagrama de circuito y diagrama de bloques para ayudar a entender la configuración física y conexiones. También se incluyen tablas de pinout de los componentes. Al revisar el diagrama y tablas, notará que los pines 5V y GND del header ICSP en el Arduino NANO se han utilizado para alimentar los componentes junto con los pines de alimentación y tierra de la placa. Esto evita una fuente de alimentación adicional que haría el sistema más voluminoso.

En cuanto a la programación, en la primera parte se incluye un array de librerías para mantener el código corto y simple. Además de las obvias, vale la pena mencionar Wire.h y SPI.h porque Wire.h permite al Arduino comunicarse con dispositivos I2C/TWI como el BMP-280 y el LCD ST7735, y SPI.h proporciona la interfaz serial periférica con el LCD ST7735. En la segunda parte, se inicializan los sensores y se configuran el diseño, color de fuente, etc. del LCD para mostrar los datos según preferencias. En la parte final, se obtienen las lecturas de los sensores y se muestran con un delay conveniente entre cada lectura para mantener la estabilidad.

Construcción y pruebas

En el prototipo, los componentes se mantuvieron modulares y conectados con cables jumper en lugar de soldar. Esto no solo permite fácil solución de problemas y reparación, sino que también hace el ensamblaje sin complicaciones. La carcasa se imprimió en 3D a medida para un ajuste perfecto. La caja tiene ventilación adecuada para exponer los sensores a los measurands y disipar el calor generado que interferiría con los elementos sensores. El dispositivo se alimenta vía el mismo cable USB tipo A a mini USB tipo B usado para programar el Arduino. El prototipo se probó en interiores durante varias horas usando tanto puerto USB de PC como cargador de smartphone 5V. Los resultados son bastante precisos comparados con datos meteorológicos en línea, considerando el coste de producción y tiempo de desarrollo.

Conclusión

En conclusión, este proyecto es bastante económico, útil por decir lo menos, y lo más importante, ¡es divertido tener una pequeña estación meteorológica portátil que cabe en tu bolsillo!

Para comprar componentes electrónicos, pídalos en UTSOURCE

Bibliografía

Construye una estación meteorológica compacta con Arduino Nano: Guía DIY fácil
Construye una estación meteorológica compacta con Arduino Nano: Guía DIY fácil
Construye una estación meteorológica compacta con Arduino Nano: Guía DIY fácil
Construye una estación meteorológica compacta con Arduino Nano: Guía DIY fácil

Código

EL CÓDIGO (C/C++)

ESTE ES EL SKETCH RELEVANTE PARA EL PROYECTO, LOS COMENTARIOS EXPLICAN EL FUNCIONAMIENTO

#include <SPI.h>           // Interfaz Serial Periférica
#include <Wire.h>           // Interfaz Dos Hilos (I2C)
#include <Adafruit_GFX.h>   // Librería gráfica Adafruit
#include <Adafruit_ST7735.h>// Librería Adafruit ST7735 TFT
#include <Adafruit_BMP280.h>// Librería sensor Adafruit BMP280
#include "DHT.h"            // Librería sensor DHTXX

#define DHTPIN 2       // Pin datos DHT11 en D2
#define DHTTYPE DHT11  // Tipo de sensor DHT
#define TFT_RST 8      // TFT RST en D8
#define TFT_CS 10      // TFT CS en D9
#define TFT_DC 9       // TFT DC en D10

// Inicializar librería ST7735 SERIES TFT
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

// Dirección I2C del dispositivo: 0x76 o 0x77 (0x77 es default de la librería)
#define BMP280_I2C_ADDRESS 0x76

Adafruit_BMP280 bmp280;        // Inicializar librería BMP280
DHT dht(DHTPIN, DHTTYPE);      // Inicializar sensor DHT

void setup(void) {
  dht.begin();                           // Sincronizar sensor DHT
  tft.initR(INITR_144GREENTAB);          // Inicializar chip ST7735S, pestaña verde
  tft.fillScreen(ST77XX_BLACK);          // Fondo negro
  tft.drawFastHLine(0, 15, tft.width(), ST77XX_CYAN); // Línea separadora en (0,15)
  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK); // Color texto cian, fondo negro
  tft.setTextSize(1);                    // Tamaño texto 1
  tft.setCursor(25, 5);                  // Cursor en (25,5)
  tft.print("WEATHER BUDDY");            // Título

  // Inicializar sensor BMP280
  if (bmp280.begin(BMP280_I2C_ADDRESS) == 0) {
    // Error de conexión o dirección incorrecta
    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); // Bucle infinito
  }

  tft.drawFastHLine(0, 55, tft.width(), ST77XX_CYAN); // Línea en (0,55)
  tft.drawFastHLine(0, 95, tft.width(), ST77XX_CYAN); // Línea en (0,95)
  
  tft.setTextColor(ST77XX_RED, ST77XX_BLACK);
  tft.setCursor(30, 20);
  tft.print("TEMPERATURA");
  
  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK);
  tft.setCursor(40, 60);
  tft.print("HUMEDAD");
  
  tft.setTextColor(ST77XX_GREEN, ST7735_BLACK);
  tft.setCursor(40, 100);
  tft.print("PRESION");
  
  tft.setTextSize(2); // Tamaño texto 2 para valores
}

// Bucle principal
void loop() {
  char _buffer[8];
  
  // Leer sensores
  float temp = bmp280.readTemperature();     // Temperatura en °C
  float hum = dht.readHumidity();            // Humedad en %HR
  float pres = bmp280.readPressure();        // Presión en Pa

  // 1: Imprimir temperatura (°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 grado (°)
  tft.setCursor(95, 34);
  tft.print("C");

  // 2: Imprimir humedad (%)
  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: Imprimir presión (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); // Espera 1 segundo antes de siguiente lectura
}

Piezas personalizadas y cajas

ARCHIVO STL PARA LAS PIEZAS IMPRESAS EN 3D QUE USÉ

Esquemático

SOLO NECESITAS SEGUIR EL CABLEADO MOSTRADO.

Construye una estación meteorológica compacta con Arduino Nano: Guía DIY fácil

Proceso de manufactura

  1. Construcción de una estación meteorológica exterior con Raspberry Pi 2 y ADS‑WS1
  2. Construya una estación meteorológica con Raspberry Pi que envíe datos diarios por email
  3. Monitorización meteorológica remota con Raspberry Pi 3 y PubNub
  4. Estación Meteorológica Avanzada v2.0: Monitorización en Tiempo Real de Temperatura, Presión, Humedad y Altitud
  5. Construye una consola de control DIY para Photoshop con Arduino Nano RP2040
  6. Reloj Preciso de 7 Segmentos con Arduino Pro Mini y RTC DS1302
  7. Estación Meteorológica Portátil Arduino por $10 – Nano, DHT22, BMP180 y LCD
  8. eDOT: Reloj Preciso y Estación Meteorológica Arduino con Control IR Integrado
  9. Construye una Radio FM Compacta con Arduino Nano y RDA5807M
  10. Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT
  11. Estación meteorológica Arduino Nano: Sensores BMP280, DHT11, UV y RTC en OLED 0,96"