
Estación Meteorológica con Raspberry Pi y Sense HAT: Registro de Datos en CSV con Thonny IDE
La Sense HAT es una de las placas de extensión más fascinantes para la Raspberry Pi. Utilizada por la Agencia Espacial Europea (ESA) en la Estación Espacial Internacional dentro del proyecto Astro Pi, esta placa integra un gran abanico de sensores ambientales e inerciales junto a una vistosa matriz de LEDs RGB de 8×8.
En esta entrada vamos a programar desde cero con Thonny Python IDE una estación de registro continuo que muestra las lecturas de temperatura, humedad y presión en pantalla y en la matriz LED, guardando además una serie temporal ordenada en un archivo .csv listo para trabajar en el aula.
🛠️ Materiales Necesarios
- Raspberry Pi 4 (con Raspberry Pi OS).
- Placa Sense HAT.
- Fuente de alimentación adecuada (USB-C de al menos 5.1V / 3A para soportar el consumo de la matriz LED).
📦 1. Instalación de la Librería de la Sense HAT
Antes de abrir nuestro editor de código, nos aseguramos de tener la librería oficial instalada ejecutando en la terminal de la Raspberry Pi el siguiente comando:
sudo apt update sudo apt install -y sense-hat
💻 2. Creación del Script en Thonny Python IDE
- Abre Thonny en tu Raspberry Pi desde el Menú de inicio -> Programación -> Thonny Python IDE.
- Crea un documento nuevo e inserta el siguiente código totalmente comentado:
Python
import time
import csv
from datetime import datetime
from sense_hat import SenseHat
# ---------------------------------------------------------------------
# INICIALIZACIÓN DE LA SENSE HAT
# ---------------------------------------------------------------------
sense = SenseHat()
sense.clear() # Apaga todos los LEDs al iniciar
# Nombre del archivo CSV donde se almacenarán las lecturas
NOMBRE_ARCHIVO = "datos_estacion_sensehat.csv"
# Definición de la paleta de colores RGB para la matriz
ROJO = (255, 0, 0)
AZUL = (0, 150, 255)
VERDE = (0, 255, 100)
# ---------------------------------------------------------------------
# PREPARACIÓN DEL ARCHIVO CSV
# ---------------------------------------------------------------------
# Si el archivo no existe o está vacío, creamos los encabezados de columna
with open(NOMBRE_ARCHIVO, mode='a', newline='') as file:
if file.tell() == 0:
writer = csv.writer(file)
writer.writerow(["Fecha y Hora", "Temperatura (C)", "Humedad (%)", "Presion (hPa)"])
print("=== REGISTRO SENSE HAT INICIADO DESDE THONNY ===")
print(f"Guardando datos automáticamente en: {NOMBRE_ARCHIVO}")
print("Presiona el botón 'STOP' en Thonny o Ctrl+C para detener.\n")
# ---------------------------------------------------------------------
# BUCLE PRINCIPAL DE CAPTURA Y VISUALIZACIÓN
# ---------------------------------------------------------------------
try:
while True:
# 1. Obtener fecha, hora y lecturas de los sensores
ahora = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
temp = sense.get_temperature()
hum = sense.get_humidity()
pres = sense.get_pressure()
# 2. Imprimir en la consola inferior (Shell) de Thonny
print(f"[{ahora}] 🌡️ Temp: {temp:.1f} °C | 💧 Hum: {hum:.1f} % | 🎈 Presión: {pres:.1f} hPa")
# 3. Guardar en el CSV (file.flush fuerza la escritura física en la MicroSD)
with open(NOMBRE_ARCHIVO, mode='a', newline='') as file:
writer = csv.writer(file)
writer.writerow([ahora, f"{temp:.1f}", f"{hum:.1f}", f"{pres:.1f}"])
file.flush()
# 4. Desplazar los valores en la matriz LED de 8x8 con colores
sense.show_message(f"{temp:.1f}C", scroll_speed=0.07, text_colour=ROJO)
sense.show_message(f"{hum:.0f}%", scroll_speed=0.07, text_colour=AZUL)
sense.show_message(f"{pres:.0f}hPa", scroll_speed=0.07, text_colour=VERDE)
time.sleep(1)
except KeyboardInterrupt:
print("\nRegistro finalizado correctamente. Apagando matriz LED...")
sense.clear()
https://github.com/jusevil271/raspberrypi/blob/main/sensehattmosferico.py
🚀 3. Guardar, Ejecutar y Analizar Datos
Haz clic en el botón de Guardar en Thonny (nómbralo registro_sensehat.py) y pulsa el botón verde de Ejecutar (Play).
Verás los datos desfilando en vivo tanto por la pantalla del ordenador como por la matriz LED de la placa. Toda la información quedará almacenada automáticamente en el archivo datos_estacion_sensehat.csv listo para abrir en LibreOffice Calc, Excel o Google Sheets y hacer gráficas con tus alumnos.



