
Las Misiones del Lince 11: Radiación UV y Protección Solar Urbana en Estepona — AEMET, CAMS, Wokwi y el Semáforo de tu Piel
Ciencia Ciudadana MonteSTEAM · Proyecto AIDARAC
«El Lince de la Noche no tiene superpoderes. Tiene datos.»
Estepona vive del sol casi trescientos días al año, y eso que a los turistas les entusiasma es, para la piel, un riesgo acumulativo silencioso. Esta misión pone a los alumnos a construir su propio sensor de radiación ultravioleta, lo enfrenta a los mismos datos que usa AEMET para avisar a la población, y convierte un número abstracto —el índice UV— en algo que se siente literalmente en la piel: cuántos minutos tardas tú, con tu tono de piel, en quemarte hoy en el patio.
1. Introducción científica
El índice UV (UVI). Es una escala estandarizada por la OMS que mide la intensidad de la radiación ultravioleta capaz de producir eritema (quemadura solar) en la piel humana. Va de 0 (noche) a valores superiores a 11 (“extremo”, habitual en el sur de España en pleno verano). No es una medida directa de energía, sino una medida ponderada por el “espectro de acción eritémico”: pesa mucho más la radiación UVB (280-315 nm) que la UVA, porque es la que más daña el ADN de las células de la piel.
De qué depende. Cuatro factores principales, todos relevantes para explicar en clase: la altura del sol sobre el horizonte (por eso el máximo diario es siempre cerca del mediodía solar y el máximo anual cerca del solsticio de verano), el espesor de la capa de ozono (que absorbe UVB), la nubosidad (las nubes reducen el UVI, pero no lo anulan — con cielo parcialmente cubierto puede seguir siendo alto) y el albedo de la superficie (la arena y el agua reflejan UV y aumentan la exposición real, algo especialmente relevante en la playa de Estepona).
Por qué es salud pública en Andalucía. La exposición a radiación ultravioleta es la principal causa evitable de cáncer de piel. En España la incidencia de melanoma se ha más que duplicado en la última década —de 3.200 casos en 2010 a 6.179 en 2020 según la Sociedad Española de Oncología Médica— y se estima que una de cada seis personas desarrollará un cáncer de piel a lo largo de su vida. El patrón de riesgo más relevante para un instituto no es la exposición laboral crónica, sino la exposición aguda e intermitente y recreativa —los baños de sol y el deporte al aire libre— que se asocia a un mayor riesgo de melanoma, y las quemaduras solares son el principal factor de riesgo de cáncer de piel, especialmente cuando ocurren en la infancia o la adolescencia. Dicho de otra forma: lo que le pase a la piel de un adolescente en el patio del instituto en Estepona pesa en su riesgo dentro de treinta años.
2. Cómo se sacan los datos y los mapas
A) AEMET OpenData — la predicción oficial para Estepona
Paso 1 — Obtener API key. Entra en opendata.aemet.es/centrodedescargas/altaUsuario, regístrate con tu correo institucional (gratis, sin coste) y recibirás una clave (apikey) por email.
Paso 2 — Localizar el endpoint de predicción municipal. El endpoint es:https://opendata.aemet.es/opendata/api/prediccion/especifica/municipio/diaria/{CODIGOMUNICIPIO}
donde {CODIGOMUNICIPIO} es el código INE de Estepona (lo buscáis en el propio portal de AEMET, en la página de predicción por municipios, buscando “Estepona” en el buscador).
Paso 3 — Leer el campo del índice UV. La respuesta de la API es JSON y dentro del bloque prediccion > dia aparece el campo uvMax, el valor máximo previsto del índice ultravioleta para ese día. Cada nivel tiene además un icono asociado: moderado (3 a 5), alto (6 a 7), muy alto (8 a 10) y extremadamente alto (mayor que 11).
Paso 4 — Automatizar la lectura. Con un script sencillo (Python o el propio ESP32 con WiFi) se puede pedir ese dato una vez al día y guardarlo, para compararlo luego con lo que mide vuestro sensor real en el patio.
Este código da una hoja de cálculo con las lecturas de los últimos 365 días:
from datetime import datetime, timedelta
import json
import urllib.request
# Coordenadas geográficas de Estepona
LATITUD = 36.4261
LONGITUD = -5.1459
# Rango de fechas: Últimos 365 días (dejando 2 días de margen por el procesado de datos satelitales)
fecha_fin_dt = datetime.now() - timedelta(days=2)
fecha_inicio_dt = fecha_fin_dt - timedelta(days=365)
fecha_inicio = fecha_inicio_dt.strftime("%Y-%m-%d")
fecha_fin = fecha_fin_dt.strftime("%Y-%m-%d")
# Endpoint de radiación y calidad del aire de Copernicus/Open-Meteo
url = (
f"https://air-quality-api.open-meteo.com/v1/air-quality?"
f"latitude={LATITUD}&longitude={LONGITUD}&"
f"start_date={fecha_inicio}&end_date={fecha_fin}&"
f"hourly=uv_index&timezone=Europe%2FMadrid"
)
print(
f"Consultando histórico UV para Estepona ({fecha_inicio} a {fecha_fin})..."
)
try:
req = urllib.request.Request(
url, headers={"User-Agent": "Python-UV-Fetcher/1.0"}
)
with urllib.request.urlopen(req) as response:
data = json.loads(response.read().decode("utf-8"))
horas = data["hourly"]["time"]
valores_uv = data["hourly"]["uv_index"]
# Agrupar las mediciones horarias por fecha para obtener el UV Máximo diario
uv_diario = {}
for hora_str, uv_val in zip(horas, valores_uv):
fecha = hora_str.split("T")[0]
if uv_val is not None:
if fecha not in uv_diario or uv_val > uv_diario[fecha]:
uv_diario[fecha] = uv_val
# Guardar los resultados en un archivo CSV
nombre_archivo = "estepona_uv_ultimo_ano.csv"
with open(nombre_archivo, "w", encoding="utf-8") as f:
f.write("Fecha,UV_Maximo\n")
for fecha, uv_max in sorted(uv_diario.items()):
f.write(f"{fecha},{uv_max}\n")
print(
f"\n Proceso completado: Se han obtenido {len(uv_diario)} días de registros."
)
print(f" Archivo guardado como: '{nombre_archivo}'\n")
# Muestra los primeros 10 días en pantalla
print("Muestra de los primeros datos obtenida:")
print("Fecha | UV Máximo")
print("-" * 25)
for fecha in sorted(uv_diario.keys())[:10]:
print(f"{fecha} | {uv_diario[fecha]}")
except Exception as e:
print(f"Error al obtener los datos: {e}")
Índice UV máximo diario en Estepona (sep 2025 – sep 2026)

