Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .github/workflows/integrity-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Project Integrity Verification

on:
push:
branches: [ main, master, develop ]
pull_request:
branches: [ main, master, develop ]
workflow_dispatch:

jobs:
verify-integrity:
runs-on: ubuntu-latest

# Restrict permissions to minimum required
permissions:
contents: read
actions: read

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Make verification script executable
run: chmod +x verify_integrity.sh

- name: Run integrity verification
run: ./verify_integrity.sh

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results
path: /tmp/ornidia_test_results.txt
retention-days: 30

- name: Display test summary
if: always()
run: |
echo "## Test Results Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ -f /tmp/ornidia_test_results.txt ]; then
echo '```' >> $GITHUB_STEP_SUMMARY
cat /tmp/ornidia_test_results.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
else
echo "❌ Test results file not found" >> $GITHUB_STEP_SUMMARY
fi
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,16 @@
*.exe
*.out
*.app

# Arduino build artifacts
*.hex
*.elf
*.map
build/
.build/

# Test results and temporary files
/tmp/
*.log
*_test_results.txt
verification_output.txt
196 changes: 196 additions & 0 deletions LIBRARIES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# Ornidia - Dependencias de Librerías

Este archivo lista todas las librerías Arduino requeridas para compilar los sketches del proyecto Ornidia.

## Librerías Requeridas

### Sensores
- **ACS712** - Sensor de corriente Hall Effect
- Versión recomendada: 0.3.0 o superior
- Repositorio: https://github.com/rkoptev/ACS712-arduino

- **DHT sensor library** - Sensor de temperatura y humedad
- Versión recomendada: 1.4.0 o superior
- Repositorio: https://github.com/adafruit/DHT-sensor-library
- Dependencia: Adafruit Unified Sensor

- **BH1750** - Sensor de luz digital I2C
- Versión recomendada: 1.3.0 o superior
- Repositorio: https://github.com/claws/BH1750

- **BMP180I2C** - Sensor de presión y temperatura
- Versión recomendada: Última disponible
- Nota: Verificar compatibilidad con tu placa

### Comunicación (Incluidas con Arduino IDE)
- **Wire** - Librería I2C estándar
- **SPI** - Librería SPI estándar
- **Ethernet** - Conectividad Ethernet para Arduino
- **SD** - Lectura/escritura de tarjeta SD

## Instalación

### Método 1: Arduino IDE (Recomendado)

1. Abrir Arduino IDE
2. Menú: Tools → Manage Libraries... (o Ctrl+Shift+I)
3. Buscar e instalar cada librería:

```
ACS712
DHT sensor library
Adafruit Unified Sensor (dependencia de DHT)
BH1750
```

4. Para BMP180I2C, puede que necesites instalarla manualmente o buscar una alternativa como "Adafruit BMP085 Unified"

### Método 2: arduino-cli

```bash
# Actualizar índice de librerías
arduino-cli lib update-index

# Instalar librerías
arduino-cli lib install "ACS712"
arduino-cli lib install "DHT sensor library"
arduino-cli lib install "Adafruit Unified Sensor"
arduino-cli lib install "BH1750"
```

### Método 3: Instalación Manual

1. Descargar las librerías desde sus repositorios
2. Extraer en la carpeta de librerías de Arduino:
- Windows: `Documents/Arduino/libraries/`
- macOS: `~/Documents/Arduino/libraries/`
- Linux: `~/Arduino/libraries/`
3. Reiniciar Arduino IDE

## Verificación de Instalación

### Opción 1: Arduino IDE
1. Menú: Sketch → Include Library
2. Verificar que todas las librerías aparezcan en la lista

### Opción 2: arduino-cli
```bash
arduino-cli lib list
```

Debe mostrar:
```
ACS712 0.3.x
DHT sensor library 1.4.x
BH1750 1.3.x
Adafruit Unified Sensor 1.1.x
```

## Librerías por Sketch

### solar_monitor.ino
- Ethernet
- SPI
- SD

### fase1.ino
- ACS712
- Wire

### CD4058.ino
- ACS712
- Wire

### 02_DHT11ino.ino
- ACS712
- DHT
- Wire

### 03_BH1750FVI.ino
- BH1750
- DHT
- Wire

### 04_BMP180.ino
- BH1750
- BMP180I2C
- DHT
- Wire

## Plataformas Soportadas

### ESP8266
El proyecto está diseñado principalmente para ESP8266. Asegúrate de tener instalado el soporte de placa:

```bash
# Añadir URL de paquetes ESP8266 en Arduino IDE:
# File → Preferences → Additional Board Manager URLs:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
```

Luego instalar:
- Tools → Board → Boards Manager → buscar "ESP8266" e instalar

### Arduino Mega
Algunos sketches (carpeta Arduino/Mega) están diseñados para Arduino Mega 2560:
- Ethernet
- SPI
- SD

## Problemas Comunes

### Error: "ACS712.h: No such file or directory"
**Solución**: Instalar librería ACS712 desde el Library Manager

### Error: "DHT.h: No such file or directory"
**Solución**: Instalar "DHT sensor library" y "Adafruit Unified Sensor"

