Pular para o conteúdo principal

Monitoramento Ambiental Agrícola com LoRaWAN: Hardware, Implantação e Interfaces

Aviso de uso

Este é um painel de operações, não um sistema de medição certificado: o valor exibido é o valor bruto relatado pelo nó, com uma unidade anexada.

O que esta solução faz​

A umidade e a CE do solo em uma estufa determinam quando irrigar e quando adubar; a chuva e a temperatura do solo em um campo aberto determinam o mesmo para uma cultura diferente. Os nós LoRaWAN SenseCAP medem esses valores e os reportam pelo ar. Os uplinks se tornam entidades do Home Assistant com a unidade correta, classe de dispositivo e classe de estado: elas aparecem em um painel, acumulam histórico e disparam uma notificação quando um valor cruza um limite.

É destinada a estufas, talhões em campo aberto, locais sem internet utilizável e implantações SenseCAP existentes que desejam um painel local sem mover nada.

  • Os nós SenseCAP funcionam imediatamente

    Os nós S210x reportam no ciclo configurado no nó, sem nada para enviar para eles. As entidades são criadas por descoberta MQTT com unidades e classes definidas; nenhum YAML para escrever.

  • Sondas de terceiros se conectam da mesma forma

    Sondas RS485 ou analógicas existentes entram pelo data logger S2100 e usam o mesmo mapeamento de medições. O mapeamento, arquivos compose, painel e automações são fornecidos no pacote público da solução; adicionar uma grandeza é uma linha em um arquivo de configuração.

  • Pode funcionar totalmente sem internet

    O ChirpStack roda no gateway M2, a ponte e o Home Assistant em um host local. Nenhuma conta em nuvem, nenhuma conexão de saída.

  • Altere o network server, mantenha o painel

    Os nomes das entidades são idênticos na nuvem SenseCAP, em um The Things Stack auto-hospedado e em um ChirpStack local, então trocar de caminho deixa painéis, automações e exportações intactos.

Painel do Home Assistant mostrando entidades de umidade do solo, ambiente e sensor de CE

De que hardware você precisa​

Quatro coisas no local: os nós LoRaWAN, um gateway que os ouça, um network server e um host Linux com Docker.

① Os nós — sensores SenseCAP S210x medem diretamente; um data logger S2100 traz sondas RS485 ou analógicas de terceiros existentes para a mesma rede LoRaWAN. Nada é implantado em nenhum dos dois — eles medem e reportam periodicamente em um ciclo configurado no nó.

② O gateway e o network server — os três caminhos diferem apenas aqui, e a escolha decide se o local precisa de internet.

DispositivoFunçãoQuando escolhê-lo
SenseCAP S2101SenseCAP S210x
Nós sensores de solo e ar
Medem e reportamSempre. Escolha a variante pela grandeza de que você precisa e a banda pela sua região
SenseCAP S2100SenseCAP S2100
Data logger LoRaWAN
Sonda de terceiros para LoRaWANVocê já tem sondas RS485 ou analógicas
S-Soil MTEC-02BS-Soil MTEC-02B
Sonda RS485 de umidade, temperatura e CE do solo
Liga-se ao S2100 por RS485 (Modbus-RTU); o S2100 envia o uplink LoRaWANVocê precisa de umidade, temperatura e CE do solo pelo caminho do S2100
SenseCAP M2 gatewaySenseCAP M2
Gateway LoRaWAN indoor
Encaminha para a nuvem SenseCAP ou roda o próprio ChirpStackVocê quer um site totalmente local: mude para o network server embutido na interface web do M2
reComputer R1225reComputer R12 Series
Gateway LoRaWAN e controlador industrial
É o gateway e hospeda o The Things Stack na mesma máquinaVocê está auto-hospedando o The Things Stack e não tem gateway
reRouter CM4reRouter CM4
Host reRouter CM4
Roda o network server ou roda o painelVocê precisa de um host e ainda não tem uma máquina Linux com Docker

③ O host do painel — qualquer máquina Linux com Docker. Ela roda o Home Assistant, o broker MQTT e agri-env-bridge, e não precisa de acesso à internet de entrada.

