¿Alguna vez compraste una planta que en la etiqueta decía "media sombra" y terminó quemada por el sol de la tarde, o pálida por falta de luz? El problema casi siempre es el mismo: elegimos el lugar del jardín "a ojo", sin saber cuánta luz recibe realmente ese rincón a lo largo del día.

En este proyecto vas a armar un registrador de luz solar alimentado por batería que mide la intensidad lumínica (en lux) en cualquier punto de tu patio y guarda esos datos en la nube durante días o semanas. Al final vas a poder mirar un gráfico continuo de la luz de tu jardín y decidir, con datos reales, si ese rincón es para tomates que aman el sol o para plantas de sombra.

Lo mejor: no necesitas soldar nada y, gracias al modo de bajo consumo (deep sleep), una batería LiPo puede durar semanas midiendo al aire libre.

El concepto: medir en vez de adivinar

La idea central es simple. Un microcontrolador con WiFi se despierta cada cierto intervalo (por ejemplo, cada 15 minutos), lee el nivel de luz del sensor, envía ese valor a un panel en la nube y vuelve a dormir. Repetido durante varios días, obtienes un mapa horario de cuánto sol recibe ese lugar exacto.

A diferencia de un sensor de luz barato que solo te da "un número" sin unidad, el VEML7700 entrega una medición calibrada en lux, la unidad estándar de iluminancia. Eso te permite comparar rincones distintos con una vara objetiva, no con impresiones.

Sensor de luz VEML7700 con conector STEMMA QT

El hardware

El corazón del proyecto es una placa ESP32 con WiFi integrado. El tutorial original usa una Adafruit ESP32-S2 Feather, pero cualquier ESP32 con salida I2C sirve; lo importante es que tenga conector para batería LiPo y un puerto I2C accesible.

Placa ESP32-S2 Feather con puerto I2C integrado

El sensor VEML7700 se comunica por I2C, así que solo necesita 4 líneas: alimentación (3.3V), tierra (GND) y las dos líneas de datos del bus I2C (SDA y SCL). Si tu placa y tu sensor traen conector STEMMA QT / Qwiic, la conexión es literalmente enchufar un cable y listo: sin protoboard, sin estaño.

Conectores STEMMA QT / Qwiic para conexión sin soldadura

Para alimentarlo afuera usamos una batería LiPo de 3.7V. Como el equipo pasa casi todo el tiempo durmiendo, no necesitas una batería enorme: una de capacidad media rinde perfectamente para una prueba de varios días.

Un truco práctico del proyecto original que vale la pena copiar: en vez de imprimir una carcasa en 3D o comprar una caja estanca cara, metes todo dentro de un envase plástico transparente de cocina (tipo Rubbermaid) con tapa. El plástico transparente deja pasar la luz hacia el sensor y protege la electrónica de la humedad y el rocío.

Por qué el deep sleep es clave

Este es el detalle técnico que hace viable todo el proyecto, y que el tutorial original menciona pero no profundiza. Un ESP32 con la radio WiFi encendida de forma continua consume del orden de 80 a 150 mA. Con una batería LiPo típica, eso se agota en pocas horas.

El modo deep sleep apaga casi todo el chip entre lecturas: el consumo cae a unas pocas decenas de microamperios (µA), es decir, miles de veces menos. La placa solo "revive" unos segundos para leer el sensor, conectarse al WiFi, enviar el dato y volver a dormir. Ese ciclo de trabajo (duty cycle) bajísimo es lo que transforma "unas horas" de autonomía en "varias semanas".

En la práctica, la lógica del firmware es:

  1. Despertar por temporizador.
  2. Inicializar el bus I2C y leer el valor de lux del VEML7700.
  3. Conectarse al WiFi y publicar el dato en el panel en la nube.
  4. Programar la próxima alarma y entrar en deep sleep.

Enviar los datos a la nube

El tutorial original publica las lecturas en Adafruit IO, un servicio en la nube gratuito para proyectos pequeños que te muestra los valores en un gráfico en tiempo real. Creas un "feed" para la luz, obtienes tus credenciales (usuario y clave de API) y el ESP32 las usa para enviar cada medición.

Una vez que tengas varios días de datos, Adafruit IO te deja exportar todo el historial como un archivo CSV. Con ese CSV en mano puedes hacer análisis por tu cuenta, o incluso pasárselo a un asistente de IA junto con tu zona climática para que te sugiera qué especies crecerían bien en ese microclima puntual.

Placas ESP32 y sensor VEML7700 montadas juntas

Variantes y mejoras

Estas son extensiones que no están en el tutorial original y que puedes agregar para llevar el proyecto más lejos:

  • Panel MQTT 100% local (sin depender de la nube): en vez de Adafruit IO, levanta un broker MQTT como Mosquitto en una Raspberry Pi o en tu PC y publica las lecturas ahí. Con Node RED o Home Assistant armas tu propio dashboard de luz que corre en tu red, sin cuentas externas ni límites de servicio. El ESP32 solo cambia la dirección del servidor al que publica.
  • Suma temperatura y humedad ambiente: agregando un sensor BME280 (también I2C, se encadena al mismo bus STEMMA QT) conviertes el registrador de luz en una pequeña estación meteorológica de jardín, útil para relacionar el sol con la humedad del suelo.
  • Panel solar en vez de recargar a mano: conectando una pequeña celda solar con módulo de carga LiPo, el equipo se recarga solo de día y puede quedar registrando de forma indefinida.

Personalización para Chile

Todos los componentes de este proyecto son piezas estándar de electrónica maker que puedes conseguir en Chile en MechatronicStore. Los equivalentes locales a buscar en el catálogo son:

  • Placa ESP32 con I2C (equivalente a la ESP32-S2 Feather del original): cualquier ESP32 DevKit con salida SDA/SCL cumple la misma función.
  • Sensor de luz VEML7700 (I2C): el mismo sensor calibrado en lux del tutorial.
  • Batería LiPo 3.7V: elige la capacidad según cuántos días quieras registrar; por el deep sleep no necesitas la más grande.
  • Cable STEMMA QT / Qwiic (JST SH 4 pines): para la conexión sin soldadura entre placa y sensor. Si tu placa o sensor no traen este conector, sirve igual un juego de jumpers hembra hembra al bus I2C.

El envase transparente lo consigues en cualquier tienda de cocina, y la zona climática (equivalente chileno a las "zonas de rusticidad USDA") la puedes estimar según tu región para interpretar los datos de luz.

Nota: en esta edición los enlaces directos a productos se completan automáticamente en el paso de enriquecimiento del blog; arriba quedan listados los componentes exactos que necesitas del catálogo.

Recursos

Versión chilena con componentes en stock local en MechatronicStore. Proyecto inspirado en el original de Adafruit y re angulado para ESP32 genérico y registro de datos local vía MQTT.