Este repositório contém o firmware que é executado em uma placa de circuito alternativa para um TFA 30.3161 Bavete (consulte o link na parte inferior da página para obter mais informações), que converte o dispositivo em 868MHz Lorawan Technology.
Os dados de medição serão transmitidos para um gateway de Lorawan no alcance do dispositivo (mesmo nas áreas urbanas, 1 km pode ser coberto sem problemas) enquanto o consumo de energia é realmente baixo, portanto as baterias duram anos.
Um decodificador de carga útil JavaScript testado com ThethingsNetwork V3 e Chirpstack V4 é fornecido.

Além da placa de bitola de chuva Lora montada, são necessárias as seguintes ferramentas:
O processador na placa de circuito principal é uma atmel atmel atatel328p compatível com Arduino. O projeto, portanto, utiliza a popular biblioteca McCi Arduino LMIC para Lora. Para fácil compilação e implantação, a cadeia de ferramentas Platformio é usada.
A implementação de Lorawan suporta OTAA e ABP. Dados da sessão (por exemplo, chaves de sessão, contador de quadros) e o valor do contador de chuvas serão armazenados no chip SPI Fram de tempos em tempos. Isso é feito imediatamente após ingressar na rede e também após cada terceiro pacote de dados foi enviado. A vantagem do FRAM sobre a memória flash é um número muito maior de ciclos de gravação, mas ainda é uma boa idéia limitá -los um pouco.
Após a inicialização, o dispositivo entra no modo de suspensão primeiro. Ele acorda após o intervalo de tempo definido ou quando o botão é pressionado (o que é possível uma vez por minuto). Se não houver sessão válida, tentará entrar primeiro. Quando o pacote de dados foi enviado, o microcontrolador muda de volta ao sono profundo, no qual o consumo de energia cai para apenas 14µA. O tempo do modo de suspensão profundo é realizado usando o cronômetro de Watchdog para acordar o microcontrolador do modo de desativação a cada segundo, diminuindo uma variável contador contendo o período até a próxima transmissão.
Os pulsos gerados pelo manômetro de caçamba de gorjeta são capturados por uma interrupção de mudança de porta. Isso é necessário porque a maioria dos componentes dos periféricos do microcontrolador (incluindo timer/contador) está inativa devido ao modo de suspensão profundo. A interrupção acordará o controlador por um curto período de tempo para incrementar o balcão de chuva. Depois disso, continuará com o próximo ciclo profundo do sono.
Se um sensor BMP280 estiver conectado, os dados de temperatura e pressão barométrica também serão incluídos na transmissão.
O intervalo de sono e o contador de chuva podem ser atualizados via mensagem de downlink. Basta usar o FPORT 1 para o intervalo e o FPORT 2 para o valor do contador, ambos enviados como um número inteiro de 16 bits não assinado (MSB primeiro).
Este firmware usa o sistema de compilação da plataforma, que lidará com todas as cadeias de ferramentas e coisas relacionadas a dependência automaticamente. Siga os guias no Platformio.org para instalar o Platformio Core (para operação do console) ou o Code & Platformio (IDE). Em seguida, clone este repositório e altere para o diretório correto.
Basta conectar seu USBASP ao conector ISP de 6 pinos na placa. Verifique se o programador está definido como tensão de 3.3V, pois o RFM95W não é tolerante a 5V! Depois disso, basta executar pio run -t bootloader -e m328p_isp (ou -e m328pb_isp para atmga328pb) para programar o carregador de inicialização e os fusíveis. Posteriormente, o dispositivo pode ser facilmente programado por meio de uma conexão serial.
Copie o arquivo src/config.h.example para src/config.h. Em seguida, o descomamento use_otaa ou use_abp, crie um novo dispositivo no seu servidor Lorawan e preencha os dados iniciais da sessão em config.h, conforme descrito. Você pode encontrar o decodificador de carga útil necessário em docs/payload-Decoder.js.
Quando tudo estiver configurado, conecte o adaptador serial USB ao cabeçalho do pino apropriado. Em seguida, execute pio run -t upload (adicione -e m328pb para atmaga328pb) para programar o firmware.
Você pode verificar o console serial para mensagens de log usando o pio device monitor do comando. A rede será unida imediatamente após a energia. Os valores de medição serão transmitidos a cada 15 minutos.
Depois que a ativação de Lorawan é concluída, os dados da sessão são armazenados no FRAM e recuperados na inicialização. Um valor de hash de config.h é incluído para detectar alterações de configuração e invalidar a sessão atual, forçando o dispositivo a reativar. A reativação também pode ser forçada mantendo pressionada o botão no compartimento da bateria por alguns segundos enquanto inseriu as baterias.
O LED na placa de circuito acenderá se um pacote estiver sendo enviado. Ele piscará se a ativação do OTAA falhar.
https://www.maltepoeggel.de/?site=lora-raingauge
Este firmware é liberado nos termos da licença do MIT, consulte o arquivo de licença para obter detalhes.