Una aplicación web que utiliza la cámara del dispositivo para identificar plantas usando la API de Plant.id.
- Captura de fotos: Utiliza la cámara del dispositivo para tomar fotos de plantas
- Identificación automática: Integración con Plant.id API para identificar especies
- Información detallada: Muestra nombre común, científico, familia, género y descripción
- Efecto Pokémon: Animación especial cuando decides "plantar" una planta
- Diseño responsivo: Funciona en dispositivos móviles y desktop
- Paleta de colores natural: Verde, amarillo semilla, marrón tierra y beige
- Verde natural: #388E3C
- Verde claro: #81C784
- Amarillo semilla: #FBC02D
- Marrón claro tierra: #A1887F
- Beige suave: #FFF8E1
- API Key de Plant.id: Necesitas registrarte en Plant.id y obtener una API key
- Navegador moderno: Con soporte para getUserMedia (cámara)
- Conexión a internet: Para acceder a la API de Plant.id
- Ve a Plant.id
- Regístrate para obtener una cuenta
- Obtén tu API key desde el panel de administración
IMPORTANTE: El archivo config.js está protegido por .gitignore para mantener tu API key segura.
-
Copia el archivo de ejemplo:
cp config.example.js config.js
-
Edita
config.jsy reemplazaTU_API_KEY_AQUIcon tu API key real:const CONFIG = { PLANT_ID_API_KEY: 'tu_api_key_real_aqui', // ... resto de la configuración };
Simplemente abre index.html en tu navegador web.
- Permitir acceso a la cámara: El navegador te pedirá permiso para usar la cámara
- Posicionar la planta: Coloca la planta dentro del marco circular
- Capturar foto: Haz clic en "📸 Capturar Foto"
- Esperar identificación: La app identificará la planta automáticamente
- Ver resultados: Revisa la información de la planta identificada
- Plantar: Si quieres agregar la planta a tu colección, haz clic en "🌱 ¡Plantar esta planta!"
- Efecto Pokémon: Disfruta de la animación especial y ponle un nombre a tu planta
IMPORTANTE: Por seguridad, la API key está protegida:
- Archivo protegido:
config.jsestá en.gitignore - Archivo de ejemplo:
config.example.jsse puede subir a Git sin problemas - No exponer claves: Nunca subas tu API key real a repositorios públicos
- Backend Proxy: Crea un backend que maneje las llamadas a la API
- Variables de entorno: Usa variables de entorno para la API key
- Autenticación: Implementa autenticación de usuarios
- Acceso a cámara trasera en dispositivos móviles
- Marco de enfoque visual
- Captura de alta calidad
- Integración con Plant.id API
- Información taxonómica completa
- Nivel de confianza de la identificación
- Descripción de la planta
- Diseño responsivo
- Animaciones suaves
- Efectos visuales atractivos
- Modal de "captura Pokémon"
- Asegúrate de permitir el acceso a la cámara
- Verifica que tu navegador soporte getUserMedia
- Prueba en HTTPS (algunos navegadores requieren conexión segura)
- Verifica que tu API key sea correcta en
config.js - Asegúrate de tener créditos disponibles en Plant.id
- Revisa la consola del navegador para errores específicos
- Toma fotos con buena iluminación
- Enfoca bien la planta
- Incluye características distintivas (hojas, flores, etc.)
Para probar la aplicación sin API key, puedes usar el modo de simulación:
- Abre
script.js - Descomenta la línea:
const identifyPlant = identifyPlantSimulated; - Comenta la función original:
// async function identifyPlant(imageBlob)
camara/
├── index.html # Página principal
├── styles.css # Estilos CSS
├── script.js # Lógica JavaScript
├── config.js # Configuración de la API (PROTEGIDO)
├── config.example.js # Archivo de ejemplo para configuración
├── .gitignore # Archivos a ignorar en Git
└── README.md # Este archivo
- Clona o descarga el proyecto
- Copia
config.example.jsaconfig.js - Edita
config.jscon tu API key - Abre
index.htmlen tu navegador
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature
- Commit tus cambios
- Push a la rama
- Abre un Pull Request
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
- Plant.id por la API de identificación de plantas
- Comunidad de desarrolladores web por las inspiraciones de diseño
Se agregó un backend simple con Node/Express y SQLite para manejar registro y login.
- Node.js 18+
cd server
npm install
npm run startEl backend corre en http://localhost:3001.
- POST
/api/register{ name, email, password } - POST
/api/login{ email, password } - GET
/api/mecon headerAuthorization: Bearer <token>
- Abrir
index.html(usa eliniciar-servidor.sho cualquier servidor estático) - Completar registro o login
- Al éxito redirige a
Plantas.htmly guarda el token enlocalStorage
- Borrar
localStoragekeys:plantaia_tokenyplantaia_user.