Introducción a los módulos detectores de tormentas

Los detectores de tormentas eléctricas han existido durante un tiempo sorprendentemente largo. Los primeros diseños consistían en un par de campanas de metal y un péndulo. Cuando se carga, por ejemplo, conectando una campana al suelo y la otra a un pararrayos, las campanas sonarían cuando se acercara una tormenta. A mediados del siglo XVIII, estos dispositivos solo eran prácticos para demostrar e investigar objetos, pero lo más probable es que representen los primeros dispositivos que transforman una carga electrostática en una fuerza mecánica. Un poco más de cien años después, algunos consideraron que el primer detector de rayos era el primer receptor de radio.

Tan pronto como me enteré de los detectores de tormentas, supe que tendría que trabajar en uno. Por alrededor de $ 25, pedí un módulo AMS AS3935 de China. Este chip ha aparecido anteriormente en una serie de proyectos excelentes como Twittering, detectores de rayos y redes de estaciones meteorológicas subsaharianas. Si bien hay una biblioteca Arduino para interactuar con este IC, lo conectaré a ESP8266, que funciona con el software NodeMCU, lo que significa ingresar la hoja de datos y escribir algún código SPI. Si algo de lo anterior le hace cosquillas a su imaginación, ¡siga leyendo!

A diferencia de los primeros detectores basados ​​en carga, este funciona capturando la señal de RF producida por flashes remotos con una pequeña antena de 500 kHz y algún procesamiento de señal digital.

El detector es capaz de diferenciar entre rayos y otros tipos de ruido de RF, y luego usar la señal del rayo para estimar la distancia a la tormenta, hasta 40 kilómetros de distancia. Esto es bastante bueno por dos razones: detecta tormentas activas un poco más lejos de lo que puede con sus ojos y oídos, y le da una idea razonable de qué tan rápido está llegando la tormenta.

Es fácil pensar en posibles aplicaciones. Los campos de golf, las instalaciones deportivas, las piscinas y las playas se beneficiarían de una detección más temprana de las tormentas. Además de las actividades al aire libre, los centros de datos, los aeropuertos y los equipos de construcción también deben conocer las tormentas eléctricas entrantes.

Al final del día, vivo en el sudeste asiático y la temporada de lluvias puede ser un poco épica. Las fuertes lluvias son muy localizadas, increíblemente intensas, a menudo causan inundaciones y ocurren sin previo aviso. Como la mayoría de los residentes, conduzco una motocicleta y quedar atrapado en el tráfico o en la carretera con esa intensidad de lluvia es miserable. Dependiendo de la opción, suele ser mejor detenerse, tomar café y dejarlo pasar.

Los informes meteorológicos no son muy útiles para planificar viajes, ya que la mayoría de las lluvias son muy locales, breves y frecuentes. El informe meteorológico durante la temporada de lluvias es simplemente "28 grados Celsius, 75% de probabilidad de lluvia intensa" todos los días, por lo que agregar un detector de tormentas a mi motocicleta me pareció práctico y divertido. Incluso si solo funciona por un tiempo, sería increíble. De hecho, me sorprende que nunca lo haya visto como un producto; si funciona, no dude en hacerlo.

¡Al laboratorio!

Volviendo a nuestro detector, hay una biblioteca Arduino para interactuar con él, si ese es tu estilo. Parece bastante fácil de usar, pero mi preferencia personal es usar NodeMCU y el ESP8266, aunque no tiene una biblioteca incorporada para este chip.

Afortunadamente, tenemos una hoja de datos (PDF) para el AS3935, y el chip admite interfaces SPI e I2C. Estaba buscando una excusa para explorar SPI en Lua en NodeMCU, y esto fue perfecto. Dado que solo usamos un SPI simple, es de esperar que el código también sea más fácil de transportar a otras plataformas.

Comencemos con el diseño básico. Para usar SPI, la hoja de datos dice que el Pin de interfaz de selección (SI) debe estar conectado a tierra. También quería usar el regulador de voltaje en el chip, por lo que el chip EN_V tuvo que elevarse. Finalmente, el chip atrae un pin de interrupción en cada detección de evento para informar al microcontrolador conectado que ha sucedido algo interesante.

