Este repositorio contiene el firmware que se ejecuta en una placa de circuito alternativo para un pluviómetro TFA 30.3161 (consulte el enlace en la parte inferior de la página para obtener más información) que convierte el dispositivo en tecnología Lorawan de 868MHz.
Los datos de medición se transmitirán a una puerta de enlace de Lorawan en el rango del dispositivo (incluso en áreas urbanas, 1 km se pueden cubrir sin ningún problema) mientras que el consumo de energía es realmente bajo, por lo que las baterías duran años.
Se proporciona un decodificador de carga útil JavaScript probado con el trabajo de red v3 y ChirpStack V4.

Además de la tabla de matrícula Lora ensamblada, se necesitan las siguientes herramientas:
El procesador en la placa de circuito principal es un ATMEL ATMEL ATMEL ATMEGA328P de Arduino. Por lo tanto, el proyecto utiliza la popular Biblioteca McCI Arduino LMic para Lora. Para una fácil compilación e implementación, se utiliza la plataforma de herramientas Platformio.
La implementación de Lorawan admite OTAA y ABP. Los datos de la sesión (por ejemplo, claves de sesión, contador de cuadros) y el valor del contador de lluvia se almacenarán en el chip SPI Fram de vez en cuando. Esto se hace inmediatamente después de unirse a la red y también después de que se haya enviado cada tercer paquete de datos. La ventaja de Fram sobre la memoria flash es un número mucho mayor de ciclos de escritura, pero sigue siendo una buena idea limitarlos un poco.
Después del arranque, el dispositivo entra en modo de suspensión primero. Se despierta después del intervalo de tiempo definido o cuando se presiona el botón (lo cual es posible una vez por minuto). Si no hay una sesión válida, intentará unirse primero. Cuando se ha enviado el paquete de datos, el microcontrolador vuelve al sueño profundo, en el que el consumo de energía cae a solo 14 µA. El momento del modo de suspensión profunda se realiza mediante el uso del temporizador de vigilancia para despertar el microcontrolador del modo de encendido cada segundo, disminuyendo una variable contraria que contiene el período de tiempo hasta la próxima transmisión.
Los pulsos generados por el plubulador de cubo de inflexión son capturados por una interrupción de cambio de puerto. Esto es necesario porque la mayoría de los componentes de los periféricos del microcontrolador (incluido el temporizador/contador) están inactivos debido al modo de suspensión profunda. La interrupción despertará al controlador por un corto período de tiempo para incrementar el mostrador de lluvia. Después de eso, continuará con el próximo ciclo de sueño profundo.
Si está conectado un sensor BMP280, la temperatura y los datos de presión barométrica también se incluyen en la transmisión.
El intervalo de sueño y el mostrador de lluvia se pueden actualizar a través del mensaje de enlace descendente. Simplemente use FPORT 1 para el intervalo y FPORT 2 para el valor del contador, ambos enviados como un entero de 16 bits sin firmar (MSB primero).
Este firmware utiliza el sistema de compilación de Platformio, que manejará todas las cosas relacionadas con la cadena de herramientas y la dependencia automáticamente. Siga las Guías en Platformio.org para instalar Platformio Core (para operación de la consola) o VS Code & Platformio (IDE). Luego clone este repositorio y cambie al directorio correcto.
Simplemente conecte su USBASP al conector ISP de 6 pines en la placa. ¡Asegúrese de que el programador esté configurado en 3.3V de voltaje, ya que el RFM95W no es tolerante a 5V! Después de eso, simplemente ejecute pio run -t bootloader -e m328p_isp (o -e m328pb_isp para ATMEGA328PB) para programar el cargador de arranque y los fusebits. Luego, el dispositivo se puede programar fácilmente a través de una conexión serie.
Copie el archivo src/config.h.example a src/config.h. Luego, Descopment USE_OTAA o USE_ABP, cree un nuevo dispositivo en su servidor Lorawan y complete los datos de sesión iniciales en config.h como se describe en él. Puede encontrar el decodificador de carga útil requerido en Docs/Payload-Decoder.js.
Una vez que todo esté configurado, conecte el adaptador serial USB al encabezado PIN apropiado. Luego ejecute pio run -t upload -e m328pb
Es posible que desee verificar la consola serie para obtener mensajes de registro utilizando el pio device monitor de comando. La red se unirá inmediatamente después de encender. Los valores de medición se transmitirán cada 15 minutos.
Una vez que se completa la activación de Lorawan, los datos de la sesión se almacenan en FRAM y se recuperan en el arranque. Se incluye un valor hash de config.h para detectar los cambios de configuración e invalidar la sesión actual, lo que obliga al dispositivo a reactivar. La reactivación también se puede forzar manteniendo presionado el botón en el compartimento de la batería durante unos segundos mientras se inserta las baterías.
El LED en la placa de circuito se iluminará si se envía un paquete. Parpadeará si la activación de OTAA falla.
https://www.maltpoeggel.de/?site=lora-raingauge
Este firmware se publica bajo los términos de la licencia MIT, consulte el archivo de licencia para obtener más detalles.