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

Reloj Meteorológico Arduino: Fecha, Hora, Temperatura y Humedad en Tiempo Real

Componentes y materiales

Componente Cantidad
Arduino UNO 1
Sensor de temperatura y humedad DHT11 (4 pines) 1
Módulo RTC DS3231 (Maxim Integrated) 1
Resistencia de 10 kΩ 1
Pantalla gráfica OLED 128x64 (Adafruit) 1
Protoboard (genérica) 1
Cables de conexión (genéricos) 15

Sobre el proyecto

¿Alguna vez has querido crear tu propia interfaz que muestre la hora, la fecha, la temperatura y la humedad? Es mucho más sencillo de lo que parece.

Arduino Uno / Nano

Primero necesitamos un microcontrolador. Se utilizó un Arduino Uno, pero un Arduino Nano también dispone de pines suficientes.

Sensor DHT11

El DHT11 es un sensor digital de temperatura y humedad muy económico. Utiliza un sensor capacitivo de humedad y un termistor para medir el aire circundante. Es importante respetar el intervalo de lectura: se recomienda tomar una muestra cada 2 segundos.

Nota importante: tras configurar la hora una vez, comenta esa línea en el código y vuelve a compilar. Así el RTC mantendrá la hora correcta y no se restablecerá a la hora de compilación cada vez que se encienda.

Módulo RTC DS3231

El DS3231 es un módulo de reloj en tiempo real (RTC), similar al DS1307 pero mucho más preciso y a un coste comparable. Integra un oscilador de cristal compensado por temperatura (TCXO) y cristal, además de una entrada para batería que mantiene la hora aunque se corte la alimentación principal.

Pantalla gráfica OLED 128x64

La pantalla OLED muestra los datos. Su tamaño es compacto y su brillo es excelente. La pantalla Adafruit puede controlarse mediante SPI o I2C, configurable en la parte trasera. Existen alternativas más económicas (por ejemplo, en eBay), pero asegúrate de que sean compatibles con las librerías de Adafruit que se utilizarán.

Código

El sketch principal es Time_Temp_Humidity_Display.ino. Recuerda instalar las librerías necesarias (Adafruit_GFX, Adafruit_SSD1306, dht) antes de compilar.

// Reloj meteorológico: fecha, hora, temperatura y humedad
// Librerías para OLED
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Pines SPI por software (por defecto)
#define OLED_MOSI 9
#define OLED_CLK 10
#define OLED_DC 11
#define OLED_CS 12
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

#if (SSD1306_LCDHEIGHT != 64)
#error("Altura incorrecta, corrija Adafruit_SSD1306.h!");
#endif

// Librería para DHT
#include <dht.h>
dht DHT;
#define DHT11_PIN 3
int DHTtimer = 0;

// RTC DS3231 (I2C: SDA a A4, SCL a A5)
#define DS3231_I2C_ADDRESS 0x68

byte decToBcd(byte val) { return (val/10*16) + (val%10); }
byte bcdToDec(byte val) { return (val/16*10) + (val%16); }

void setup() {
  Wire.begin();
  Serial.begin(9600);
  // Configurar hora inicial SOLO UNA VEZ, luego comentar:
  // setDS3231time(0, 24, 12, 6, 3, 2, 17); // seg, min, hora, díaSem, díaMes, mes, año
  display.begin(SSD1306_SWITCHCAPVCC);
  display.clearDisplay();
}

// Funciones RTC (set/read) y visualización de reloj analógico/digital
// ... (código completo en el repositorio)

void loop() {
  displayTime();           // Actualiza reloj y fecha en pantalla
  DHTtimer++;
  if (DHTtimer > 1) {      // Lectura DHT cada ~2 segundos
    display.fillRect(70, 45, 128, 64, BLACK);
    ReadTempAndHum();
    DHTtimer = 0;
  }
  delay(1000);
  display.display();
  // Limpia áreas de reloj para siguiente ciclo
  display.fillRect(0, 0, 64, 64, BLACK);
  display.fillRect(0, 0, 128, 20, BLACK);
}

Esquemáticos y archivos

Consejo: Verifica las conexiones I2C (A4/A5) y SPI según los defines del código. La pantalla OLED debe coincidir con la resolución 128x64 y el controlador SSD1306.

Proceso de manufactura

  1. Monitor de temperatura y humedad en red con Raspberry Pi – Guía DIY completa
  2. Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
  3. Monitorización fluida de temperatura y humedad en Raspberry Pi con EzTemp
  4. Construya una Estación Meteorológica de Laboratorio Habilitada para Red con Raspberry Pi
  5. Construya un Sistema de Monitorización de Temperatura y Luz Multi‑Sensor con Raspberry Pi y DS18B20
  6. Verifica y calibra tu sensor de humedad para mediciones precisas
  7. Carga y Descarga de Capacitor: Experimento Práctico de Circuito RC
  8. Guía Completa de Fecha y Hora en C++
  9. Obtener la Fecha y Hora Actual en Python: Guía Práctica
  10. Dominando fechas y horas en Python: Guía práctica
  11. Dominando Fecha y Hora en Java: Constructores, Métodos y Mejores Prácticas