Kit Premium de Sensor de Humedad y Temperatura con Caja de Nogal – Arduino + NeoPixel + Pantalla TFT
Componentes y Suministros
| Componente | Cantidad |
|---|---|
| Arduino UNO | 1 |
| Anillo NeoPixel Adafruit: WS2812 5050 RGB LED | 1 |
| Sensor de Temperatura DHT22 | 1 |
| Pantalla TFT LCD Color 1.44" Adafruit con ranura MicroSD - ST7735R | 1 |
| Protoboard (genérica) | 1 |
| Portapilas 4xAA | 1 |
| Cables de conexión (genéricos) | 1 |
Herramientas y Máquinas Necesarias
- Soldador (genérico)
- Pistola de silicona caliente (genérica)
Sobre este Proyecto
La Historia Detrás del Proyecto
Aprende cómo construimos una caja de nogal con juntas de cola de milano y utilizamos componentes Arduino fáciles de conseguir para crear un monitor de humedad y temperatura elegante y útil para el taller de carpintería. Este proyecto DIY combina carpintería con nogal y electrónica para principiantes usando Arduino Uno y excelentes componentes de Adafruit.
Vivimos en el centro de Texas, donde en primavera se producen grandes variaciones de humedad y temperatura, lo que puede ser desastroso para ciertos proyectos de carpintería. Este proyecto nos alerta cuando la humedad cambia o se vuelve alta, para que podamos tomar precauciones como mover nuestros proyectos de madera al interior o evitar el fresado durante climas de alta humedad. Además, tiene un aspecto genial y muestra nuestro logotipo.
Somos nuevos en Arduino y electrónica, así que aprendimos sobre la marcha. Estamos muy emocionados de hacer más proyectos ahora que sabemos lo fácil que es crear cosas geniales.
Ver el Video de Construcción Detallado
Disponible en el enlace del proyecto original.
Código
Código del Sensor para Taller Arduino
#include
#include
#include
#include
#include
#include
#include
// Definición de pines
#define TFT_CS 10
#define TFT_RST 9
#define TFT_DC 8
#define DHT_PIN 2
#define PIXEL_PIN 6
#define PIXEL_NUM 24
#define SD_PIN 4
#define BMP_BUF 20
// Variables globales
int currentColor = 9999;
CRGB leds[PIXEL_NUM];
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
DHT22 dht(DHT_PIN);
int loopDelay = 2000; // ms
void setup() {
Serial.begin(9600);
Serial.println("Iniciando...");
// Iniciar DHT
dht.begin();
// Inicializar pantalla LCD
tft.initR(INITR_144GREENTAB);
// Inicializar tarjeta SD
Serial.print("Inicializando tarjeta SD.");
if (!SD.begin(SD_PIN)) {
Serial.println("Falló!");
return;
}
// Fondo de pantalla negro
tft.fillScreen(ST7735_BLACK);
// Inicializar LEDs
FastLED.addLeds(leds, PIXEL_NUM);
delay(500);
}
void loop() {
// Obtener datos del sensor
dht.readTemperature();
dht.readHumidity();
int f = dht.temperature_F; // Grados Fahrenheit
int h = dht.humidity; // Porcentaje
// Dibujar icono de grados
tft.fillCircle(102, 42, 6, ST7735_WHITE);
tft.fillCircle(102, 42, 4, ST7735_BLACK);
// Dibujar temperatura en LCD
drawTemperature(f);
// Configurar colores según humedad
setHumidityColors(h);
// Imprimir en monitor serial
Serial.print("Temperatura: ");
Serial.println(f);
Serial.print("Humedad: ");
Serial.print(h);
Serial.println("%");
delay(1000);
}
// Funciones auxiliares para dibujo de bitmaps, lectura de archivos, etc.
// (Código completo disponible en el proyecto original)
// Dibujar temperatura en pantalla LCD
void drawTemperature(int temp) {
int digits = numDigits(temp);
int x1_2 = 62, x2_2 = 32;
int x1_3 = 1, x2_3 = 1, x3_3 = 1;
int y = 38;
char digit1[12], digit2[12], digit3[12];
char digitStr1[24], digitStr2[24], digitStr3[24];
// Obtener dígitos
itoa(temp % 10, digit1, 10);
strcpy(digitStr1, "");
strcat(digitStr1, digit1);
strcat(digitStr1, ".bmp");
if (digits == 2) {
itoa((temp / 10) % 10, digit2, 10);
strcpy(digitStr2, "");
strcat(digitStr2, digit2);
strcat(digitStr2, ".bmp");
}
if (digits == 3) {
itoa((temp / 100) % 10, digit3, 10);
strcpy(digitStr3, "");
strcat(digitStr3, digit3);
strcat(digitStr3, ".bmp");
}
if (digits > 2) {
bmpDraw(digitStr1, x1_3, y);
bmpDraw(digitStr2, x2_3, y);
bmpDraw(digitStr3, x3_3, y);
} else {
bmpDraw(digitStr1, x1_2, y);
bmpDraw(digitStr2, x2_2, y);
}
}
int numDigits(int number) {
if (number > 99) return 3;
return 2;
}
// Establecer colores de LEDs
void setColors(int r, int g, int b) {
for (int i = 0; i < PIXEL_NUM; i++) {
leds[i].setRGB(r, g, b);
leds[i].fadeLightBy(125);
FastLED.show();
delay(100);
}
}
// Determinar colores según nivel de humedad
void setHumidityColors(int humidity) {
// Tabla de colores por humedad:
// Rojo: 0-17% | Naranja: 18-34% | Amarillo: 35-51%
// Verde: 52-68% | Azul: 69-85% | Púrpura: 86-100%
int cRed[3] = {255, 0, 0};
int cOrange[3] = {255, 90, 0};
int cYellow[3] = {255, 255, 0};
int cGreen[3] = {0, 255, 0};
int cBlue[3] = {0, 175, 255};
int cPurple[3] = {255, 0, 255};
int range = map(humidity, 0, 100, 0, 6);
switch (range) {
case 0: if (currentColor != 0) { setColors(cRed[0], cRed[1], cRed[2]); currentColor = 0; } break;
case 1: if (currentColor != 1) { setColors(cOrange[0], cOrange[1], cOrange[2]); currentColor = 1; } break;
case 2: if (currentColor != 2) { setColors(cYellow[0], cYellow[1], cYellow[2]); currentColor = 2; } break;
case 3: if (currentColor != 3) { setColors(cGreen[0], cGreen[1], cGreen[2]); currentColor = 3; } break;
case 4: if (currentColor != 4) { setColors(cBlue[0], cBlue[1], cBlue[2]); currentColor = 4; } break;
case 5: if (currentColor != 5) { setColors(cPurple[0], cPurple[1], cPurple[2]); currentColor = 5; } break;
}
}
Partes Personalizadas y Cajas
Diseño de la caja de nogal con juntas de cola de milano (archivo CAD disponible en el proyecto original).
Esquemáticos
Diagrama de conexiones realizado en Fritzing (representación aproximada del flujo de conexiones). Incluye diagrama de cableado y foto del montaje final.
Proceso de manufactura
- Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
- Monitorización fluida de temperatura y humedad en Raspberry Pi con EzTemp
- Construya un Sistema de Monitorización de Temperatura y Luz Multi‑Sensor con Raspberry Pi y DS18B20
- Construye un sistema aeropónico automatizado con Raspberry Pi y sensor de humedad
- Monitor de temperatura casero con Raspberry Pi, MCP9808, InfluxDB y Grafana
- Verifica y calibra tu sensor de humedad para mediciones precisas
- Sensirion SVM30: Módulo todo‑en‑uno multi‑gas, humedad y temperatura para purificadores de aire y HVAC
- TE Connectivity HTU31: Sensor de humedad y temperatura de precisión con respuesta lineal
- Sensores de Humedad: Funcionamiento y Aplicaciones Clave
- Sensor DHT11: Funcionamiento y Aplicaciones Principales
- Sensor Lab-On-Chip de NASA Goddard Ofrece Monitoreo en Tiempo Real de Flujo y Temperatura