La gráfica confirma la curva estacional que predijimos con el modelo teórico, pero con el “ruido” real de la atmósfera de Estepona encima.
La tendencia de fondo (la física, tal cual): mínimo claro en torno a la Navidad-enero (valores por debajo de 1, algún día incluso 0,25-0,45), subida progresiva desde febrero-marzo, máximo sostenido entre finales de junio y mediados de julio (varios días por encima de 10, con un pico de 10,65 el 26/06), y descenso simétrico hacia el otoño. Exactamente la forma de campana que predice la altura solar y que vuestro modelo teórico ya anticipaba.
B) CAMS — el mapa coloreado de radiación UV en tiempo casi real
A diferencia del NDMI de la Misión 10, aquí no existe un archivo histórico navegable por fecha como el Copernicus Browser: el visor UV de CAMS es de predicción (hasta 5 días vista), no de archivo. Por eso el ejercicio no es “buscar una fecha pasada”, sino capturar el mapa en vivo varias veces a lo largo del curso.
Paso 1. Entra en el visor del European Climate and Health Observatory (health.hub.copernicus.eu, sección UV Index) o en atmosphere.copernicus.eu, apartado de productos visuales de radiación UV.
Paso 2. Localiza la Península Ibérica y haz zoom sobre el sur de España / Costa del Sol.
Paso 3. Captura el mapa una vez por trimestre (septiembre/octubre, diciembre/enero, marzo/abril, y si el curso llega, mayo/junio). El objetivo es reunir 3-4 capturas reales, separadas por meses, para ver con los propios ojos cómo el color de Andalucía pasa de amarillo/verde en invierno a naranja/rojo en primavera-verano. El propio visor explica que el mapa presenta el valor máximo diario de UVI calculado a partir de la previsión horaria de CAMS, y que el UVI de cielo despejado es más alto en las cuatro horas centradas en el mediodía solar, mientras que el UVI de cielo total varía a lo largo del día según la nubosidad.
(Aquí van vuestras 3-4 capturas trimestrales del visor CAMS, recortadas sobre el sur de España)
OPCIÓN B: TEMIS
Accede directamente al portal del archivo histórico de la ESA y el Real Instituto Meteorológico de los Países Bajos (KNMI): TEMIS — Clear-sky UV Index Forecast and Archive.
Minitutorial: Extracción de mapas UV históricos (Cobertura Global)
- Acceso al visor: Abre la página de TEMIS UV Archive.
- Seleccionar la cobertura geográfica (Mundo entero): En la parte superior, localiza el menú desplegable “Region” y selecciona la escala requerida:
World: Genera la representación mapa mundi del índice UV sobre todo el planeta.Europe: Ofrece una vista ampliada sobre la Península Ibérica y Europa.
- Elegir la fecha histórica: En los selectores de fecha (Date), introduce la fecha deseada:
- Year (Año): Disponible día a día desde julio de 2002 hasta el presente.
- Month (Mes) y Day (Día).
- Generar la imagen: Haz clic en “Show map” o “Go”. El sistema renderizará el mapa con la escala internacional de colores de la OMS (verde/amarillo para valores bajos, naranja/rojo para altos, y morado/blanco para extremos de 11+).
- Descargar el mapa: Haz clic derecho sobre la imagen generada en pantalla y selecciona “Guardar imagen como…” para descargar el archivo de imagen en tu equipo.
Nota: La cobertura mundial permite comparar en un mismo mapa cómo varía la radiación UV de forma simultánea entre el hemisferio norte y el hemisferio sur en cualquier época del año desde 2002.
3. Montaje Wokwi (potenciómetro o LDR en vez del GUVA-S12SD)
ESP32 + potenciómetro simulando la tensión de salida del sensor UV, escalado a índice 0-12, con 4 LEDs de semáforo (verde/amarillo/naranja/rojo).
// Wokwi: ESP32 + Potenciómetro (simula el sensor GUVA-S12SD)
const int PIN_SENSOR = 34;
const int LED_VERDE = 25; // UVI bajo/moderado (0-5)
const int LED_AMARILLO= 26; // UVI alto (6-7)
const int LED_NARANJA = 27; // UVI muy alto (8-10)
const int LED_ROJO = 14; // UVI extremo (11+)
void setup() {
Serial.begin(115200);
pinMode(LED_VERDE, OUTPUT);
pinMode(LED_AMARILLO, OUTPUT);
pinMode(LED_NARANJA, OUTPUT);
pinMode(LED_ROJO, OUTPUT);
}
void loop() {
int lectura = analogRead(PIN_SENSOR); // 0-4095
float uvi = map(lectura, 0, 4095, 0, 120) / 10.0; // 0.0 - 12.0
digitalWrite(LED_VERDE, uvi <= 5);
digitalWrite(LED_AMARILLO, uvi > 5 && uvi <= 7);
digitalWrite(LED_NARANJA, uvi > 7 && uvi <= 10);
digitalWrite(LED_ROJO, uvi > 10);
Serial.print("Indice UV: ");
Serial.println(uvi, 1);
delay(2000);
}
(Si no tenéis potenciómetro a mano, un fotoresistor (LDR) en divisor de tensión funciona igual de bien para la simulación: más luz → más tensión → UVI más alto. No mide UV real —los LDR son sensibles a luz visible—, pero sirve perfectamente para probar la lógica del semáforo antes de montar el sensor real.)