### Error: "Wire.h: No such file or directory"
**Solución**: Wire está incluida con Arduino IDE. Reinstalar Arduino IDE si falta.

### Conflictos de Versión
**Solución**: Usar las versiones recomendadas o actualizar todas las librerías a sus últimas versiones estables.

## Compatibilidad de Versiones

| Librería | Versión Mínima | Versión Probada | Notas |
|----------|---------------|-----------------|-------|
| ACS712 | 0.2.0 | 0.3.0 | Funciona con versiones antiguas |
| DHT sensor library | 1.3.0 | 1.4.4 | Requiere Unified Sensor |
| BH1750 | 1.1.0 | 1.3.0 | Estable |
| Wire | - | - | Incluida con IDE |
| SPI | - | - | Incluida con IDE |
| Ethernet | 2.0.0 | 2.0.2 | Para Arduino Mega |
| SD | 1.2.0 | 1.2.4 | Para Arduino Mega |

## Actualización de Librerías

Para actualizar todas las librerías:

### Arduino IDE
1. Tools → Manage Libraries
2. Filtrar por "UPDATABLE"
3. Actualizar individualmente o todas a la vez

### arduino-cli
```bash
arduino-cli lib upgrade
```

## Licencias

Cada librería tiene su propia licencia. Consultar los repositorios individuales para detalles:
- ACS712: MIT License
- DHT sensor library: MIT License
- BH1750: MIT License
- Ethernet, SPI, SD, Wire: LGPL

## Recursos Adicionales

- [Arduino Library Guide](https://www.arduino.cc/en/Guide/Libraries)
- [ESP8266 Arduino Core](https://github.com/esp8266/Arduino)
- [arduino-cli Documentation](https://arduino.github.io/arduino-cli/)

---

**Última actualización**: 2025-10-26
63 changes: 63 additions & 0 deletions QUICKSTART.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Ornidia - Guía Rápida de Pruebas

## Ejecutar Verificación de Integridad

```bash
# Hacer el script ejecutable (solo la primera vez)
chmod +x verify_integrity.sh

# Ejecutar las pruebas
./verify_integrity.sh
```

## Salida Esperada

Si todo está correcto:
```
✓ ALL TESTS PASSED! ✓
Project integrity verified successfully!
```

## Pruebas Incluidas

- ✓ 76 pruebas automatizadas
- ✓ Validación de estructura del proyecto
- ✓ Verificación de sintaxis de sketches
- ✓ Análisis de dependencias
- ✓ Validación de archivos web
- ✓ Comprobación de documentación
- ✓ Integridad del repositorio Git

## Ver Resultados Detallados

```bash
cat /tmp/ornidia_test_results.txt
```

## Documentación Completa

- `TESTING.md` - Guía completa de pruebas
- `LIBRARIES.md` - Dependencias y librerías requeridas
- `README.md` - Documentación del proyecto

## Requisitos del Sistema

- Bash shell (Linux/macOS/Git Bash en Windows)
- Git
- Permisos de ejecución en el directorio

## Solución Rápida de Problemas

### Script no ejecuta
```bash
chmod +x verify_integrity.sh
```

### Tests fallan
1. Ver el reporte: `cat /tmp/ornidia_test_results.txt`
2. Revisar qué test falló
3. Consultar `TESTING.md` para soluciones

---

Para más información, consulta `TESTING.md`
44 changes: 43 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,46 @@ S1 (D6) S0 (D5) Canal Activo Sensor
0 1 X1 ACS712 Batería
1 0 X2 ACS712 Carga
1 1 X3 Voltaje del Panel
✅ La ESP8266 cambia S0 y S1 para seleccionar qué sensor leer en A0.
✅ La ESP8266 cambia S0 y S1 para seleccionar qué sensor leer en A0.

---

## 🧪 Verificación de Integridad del Proyecto

Este proyecto incluye un sistema automatizado de verificación de integridad que valida:
- ✅ Estructura del proyecto
- ✅ Sintaxis de todos los sketches Arduino
- ✅ Dependencias de librerías
- ✅ Archivos de interfaz web
- ✅ Documentación
- ✅ Integridad del repositorio Git

### Ejecutar Verificación

```bash
# Hacer el script ejecutable (solo primera vez)
chmod +x verify_integrity.sh

# Ejecutar verificación
./verify_integrity.sh
```

### Resultado Esperado
```
✓ ALL TESTS PASSED! ✓
Total Tests: 76
Passed: 76
Failed: 0
```

### Documentación de Pruebas

- 📘 **[TESTING.md](TESTING.md)** - Guía completa de pruebas y verificación
- 📗 **[LIBRARIES.md](LIBRARIES.md)** - Dependencias y librerías requeridas
- 📙 **[QUICKSTART.md](QUICKSTART.md)** - Guía rápida de inicio

### CI/CD

El proyecto incluye GitHub Actions que ejecutan automáticamente la verificación de integridad en cada push o pull request.

Ver: `.github/workflows/integrity-check.yml`
Loading