# 🚀 Instalación en XAMPP (Local)

Guía rápida para probar el sistema localmente en XAMPP antes de subirlo a producción.

## 📋 Requisitos Previos

- XAMPP instalado y funcionando
- Apache y MySQL iniciados en el Panel de Control de XAMPP

## 🔧 Pasos de Instalación

### 1. Copiar archivos

Copia toda la carpeta `buque` a:
```
C:\xampp\htdocs\buque
```

### 2. Crear la base de datos

1. Abre phpMyAdmin: `http://localhost/phpmyadmin`
2. Crea una nueva base de datos llamada `buque_telemetria`
3. Selecciona la base de datos
4. Ve a la pestaña "Importar"
5. Selecciona el archivo `database.sql`
6. Haz clic en "Continuar"

**O ejecuta manualmente el SQL:**
```sql
CREATE DATABASE IF NOT EXISTS buque_telemetria;
USE buque_telemetria;
-- Copia y pega el contenido de database.sql
```

### 3. Configurar (Opcional)

El archivo `config.php` ya está configurado automáticamente para XAMPP:
- **Usuario:** `root`
- **Contraseña:** (vacía)
- **Host:** `localhost`
- **Base de datos:** `buque_telemetria`

Si tu XAMPP tiene otra configuración, edita `config.php`.

### 4. Probar el sistema

#### Opción A: Usar la página de prueba web

1. Abre en tu navegador:
   ```
   http://localhost/buque/test_envio.php
   ```

2. Completa el formulario y haz clic en "Enviar Datos"
3. O usa "Auto-Envío" para enviar datos cada 5 segundos automáticamente

#### Opción B: Usar el script PHP desde línea de comandos

1. Abre PowerShell o CMD
2. Navega a la carpeta:
   ```cmd
   cd C:\xampp\htdocs\buque
   ```
3. Ejecuta:
   ```cmd
   php test_curl.php
   ```

#### Opción C: Usar curl desde PowerShell

```powershell
curl -X POST "http://localhost/buque/api/buque.php" `
     -H "Content-Type: text/plain" `
     -d "23.5,60,1012,BUQUE2024_SECRET_KEY_XYZ789"
```

#### Opción D: Usar el archivo .bat

1. Edita `example_request.bat` y verifica que la URL sea:
   ```
   http://localhost/buque/api/buque.php
   ```
2. Ejecuta `example_request.bat`

### 5. Ver el Dashboard

Abre en tu navegador:
```
http://localhost/buque/dashboard.php
```

Deberías ver:
- Los valores actuales de temperatura, humedad y presión
- Un gráfico histórico (si ya enviaste datos)
- Auto-actualización cada 5 segundos

## 🧪 Archivos de Prueba

### `datos_prueba.txt`
Contiene 10 líneas de datos de ejemplo en formato CSV. Puedes usar este archivo para probar el envío masivo.

### `test_envio.php`
Página web interactiva para probar el envío de datos con formulario y auto-envío.

### `test_curl.php`
Script PHP que puedes ejecutar desde línea de comandos para enviar múltiples mediciones de prueba.

## ✅ Verificación

Para verificar que todo funciona:

1. **Base de datos:**
   - Abre phpMyAdmin
   - Selecciona `buque_telemetria`
   - Ve a la tabla `mediciones`
   - Deberías ver los registros insertados

2. **API:**
   - Envía datos usando cualquiera de los métodos de prueba
   - Deberías recibir una respuesta JSON con `"success": true`

3. **Dashboard:**
   - Abre `dashboard.php`
   - Deberías ver los valores actualizados

## 🔍 Solución de Problemas

### Error: "Error de conexión a BD"
- Verifica que MySQL esté iniciado en XAMPP
- Verifica que la base de datos `buque_telemetria` exista
- Si tu XAMPP tiene contraseña en root, edita `config.php`

### Error: "API KEY inválida"
- Verifica que uses la misma API KEY que está en `config.php`
- Por defecto: `BUQUE2024_SECRET_KEY_XYZ789`

### Dashboard no muestra datos
- Asegúrate de haber enviado al menos una medición
- Abre la consola del navegador (F12) para ver errores
- Verifica que `api/dashboard_data.php` sea accesible

### No puedo acceder a las páginas
- Verifica que Apache esté iniciado en XAMPP
- Verifica la URL: debe ser `http://localhost/buque/...`
- Verifica que los archivos estén en `C:\xampp\htdocs\buque\`

## 📝 Notas

- El sistema detecta automáticamente si está en localhost o producción
- En localhost, muestra errores para facilitar el debugging
- En producción, oculta errores por seguridad
- La API KEY es la misma en ambos entornos por defecto (cámbiala en producción)

## 🚀 Siguiente Paso

Una vez probado localmente, sube los archivos a tu hosting `www.devmastering.com` y actualiza las credenciales de base de datos en `config.php` para producción.