Peça nós, gateway e concentrador para a mesma banda (EU868 / US915 / AS923, etc.). A banda é fixada na fábrica e não pode ser alterada por software. Para os dois caminhos auto-hospedados você também precisa do DevEUI, JoinEUI e AppKey de cada nó para registrá-lo no network server.

Limites de seleção negativa​

  • Transmissão de alta largura de banda: LoRaWAN é projetado para telemetria periódica (intervalos de 5–60 min); para monitoramento contínuo de vídeo ou controle em sub-segundos, use 4G ou Ethernet industrial cabeada.
  • Invólucros metálicos e silos: Silos metálicos espessos ou obstruções pesadas subterrâneas causam forte atenuação de RF; use antenas externas ou sensores cabeados RS-485.

Como um site é implantado​

1. Monte os nós​

Defina a profundidade da sonda a partir da zona radicular e depois deixe a sonda no lugar

Sondas de solo leem a camada em que estão. Leituras a 10 cm e a 40 cm são entidades separadas (soil_moisture_10cm … soil_moisture_40cm). Decida a profundidade a partir da zona radicular da cultura antes de cavar o primeiro buraco; mover uma sonda depois torna o histórico já registrado nessa entidade incomparável.

A cobertura de rádio precisa ser medida no local; nenhum valor de alcance é fornecido aqui. Antes de fixar as posições dos sensores, confirme no local que o gateway recebe os uplinks de cada nó.

2. Instale o software — de 3 a 6 etapas dependendo do caminho​

As etapas por dispositivo e os pacotes de aplicação estão na página de reference design; escolha uma configuração para o seu site e faça o download.


Esboço:

  1. Implantar o Home Assistant e o broker no host Linux (todos os três caminhos, um único deployment com Docker compose).
  2. Subir o network server — nada a fazer no caminho em nuvem; no caminho com ChirpStack, mude o M2 para o network server local integrado na interface web, ou suba uma stack ChirpStack com compose em um host Linux; no caminho com The Things Stack, suba a stack com seu Postgres e Redis no gateway reComputer R12 Series.
  3. Instalar o decodificador (somente caminhos self‑hosted) — o payload formatter no The Things Stack, ou o codec do device-profile no ChirpStack. Sem isso, nenhuma entidade aparece.
  4. Fazer o join dos nós (somente caminhos self‑hosted) — registrar cada DevEUI, JoinEUI e AppKey no network server.
  5. Implantar a bridge com a origem configurada para o caminho e as credenciais do broker preenchidas.
  6. Importar o dashboard e as automações e confirmar que as entidades carregam valores.

Tempo estimado 45 minutos, dificuldade intermediária. O caminho com The Things Stack leva mais tempo: o concentrador precisa ser instalado fisicamente e a stack sobe seu próprio banco de dados e cache.

A verificação é a mesma nos três caminhos: o dashboard Lovelace importado na última etapa mostra as entidades com valores.

Interfaces disponíveis​

Tudo sai por um único broker MQTT na porta 1883, em execução no host do dashboard. Três tópicos retidos carregam toda a interface.

  • Home Assistant — zero configuração. A bridge publica discovery configs, então as entidades aparecem sozinhas com a unidade, device class e state class corretas; nenhum YAML é escrito manualmente.
  • Um sistema de irrigação ou de gestão agrícola — assine agri_env/sensecap_<deveui>/<entity_key>/state para o valor e agri_env/sensecap_<deveui>/availability para saber se o nó ainda está ativo. Ambos são retidos, então um assinante que se conecta mais tarde ainda obtém imediatamente o estado atual.
  • Seu próprio serviço — o discovery config em homeassistant/… carrega todos os metadados da entidade (unidade, device class, state class, identificadores do dispositivo), o que é suficiente para construir um esquema.

Tópicos e payloads​

Tópico / portaPayloadRetido
homeassistant/sensor/sensecap_<deveui>/<entity_key>/config (1883)Discovery config, um por entidade: name, unique_id, object_id, state_topic, availability_topic, unit_of_measurement, state_class, device.identifiersSim
agri_env/sensecap_<deveui>/<entity_key>/state (1883)O valor de uma medição, por exemplo 33.8Sim
agri_env/sensecap_<deveui>/availability (1883)online ou offlineSim