4. Material físico real (sensor GUVA-S12SD)
Tenéis sensor real, así que aquí sí hay calibración de verdad. El GUVA-S12SD da una salida analógica de tensión proporcional a la irradiancia UV (UVA+UVB), típicamente entre 0 y ~1 V en condiciones normales de luz solar.
// Sensor UV real GUVA-S12SD + ESP32
const int PIN_SENSOR = 34;
const float VREF = 3.3; // tensión de referencia del ADC del ESP32
const int RESOLUCION = 4095; // ADC de 12 bits
void setup() {
Serial.begin(115200);
}
void loop() {
int lectura = analogRead(PIN_SENSOR);
float voltios = (lectura / (float)RESOLUCION) * VREF;
// Calibración provisional: sustituid por vuestra recta de calibración
// comparando con el UVI oficial de AEMET el mismo día y hora.
// Fórmula orientativa del fabricante (a ajustar con vuestros datos):
float uvi = voltios / 0.1; // ← AJUSTAD esta pendiente con AEMET real
Serial.print("Voltios: ");
Serial.print(voltios, 3);
Serial.print(" | UVI estimado: ");
Serial.println(uvi, 1);
delay(3000);
}
Calibración obligatoria: medid con el sensor a mediodía solar, anotad la tensión, y comparadla con el uvMax que dé AEMET para Estepona esa misma hora. Ese par de valores (voltios, UVI oficial) es el que os da la pendiente real de vuestra recta — cada sensor GUVA-S12SD varía ligeramente de fábrica, igual que os pasó con el sensor de humedad de la Misión 10.
5. Simulación y ciencia de datos: la curva UV a lo largo del año
Aquí no usamos un mapa de zonas — al aire libre, el UVI es prácticamente el mismo en cualquier punto de Estepona a la misma hora. Lo que de verdad cambia, y lo que vais a poder representar gráficamente, es cómo evoluciona a lo largo del curso.
Tarea para el alumnado: con la tabla de abajo (fecha, UVI en días despejados), dibujar a mano o con hoja de cálculo una gráfica de dispersión UVI vs. fecha, y comentar la forma de la curva: ¿por qué el mínimo no coincide con el 1 de enero sino con el solsticio de invierno (21 de diciembre)? ¿Por qué el máximo tampoco coincide con el equinoccio de verano sino con el solsticio (21 de junio)?
⚠️ Datos simulados para practicar el análisis antes de medir de verdad — construidos a partir de un modelo de cielo despejado ajustado a los extremos reales medidos por AEMET en la estación de Málaga (mínimo mensual ≈3,1-3,7 en diciembre-enero; máximo ≈11-13 en torno al solsticio de verano). El alumnado sustituirá progresivamente estos valores por lecturas reales de AEMET conforme avance el curso.
Fecha UVI
05/09/2026 8,7
12/09/2026 8,1
19/09/2026 7,6
26/09/2026 7,1
05/10/2026 6,4
12/10/2026 5,8
19/10/2026 5,4
26/10/2026 4,9
05/11/2026 4,3
12/11/2026 4,0
19/11/2026 3,6
26/11/2026 3,4
05/12/2026 3,2
12/12/2026 3,1
19/12/2026 3,0
26/12/2026 3,0
05/01/2027 3,2
12/01/2027 3,3
19/01/2027 3,6
26/01/2027 3,9
05/02/2027 4,4
12/02/2027 4,8
19/02/2027 5,2
26/02/2027 5,7
05/03/2027 6,2
12/03/2027 6,8
19/03/2027 7,3
26/03/2027 7,8
05/04/2027 8,6
12/04/2027 9,1
19/04/2027 9,6
26/04/2027 10,1
05/05/2027 10,6
12/05/2027 11,0
19/05/2027 11,3
26/05/2027 11,6
05/06/2027 11,8
12/06/2027 12,0
19/06/2027 12,0
26/06/2027 12,0
05/07/2027 11,9
12/07/2027 11,7
19/07/2027 11,5
26/07/2027 11,2
05/08/2027 10,7
12/08/2027 10,3
19/08/2027 9,9
26/08/2027 9,4
Lo que debería salir en la gráfica del alumnado: una curva suave, casi simétrica, con mínimo alrededor del 21 de diciembre y máximo alrededor del 21 de junio — no una recta ni un patrón irregular. Si al superponer los datos reales del sensor la curva medida se queda sistemáticamente por debajo de esta teórica, es la nubosidad y la contaminación atmosférica actuando (el propio dato de AEMET/CAMS distingue exactamente entre UVI de “cielo despejado” y UVI de “cielo total”, así que es el mismo concepto que estáis comprobando con el sensor real).