Para mejorar la inmunidad al ruido en este pin, utilicé una resistencia de 1kΩ a tierra (no se muestra a continuación). Esto último probablemente no fue necesario, pero ayudó a reducir los falsos positivos durante las pruebas al manipular el circuito sin una caja.

Pines predeterminados para SPI 1. Fuente: Documentación NodeMCU

Luego conectamos todos los pines requeridos por SPI. Hay 4: Master Out Slave In (MOSI), Master In Slave Out (MISO), reloj (SCK) y Chip Select (CS). He incluido una pequeña tabla que detalla qué son estos pines en NodeMCU, tenga en cuenta que probablemente difieran en otras plataformas.

Un punto importante es que el pin CS no gestiona automáticamente NodeMCU durante las comunicaciones SPI. Deberá establecer su valor como cualquier otro pin GPIO del que trataremos más adelante. Antes de comenzar a programar, le recomiendo que verifique que todos los pines estén conectados correctamente. Perdí una hora así y me sentí estúpido.

Comenzamos inicializando SPI y estos pines:

spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 256);
CS=8
IRQ = 2
gpio.mode(CS, gpio.OUTPUT)
gpio.mode(IRQ, gpio.INPUT)

En NodeMCU, SPI 0 se usa para comunicarse con la memoria integrada, por lo que elegimos SPI 1, con funciones en su mayoría predeterminadas y 8 bits por conjunto de datos. Es de destacar que configuramos un divisor de reloj de 256 en la frecuencia SPI. Esto se debe a que el AS3935 mantiene una frecuencia SPI máxima de 2 Mhz y el NodeMCU tiene por defecto una velocidad mucho más rápida (al menos 20 Mhz). Tenga en cuenta que no es necesario configurar el chip en una frecuencia SPI de 500 kHz, ya que esta es la frecuencia de resonancia de la antena del detector de rayos (!).

También configuramos el pin seleccionado del chip como salida en D8 y conectamos el pin de interrupción (IRQ) como entrada. El IRQ será alto en cada nuevo evento y permanecerá alto hasta que lea el registro de interrupciones para determinar el tipo de evento. Usarlo como una interrupción o un disparador adecuado en el NodeMCU no funcionó de manera confiable, por lo que un pin de entrada normal que podamos investigar tendrá que hacerlo en este momento.

Con respecto a la hoja de datos, leer y escribir en el AS3935 requiere que enviemos ocho bytes a través de SPI. Los dos primeros bits determinan si está solicitando lectura o escritura, y los seis siguientes determinan el registro de destino. Si está leyendo desde el chip, primero debe configurar CS bajo para comenzar a leer (antes de enviar una solicitud), luego subir CS alto-bajo-alto cuando haya terminado. Extendamos nuestro programa para leer el registro de interrupciones cada vez que el chip libera un evento:

function reason()
    gpio.write(CS, gpio.LOW)
    tmr.delay(30)

    spi.send(1,0x43)
    tmr.delay(30)

    read = spi.recv(1, 8)
    print(string.byte(read))
    gpio.write(CS, gpio.HIGH)
    tmr.delay(30)
    gpio.write(CS, gpio.LOW)
    tmr.delay(30)
    gpio.write(CS, gpio.HIGH)
    tmr.delay(30)
end

function poll()
    x = gpio.read(IRQ)
    if x == 1
        then reason()
    end

    tmr.alarm(1, 100, 1, function() poll(0) end)
end

En el código anterior, examinamos el pin IRQ cada 100 ms para ver si es alto. Si es así, configuramos CS en bajo para indicar que estamos a punto de solicitar una lectura. Luego enviamos el comando 0x43, que se traduce al binario 01000011. Los primeros dos bits (01) piden lectura y los últimos seis bits (000011) indican que queremos leer la dirección de registro 0x03. Los últimos cuatro bits de la respuesta contendrán el tipo de evento detectado. Después de que se envía el comando, leemos ocho bits del puerto SPI e imprimimos el resultado, luego finalmente configuramos el pin CS alto-bajo-alto para indicar que hemos terminado de leer.

