Detección de Rayos con Raspberry Pi y AS3935: Guía Práctica
Los rayos pueden detectarse mediante el pulso electromagnético generado por una descarga. El sensor IC AS3935 Franklin Lightning de ams (Austria Mikro Systeme) ofrece una solución fiable y de bajo coste que puede detectar rayos hasta a 40 km de distancia, filtrar ruido eléctrico y diferenciar entre eventos nube-tierra e intra-nube. En este tutorial mostraremos cómo integrar el AS3935 con una Raspberry Pi usando I2C, calibrar la antena y acceder a los datos del sensor a través de una biblioteca Python lista para usar.
Por qué el AS3935
El chip contiene un algoritmo propietario que elimina interferencias artificiales y estima la distancia de la tormenta. Soporta umbrales de detección programables, sintonía de antena y puede conectarse vía SPI o I2C. Su encapsulado MLPQ‑16 de 4 × 4 mm es compacto, y la placa breakout MOD‑1016 de Embedded Adventures simplifica el cableado al proporcionar resistencias pull-up, conversión de nivel y una cómoda interfaz I2C.
Visión General del Hardware
- Raspberry Pi – Lógica GPIO de 3.3 V compatible con el rango de alimentación de 2.4–5.5 V del AS3935.
- Breakout MOD‑1016 – Viene preconfigurado para I2C; puede cambiarse a SPI mediante dos jumpers de soldadura.
- Extras opcionales – Sensor barométrico (MS5611) o FTDI friend para depuración serie.
El AS3935 requiere solo una línea de alimentación, tierra, dos líneas I2C (SDA y SCL) y un pin de interrupción (IRQ). Usando una protoboard y un Cobbler de Raspberry Pi de Adafruit, el cableado es sencillo:
| Pin MOD‑1016 | Conexión Pi |
|---|---|
| GND | Tierra (cualquier pin GND) |
| VCC | 3.3 V (Pin 1) |
| IRQ | GPIO 17 (Pin 11) |
| SCL | SCL (Pin 5) |
| SDA | SDA (Pin 3) |
Al usar I2C, recuerde que el bus está diseñado para comunicación de corto alcance; la especificación limita la capacitancia del bus a 400 pF, lo que normalmente confina el cableado efectivo a unos pocos metros. Si se necesitan recorridos más largos, considere un extensor I2C o reduzca la velocidad del reloj. Al tender las líneas I2C sobre par trenzado, use pares separados para SDA y SCL y conecte el cable no usado de cada par a tierra para reducir la diafonía.
Antes de conectar el hardware, habilite I2C en su Pi:
sudo apt-get install python-smbus i2c-tools
sudo modprobe i2c-bcm2708
sudo modprobe i2c-dev
echo "i2c-bcm2708 i2c-dev" | sudo tee -a /etc/modules
Con el circuito montado, verifique el bus usando i2cdetect. En una Pi con bus I2C más nuevo (bus 1) ejecutaría:
sudo i2cdetect -y 1
La salida debería mostrar el AS3935 en la dirección 0x03 y cualquier otro dispositivo I2C, como el MS5611 en 0x76:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
Para comunicarse con el sensor necesita leer y escribir sus registros internos. Los registros actúan como interruptores DIP digitales; configurar bits específicos configura el sensor o borra contadores internos. La hoja de datos del AS3935 lista todas las direcciones de registro y funciones de bits. Aunque la manipulación de bajo nivel es posible con i2cget, i2cdump y i2cset, una biblioteca Python de alto nivel simplifica el proceso. La biblioteca RaspberryPi-AS3935 de Phil Fenstermacher proporciona métodos convenientes y un script de demostración para comenzar. Instálela vía pip o desde el repositorio de GitHub, luego explore RPi_AS3935.py para ver los comandos disponibles.
La calibración es crítica porque el AS3935 usa una antena RLC paralela sintonizada a 500 kHz ± 3.5%. El chip incluye un capacitor de sintonía interno de 120 pF que puede activarse en pasos de 8 pF. El breakout MOD‑1016 indica el valor del capacitor de sintonía externo en su bolsa antiestática, así que simplemente puede llamar al método calibrate() de la biblioteca con ese valor. Para detalles más profundos de diseño de antena, consulte la Guía de Diseño de Hardware AS3935 de AMS.
Con el sensor calibrado, puede empezar a recopilar datos de rayos, registrar la distancia de la tormenta e incluso activar alertas cuando se detecta un rayo dentro del radio definido. Este proyecto es una excelente introducción a I2C, interfaz de sensores y procesamiento de señales del mundo real.
Proceso de manufactura
- Construya un registrador de temperatura con Raspberry Pi y sensor I2C de 5 $
- Cómo leer temperatura con un DS18B20 en Raspberry Pi 2
- Medición de temperatura en Raspberry Pi con sensores 1-Wire Maxim y puente I2C DS2482
- Monitorización precisa de temperatura en armario de servidores con Raspberry Pi
- Integración de datos de sensores en Raspberry Pi: Guía práctica
- Construya un Controlador Domótico 433 MHz con Sensorflare y Raspberry Pi
- Construya una Alarma de Agua Headless para Raspberry Pi 2 con Adafruit T‑Cobbler Plus
- Construya un Monitor de Temperatura ThingSpeak con Raspberry Pi y BrickPi
- Construya un Detector de Llanto de Bebé Económico con Raspberry Pi – Guía DIY
- Seguimiento Facial Pan/Tilt en Tiempo Real en Raspberry Pi – Guía Práctica
- Lectura de Pulsaciones de Botón vía GPIO en Raspberry Pi: Guía Paso a Paso