El sistema de doble alerta (esto va en el dashboard HTML/Tailwind/Chart.js)
Capa 1 — Semáforo de exposición, disparado directamente por la lectura:
| UVI | Nivel | Color |
|---|---|---|
| 0-2 | Bajo | Verde |
| 3-5 | Moderado | Amarillo |
| 6-7 | Alto | Naranja |
| 8-10 | Muy alto | Rojo |
| 11+ | Extremo | Morado |
Capa 2 — Tiempo estimado hasta quemadura por fototipo (escala de Fitzpatrick), calculado en tiempo real a partir del UVI leído. Es la parte con más impacto en clase: convierte el número en algo que cada alumno puede relacionar con su propia piel.
| Fototipo | Descripción | Minutos hasta quemadura con UVI=3 | con UVI=9 |
|---|---|---|---|
| I | Piel muy clara, siempre se quema | ~30 min | ~10 min |
| II | Piel clara, se quema fácil | ~45 min | ~15 min |
| III | Piel media, se quema moderado | ~60 min | ~20 min |
| IV | Piel morena, rara vez se quema | ~75 min | ~25 min |
| V-VI | Piel oscura/muy oscura | ~90-120 min | ~30-40 min |
(Estos tiempos son orientativos, escalados de forma inversamente proporcional al UVI leído a partir de referencias dermatológicas estándar — no sustituyen una recomendación médica, y es buena idea que el propio dashboard lo indique.)
En el dashboard, la curva medida por el sensor en el patio se dibuja con Chart.js superpuesta a la curva teórica de AEMET/CAMS para ese día, y debajo, un cuadro grande cambia de color y de texto en tiempo real: “UVI actual: 8 — Fototipo II: te quemas en unos 15 minutos sin protección”.
Simulador UV: cuida tu piel
https://montesteam.org/wp-content/uploads/simuladores/11-uv.html