Nomeação de entidades: o entity id é sensor.sensecap_<deveui>_<entity_key>, com o DevEUI completo em minúsculas; uma forma abreviada entra em colisão entre nós cujos endereços compartilham um sufixo. Mudar a regra depois significa limpar as mensagens retidas do broker e o registro de entidades do Home Assistant ao mesmo tempo, caso contrário os tópicos antigos voltam após um restart.

Mantenha o broker em uma LAN confiável; não o exponha à internet. Suas credenciais estão em arquivos .env no host e, no caminho com ChirpStack, o broker do lado do LNS roda sem autenticação na rede do compose.

Desempenho e dados medidos​

Tempo de execução e parâmetros principais​

Um serviço, agri-env-bridge, fica atrás dos três caminhos e roda no host do dashboard ao lado do Home Assistant e do broker MQTT.

CaminhoO que a bridge lê
SenseCAP cloudA SenseCAP OpenAPI mais o stream MQTT em nuvem; preenche o histórico mês a mês no primeiro start
The Things StackA integração MQTT da stack, depois que o payload formatter decodificou o uplink
ChirpStackA integração MQTT do ChirpStack, depois que o codec do device-profile decodificou o uplink
  • Mapeamento de medições: assets/config/measurements.yaml. Ele cobre temperatura e umidade do solo em quatro profundidades, tensão do solo, fluxo de calor e conteúdo volumétrico de água; temperatura do ar, umidade, CO2, pressão barométrica, PM2.5 e PM10, ruído; pH, oxigênio dissolvido, turbidez, TDS, salinidade e temperatura da água; velocidade e direção do vento, radiação solar, duração da insolação, PAR e quantum de luz; vazão, fluxo total, nível de líquido e vazamento de água. Adicionar uma grandeza é uma nova linha, sem mudança de código; os valores nunca são escalonados, apenas recebem uma unidade.
  • Limite de offline: por padrão, dois ciclos de reporte do S210x mais uma margem. Ao expirar, as entidades do nó ficam indisponíveis no Home Assistant, mantendo o último valor.
  • Desduplicação: leituras são indexadas por (DevEUI, measurementId, timestamp), então um backfill em nuvem e o stream ao vivo nunca contam duas vezes a mesma leitura; quando uma entidade tem dois valores, o mais recente prevalece.
  • Verificação funcional: uplinks gravados reproduzidos no broker nos três formatos de origem criaram 15 entidades.
  • Reprodução: testes de replay estão localizados no repositório em tests/replay_bench.py; execute python3 tests/replay_bench.py --fixtures tests/data/ para verificar três tipos de uplink e o registro automático de 15 entidades.

Degradação conhecida​

  • O broker é um ponto único de falha: enquanto ele estiver fora do ar, nenhum dos três caminhos será atualizado. Tópicos de estado são retidos, então o Home Assistant recupera o último valor após um restart.

Proveniência de dados e assets​

  • A tabela de measurementId para grandeza física em assets/config/measurements.yaml foi extraída das fontes do decodificador SenseCAP em Seeed-Solution/SenseCAP-Decoder, commit d0a2342 — third_party/SenseCAP-Decoder/S210X/Helium/SenseCAP_S210X_Helium_Decoder.js para a série S210X e third_party/SenseCAP-Decoder/T1000/TTN/SenseCAP_T1000_TTN_Decoder.js para o T1000. Cada entrada no YAML traz o arquivo de origem e a linha de onde veio.
  • A licença desse repositório é não confirmada: ele não tem arquivo LICENSE nem seção de licenciamento em seu README; a única declaração de licença nele é um cabeçalho de arquivo contribuído por terceiros dizendo Unlicensed for internal use. O pacote da solução não redistribui o decodificador. Ele usa apenas a correspondência id -> quantity; o guia de deployment para os dois caminhos self‑hosted aponta para o repositório upstream. Confirme o licenciamento com a Seeed antes de distribuir o próprio decodificador.
  • As colunas device_class, unit_of_measurement e state_class não vêm do decodificador — essa informação não existe lá. Elas foram derivadas da documentação de sensores do Home Assistant.
  • Diagramas de arquitetura na página de design de referência são desenhados a partir de um Architecture IR; as artes de produto vêm do catálogo revisado de adesivos de produto da Seeed.
Loading Comments...