Alerta de Sed Inteligente para Plantas: Sensor DIY para Riego Óptimo
Componentes y suministros
| Componente | Cantidad |
|---|---|
| Microchip ATmega328 | 1 |
| Cristal de 16 MHz | 1 |
| Condensador cerámico 20 pF | 2 |
| Regulador lineal 7805 (5V) | 1 |
| LED genérico (colores a elección) | 2 |
| Resistencia 10 kΩ | 1 |
| Resistencia 220 Ω | 1 |
| Resistencia 470 Ω | 1 |
| Interruptor deslizante | 1 |
| Pulsador C&K PTS 645 | 1 |
| Zumbador piezoeléctrico | 1 |
| Batería 9V | 1 |
| Conector para batería 9V | 1 |
| Sensor de humedad de suelo SparkFun (con bornes de tornillo) | 1 |
| Arduino UNO (para prototipado) | 1 |
| Carcasa impresa en 3D | 1 |
Herramientas necesarias
- Soldador
- Estaño sin plomo
Aplicaciones y servicios en línea
- Patchr PCB Editor
- Patchr PCB Manufacturing (código GoPatchr para 15% descuento)
- Arduino IDE
- Onshape (CAD 3D)
Sobre este proyecto
Cómo empezó todo
Confieso: soy un padre de plantas terrible. No sé si les doy demasiada luz o poca agua, pero nada las mantiene vivas. Me encanta su compañía, cómo alegran un espacio... Así que decidí construir un dispositivo que ayude a "asesinos de plantas" como yo a convertirnos en orgullosos cuidadores.
Presentamos el Detector de Plantas Sedientas (Thirsty Plant Detector): un dispositivo que habla por tus plantas, avisándote exactamente cuándo necesitan riego.
El proyecto usa el Explorer Uno como cerebro, un sensor de humedad de suelo y un zumbador piezoeléctrico que emite un "cri-cri" de grillo cuando la planta está seca. Dato curioso: el elemento piezoeléctrico puede generar sonido y detectar vibraciones (como golpes). El sensor de humedad es simple: dos sondas en la tierra actúan como resistencia variable (0-1023); más agua = mejor conductividad = menor resistencia.
Prototipado en protoboard
Primero montamos todo en protoboard para testear el software antes de diseñar el PCB. Usamos un Arduino Uno y luego transferimos el ATmega328 al PCB propio. Incluimos diagrama de conexiones.
Opción sensor casero: dos varillas metálicas (ej. latón de modelismo), cable y una resistencia de 47 kΩ.
Sube el código de prueba (GitHub). Deberías oír el grillo; al tocar las sondas entre sí, el sonido cesa.
Diseño del PCB
Usamos Patchr con la plantilla Explorer Uno para ahorrar el diseño del Arduino.
- Crea cuenta en Patchr (hay tutorial de 4 min).
- Selecciona la plantilla Explorer Uno, pon nombre al proyecto.
- Amplía la huella del PCB para dar cabida al sensor y zumbador.
- Coloca la resistencia (5V a A0), un orificio pasante para sonda 1 y otro a GND para sonda 2.
- Coloca el zumbador (GND y pin digital 5).
- Verifica conexiones contra el protoboard y exporta para fabricación (recomendado Patchr Manufacturing).
Diseño de la carcasa
Mientras fabrican el PCB, diseña la carcasa. Usa las dimensiones del PCB (pestaña BRD) para asegurar el encaje. Puedes descargar el modelo de Thingiverse. Onshape para diseños avanzados, TinkerCAD para rápidos. Si no tienes impresora 3D, hay servicios online o puedes fabricar una caja con materiales caseros.
¡Montaje!
Llegaron los PCBs: ¡hora de soldar! "Mi lenguaje de programación favorito es el estaño" (Bob Pease). Calienta el soldador, pon música y a disfrutar.
Usa el proyecto Patchr y los esquemas como guía. En mi carcasa el zumbador va arriba, así que suelde cables entre zumbador y PCB. Si lo pones directo en PCB, deja espacio en la fase de diseño.
Que las únicas plantas secas sean tus chips de kale deshidratados. ¡Comparte tus hacks, dudas, gifs o chistes en los comentarios!
Código
Thirst Alert - Código Arduino
/* Thirst Alert Plant Alarm - Patchr.io - Nov 2019 */
#include "Volume.h" // Librería de Connor Nishijima (2016)
int sensorPin = A0;
int sensorValue;
int limit = 300; // Umbral de sequía
Volume vol;
void setup() {
Serial.begin(9600);
vol.begin();
vol.setMasterVolume(1.00); // 0.00 - 1.00
vol.delay(500);
}
void loop() {
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
if (sensorValue > limit) {
Serial.println("*cricket*");
chirp();
vol.delay(random(1000, 30000)); // Intervalo aleatorio 1-30 seg
} else {
vol.noTone();
}
}
void chirp() {
int freq = random(3700, 4000);
float volume = random(10, 101) / 100.00;
int chirpType = 1;
if (chirpType == 1) {
int chirpCount = random(1, 3);
chirp(chirpCount, freq, volume);
}
}
void chirp(byte times, int freq, float volume) {
float fadeOut = 1.00;
while (times > 0) {
// Subida y bajada de volumen para crear el "cri-cri"
float mv = 0;
while (mv < 1.00) { /* ... */ mv += 0.2; }
mv = 1.00;
while (mv > 0.00) { /* ... */ mv -= 0.2; }
vol.noTone();
fadeOut -= 0.75;
times--;
}
}
Partes personalizadas y carcasas
- Carcasa Thirst Alert en Thingiverse
- Archivo Gerber para Patchr Manufacturing:
thirstalertpcb_5kbOAcFilw.zip
Esquemáticos
Esquema del circuito disponible en el proyecto.
Proceso de manufactura
- Reloj de Palabras en Italiano con Arduino Nano, NeoPixel, LCD y RTC
- Ahorra Pines en Arduino: Conecta Teclado 4x3 con Solo 3 Conexiones Analógicas
- Sistema inteligente de riego para plantas con Arduino Nano
- Medidor kWh Sigfox Fiable con Arduino MKR Fox 1200
- Monitor de temperatura con Bluetooth usando Arduino Nano
- Medidor de Capacitancia Autoranging DIY (10 pF–10 µF) – Fácil Construcción con Arduino
- Cerradura por Gestos Sin Contacto: Acceso Seguro con APDS-9960 y Arduino
- Kit Compañero Arduino Nano: Componentes y Herramientas Esenciales para Electrónica DIY
- Kit Adaptador USB MIDI para Arduino Micro / Leonardo: Lista Completa de Componentes
- Circuito de entrada analógica aislada para Arduino
- Test de Precisión de Tiempo de Reacción con Arduino UNO