6. Conclusiones y recomendaciones
El dato más útil de esta misión no es un número aislado, sino la forma de la curva: la radiación UV en Estepona no es un fenómeno de “verano sí, resto del año no” — ya en marzo se alcanzan niveles “altos”, y esa es precisamente la época en la que menos se suele usar protección solar porque “todavía no hace calor”.
1. Protección solar por índice, no por sensación térmica. El riesgo de quemadura depende del UVI, no de la temperatura del aire — un día de marzo con 18°C y cielo despejado puede tener un UVI similar al de un día nublado de julio. La exposición excesiva a radiación ultravioleta, carcinógeno del grupo 1, es la principal causa evitable de cáncer de piel, así que enseñar a mirar el número en vez de la sensación es la recomendación de más impacto de toda la misión.
2. Reforestar y dar sombra en los patios y espacios públicos. Frente a una radiación que no se puede evitar del todo, la sombra física (árboles, pérgolas, toldos) es la medida de protección pasiva más eficaz y barata en el diseño urbano de una ciudad tan expuesta como Estepona.
3. Evitar las horas centrales del día para actividades al aire libre en primavera-verano. El propio CAMS señala que el UVI de cielo despejado es más alto en las cuatro horas centradas en el mediodía solar — un dato que debería condicionar los horarios de recreo y de actividades deportivas al aire libre del instituto entre abril y septiembre.
4. Las quemaduras en la adolescencia pesan a largo plazo. La investigación dermatológica es clara en que las quemaduras solares son el principal factor de riesgo de cáncer de piel, especialmente cuando ocurren en la infancia o la adolescencia — es decir, justo la etapa vital del alumnado que hace esta misión. Prevenir ahora no es una recomendación abstracta para “cuando sean mayores”: es la ventana de mayor riesgo acumulado.
Este proyecto se presenta con la intención de ayudar a entender un problema real de nuestro entorno, de forma humilde y desde la ciencia ciudadana — con datos simulados marcados como tales allí donde el alumnado aún no ha medido, y con datos reales y verificables en todo lo demás.
¿Quieres que ajuste algo (tono, longitud de alguna sección, las etiquetas finales tipo tags, o que prepare ya las 3-4 imágenes del mapa CAMS con un placeholder concreto de dónde encajarlas)? Dímelo y lo remato.
Etiqueta:AEMET OpenData índice UV, alerta exposición solar instituto, CAMS Copernicus radiación ultravioleta, ciencia ciudadana AIDARAC, dashboard Chart.js radiación UV, fototipo Fitzpatrick tiempo quemadura solar, índice UV Andalucía, índice UV Costa del Sol, Misiones del Lince Estepona, prevención cáncer de piel adolescentes, protección solar urbana, radiación UV Estepona, sensor UV GUVA-S12SD, Wokwi ESP32 sensor UV