El resultado del código anterior es un flujo irregular de '4' (0100) a la terminal. Si toco la antena, emite '1' en su lugar. Mirando la hoja de datos, una tasa de interrupción de 0100 es "molesta": una señal de radio en la frecuencia de interés, pero no un rayo. En las grandes ciudades asiáticas, siempre hay algo de soldadura por arco cerca; Brilla como estrellas cuando llega durante un vuelo nocturno. Interrumpir el motivo 0001 significa un problema de ruido eléctrico elevado, lo que también tiene sentido. Un rayo produciría un "8" (1000), pero actualmente es una estación seca, por lo que es poco probable en este momento.

Ahora podemos recibir datos con éxito del dispositivo, pero aún no es particularmente útil. La próxima vez, veremos cómo escribir en los registros de configuración para configurarlo de manera más práctica y ser un poco creativos con lo que hacemos con los datos.

  • Ostraco dice:

    ¿Te preguntas cuántas estaciones meteorológicas consumidoras tienen algo así? Por sí solo es hermoso. Interconectado, muestra realmente su utilidad.

    • TGT dice:

      Solo me preguntaba si hay áreas habitadas en la tierra que no tengan detectores de rayos. Cuando veo el radar Doppler, veo todos los golpes en el mapa. Me gustaría tener una fuente de esos datos que sea en tiempo real y específica, datos de lectura que puedan formatearse como yo quiera.

      • TIERRA Funcional dice:

        “Blitzortung” puede tener lo que estás buscando.

        • sonofthunderboanerges dice:

          “Blitzortung” puede tener lo que estás buscando.

          https://goo.gl/LTkqK9

  • Ken N dice:

    Una radio AM barata, sintonizada en una ubicación entre estaciones, es un detector de rayos bastante bueno. Debería ejecutar su propio circuito de detección, por supuesto.

    • hastaorly dice:

      Bueno, lo bueno aquí es todo el procesamiento de señales vudú realizado en el chip. Para que pueda decirle dónde está el frente de tormenta. Incluso puede configurarlo para que advierta a su controlador solo si se acerca un frente de tormenta.

      • Ostraco dice:

        Impresione si pudiera saber si se trata de un frente de tormenta nacional o extranjero.

      • Pensador dice:

        El ADF en los paneles de aviones más antiguos también se puede usar (cuando no está escuchando el juego de pelota). Bien afinado mostraré la tormenta.

  • Antron Argaiv dice:

    Estos jóvenes:
    http://en.blitzortung.org/cover_your_area.php
    ... quisiera que fueras un nodo en su red.

    • Ren dice:

      Curiosamente, veo que todas las estaciones receptoras en mi estado se encuentran a 20 millas de mi casa, por lo que no estoy seguro de si configurar un receptor aumentaría la exactitud o precisión general.

      • DainBramage dice:

        Seguramente lo haría. Siempre están buscando más personas para configurar detectores.

    • TIERRA Funcional dice:

      Establecí el mío aquí en Japón durante aproximadamente un año.
      Funcionando bien hasta ahora, algún día construiré una pantalla de "centro de comando" con todo tipo de información sobre mi red de computadoras local, clima, etc.

  • Ren dice:

    Aunque requiere acceso a Internet, hay algunos lugares que muestran mapas flash.
    A principios de la década de 1990, esto se hacía mediante radios, que detectaban rayos estáticos y triangulaban el impacto mediante el uso de bases de tiempo de alta precisión. (GPS o lo que sea)

    Tengo conocimiento de aeropuertos que cesan las “operaciones en rampa” cuando se detecta un impacto a cierta distancia, y las operaciones mineras detienen las operaciones de dinamita de acuerdo con reglas similares.

    https://weather.com/maps/severe/lightningstrikes

    • Antron Argaiv dice:

      "... las operaciones mineras cesan las operaciones de dinamita de acuerdo con reglas similares".

      Dado que los detonadores son esencialmente un dipolo (2 cables) con una carga explosiva en la alimentación, esta parece una buena estrategia. 🙂

      Tuve varios abre-puertas de garaje detonadas por corrientes inducidas en los cables largos "sensor de niños" y "botón de mano" por rayos cercanos.

      También conmutadores ethernet baratos (mi casa está conectada a la red) que no tienen la protección ESD conectada a unidades destinadas a uso comercial.

      • ALINOME el A dice:

        Una Ethernet normal sobre cobre debe tener un transformador en el enchufe o cerca de él, de lo contrario no puede alcanzar los 1,5 kV durante unos minutos definidos en la norma.

        La empresa hermana de mi empleador es un ISP y investigaron por qué los puertos de sus interruptores murieron durante las tormentas; resulta que era casi exclusivamente el transformador tiene devanados abiertos de las corrientes inducidas ... así que cumplió la tarea: proteger la electrónica, pero ¿de qué sirve si no puede reemplazarla de manera realista? 😉

      • Ren dice:

        Mmm, puede que no valga la pena el esfuerzo, pero me pregunto qué se podría agregar a los cables del sensor para niños para reducir la posibilidad de daños. ¿Un condensador? ¿Una chispa? ¿Una combinación de ellos?

        Mientras escribía sobre los abre-puertas de garaje (GDO), noté que el de nuestra casa se sentía menos como una señal de "apagado", porque en esa época reemplacé las bombillas por equivalentes LED. Supongo que los LED emiten RFI. Cuando la puerta está cerrada (las bombillas LED están apagadas) puedo señalar "abierto" desde una distancia de aproximadamente 5 o más que una señal de "cierre" ...

        • Vadear dice:

          ¿No es para eso que sirven los MOV?

          http://www.electronicdesign.com/power/select-right-varistors-overvoltage-circuit-protection

          • Ren dice:

            Sí, supongo que 20 voltios a través de cada uno de los circuitos del sensor.

          • Doc dice:

            Anteriormente, se usaban tuberías de descarga de gas ... mucho mejor que los MOV. Autocontrol. Casi brevemente cuando el gas se ioniza. NE-2 funcionará bien.

        • W dice:

          Diodos TVS.

        • Andy dice:

          La RFI de las bombillas LED se ha identificado como un problema, especialmente en los barcos. Las luces LED de navegación marina baratas suelen tener convertidores de voltaje de conmutación que generan tanta interferencia que afectan drásticamente la sensibilidad de los receptores marinos UHF. Puedo entender cómo también evitarían los abre-puertas de garaje.

  • Ido Gendel dice:

    Tuve una experiencia menos que perfecta con uno de estos módulos y la biblioteca Arduino. El chip se comunicó con mi Arduino e incluso se quejó de "ruido" cuando lo puse cerca de algunos dispositivos eléctricos, pero no pudo detectar rayos incluso cuando estaban literalmente sobre mi cabeza. Habría obtenido mejores resultados colocando sensores de vibración en el vidrio de mi ventana ...

    • Sean Boyce dice:

      Ese es un problema interesante. El registro 0x01 contiene bits que le permiten establecer el piso de ruido, lo que afecta la sensibilidad, pero eso no explica la falta de detección con una cabeza de tormenta.

      ¿Quizás un problema de antena? Debería resonar a 500 kHz. El chip tiene capacitados capacitores de sintonización integrados, lo cual es un poco ordenado, junto con otras características de ajuste. No están muy bien documentados en la hoja de datos, pero no parecen demasiado difíciles de entender mediante prueba y error.

      La hoja de datos también nos advierte que no usemos constantemente una frecuencia de 500 kHz para comunicarnos con el chip, pero parece poco probable que ese sea el problema aquí.

      Por supuesto, podría ser un módulo defectuoso. Buena suerte con eso.

  • Jake Brodsky dice:

    Los pilotos conocen un dispositivo llamado "Tormenta". La extensión del golpe te da una idea del alcance. Un par de antenas de bucle ortogonales también pueden indicarle de qué dirección vino el impacto. Cada golpe obtiene distancia y acarreo. La información de orientación suele ser parte de la mayoría de los sistemas GPS en la aeronave, por lo que estos impactos se pueden presentar en una pantalla de mapa en movimiento.

    Por lo tanto, no es necesario tener una red de estas cosas para averiguar dónde están las huelgas. Solo necesita información de fase de las dos antenas cruzadas.

  • Ren dice:

    Un producto comercial que vi hace algunas décadas no solo puso el golpe en una pantalla de mapa, sino que también indicó si era de nube a tierra o de tierra a nube.

  • Charles dice:

    Espero que esto tenga éxito, recientemente pensé en un proyecto de este tipo. Siempre me pregunté cómo los sitios web y los servicios recopilaban sus datos para ataques leves. Supuestamente buena precisión, pero resultó ser incorrecta. ¿Los sensores mencionan una forma de probar además de esperar y tener esperanza?

  • zakqwy dice:

    Espero ver la eficacia con la que funciona el módulo. He estado conversando con los usuarios sobre este dispositivo, lo que sugiere que su detección efectiva de rayos (y el rechazo de falsas alarmas) puede ser bastante mala. ¡Cambie de opinión!

    • Sean Boyce dice:

      Es una estación seca en la que vivo unos meses más, por lo que podría ser en otro momento que no sea una tormenta helada.

  • disgustado dice:

    Los detectores de rayos han sido comunes en la aviación durante más de una década. Cabe señalar que pueden determinar la ubicación XY del impacto en lugar de solo la distancia.

    http://www.insightavionics.com/strikefinder.htm

  • WJCarpenter dice:

    Acurite vende algo como esto que se parece un poco a un buscapersonas grueso: https://www.acurite.com/lightning-detector-02020.html Tengo uno porque el precio para comprar todo lo que compré fue el mismo sin salida. sin el detector de rayos adicional. Mi experiencia fue desenfrenada (¿ves lo que hice allí?). Vivo en un lugar que no ve muchas tormentas eléctricas, por lo que son principalmente noticias.

  • Carl Smith dice:

    Si encuentra interesantes los detectores de rayos, también puede encontrar el “Detector de eventos nucleares” como un elemento interesante.
    http://micro.apitech.co.uk/nuclear-event-detector.aspx

    • Sean Boyce dice:

      Parece muy divertido, pero ¿cómo lo pruebo?

      Sobre eso ... ¿cómo lo probaron? Estoy tentado de enviarles un correo electrónico y preguntarles, tengo curiosidad ahora.

      Si la distancia fuera de unos cientos de kilómetros, es posible que tenga buena suerte en un centro turístico en Changbaishan, cercano pero no en un país determinado. Parece una idea terrible (y la hoja de datos no parece especificar un rango), por lo que debe haber una forma mejor, ¿tal vez isótopos médicos o algo así?

  • Doug Leppard dice:

    Al estar en Florida Central, recibimos muchos rayos. Vi los sitios web que muestran el rayo, pero llegan tarde. Pedí el AcuRite 02020 de Amazon por $ 30 para jugar y lucir divertido. Tal vez pueda hacer un truco para conectarlo. Quizás más tarde consiga que el AS3935 también funcione.

  • Elliot Williams dice:

    Construí una versión de esto de Techlib y es divertido y fácil de construir, aunque no da una dirección. Sin embargo, cuando se dispara, sé que debo comprobar blitzortung.org. 🙂

  • MartinR dice:

    También es divertido https://www.tindie.com/products/SMDKing/emp-sensor-detect-lightning-and-other-phenomena-/?pt=ac_prod_search

  • Stoev dice:

    Curiosamente, los dispositivos con los que trabajaba Tesla no fueron mencionados.
    En su laboratorio de Colorado Springs detectaba rutinariamente, como se describe en las páginas de (sus notas) "Notas de Colorado Springs 1899-1900", tormentas ardientes en un radio de 200-250 millas. Curiosamente, su principal fuente de información no fueron las perturbaciones dieléctricas (radiación EM) a través del aire, sino las corrientes en la tierra donde va la mayor parte de la descarga de energía atmosférica.

    • Ren dice:

      Y el Front Range de Colorado ciertamente tiene mucho wx convectivo de mayo a agosto de cada año.

  • Hans dice:

    Usando el sensor como se muestra en la foto (CJMCU AS-3935) estoy descubriendo problemas con la calibración de cortocircuito cerca de los 500 kHz requeridos. El problema parece ser que no hay información en la placa con capacidad y todas las bibliotecas de Arduino que he encontrado necesitan esa información 🙁

  • Andy dice:

    Me gustaría configurar algunos de estos separados por unas pocas millas para rastrear la posición real de las tormentas eléctricas. Espero ver cómo funcionan sus futuros desarrollos.

  • Michael Gasperi dice:

    Jugué con la versión SparkFun del AS3935. Es una parte difícil de trabajar, porque realmente tiene que estar aislado del ruido de RF creado por las computadoras y las pantallas para que funcione correctamente. Detallé mi experiencia junto con los planes para un circuito que generará ondas de rayos falsas que engañarán al AS3935. https://sites.google.com/view/as3935workbook/home

Fernando Román
Fernando Román

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *