O SenseCAP Gateway OS é um sistema operacional de gateway IoT multiprotocolo projetado para cenários industriais internos. Baseado no OpenWrt, fornece uma base de software padronizada que abrange três capacidades principais: gateway LoRaWAN, aquisição de dados de barramento industrial e relatórios de conformidade predial.
O sistema adota uma arquitetura leve inovadora que combina um host Debian com um único contêiner LXC (OpenWrt). Toda a lógica de negócios é encapsulada e executada dentro de um único contêiner OpenWrt, enquanto o sistema host é responsável apenas pela abstração de hardware e gerenciamento de contêineres. Este design alcança utilização otimizada de recursos, forte isolamento de segurança e flexibilidade operacional.
English | 中文 | 日本語 | Français | Português | Español
- Características
- Hardware recomendado
- Capacidades e roteiro
- Estrutura de diretórios
- Primeiros passos
- Implantação
- Módulos funcionais
- Descrição dos feeds
- FAQ
- Links relacionados
- Licença
- Contribuição
- Sistema host mínimo: O host Debian mantém apenas o kernel, a cadeia de ferramentas LXC, drivers de hardware e monitoramento UPS, sem executar serviços de nível aplicativo.
- Arquitetura de contêiner único: Todos os serviços (serviços LoRaWAN, rede, gerenciamento de periféricos e serviços Web) executam dentro de um único contêiner LXC como pacotes nativos OpenWrt.
- Operações simplificadas: O design de contêiner único simplifica o gerenciamento de configuração, rollback de atualizações e resolução de problemas, reduzindo a complexidade operacional.
Nota: O diagrama acima ilustra apenas os componentes de software executados dentro do contêiner LXC (OpenWrt). A camada do sistema host (Debian) — incluindo o kernel Linux, drivers de hardware, runtime LXC, monitor UPS e armazenamento de dados do usuário — é mostrada separadamente no topo e não faz parte da imagem do contêiner.
| Dispositivo | Link |
|---|---|
| reComputer R1225 Gateway LoRaWAN & Controlador Industrial (US915-4G) | Comprar |
| reComputer R1225 Gateway LoRaWAN & Controlador Industrial (US915) | Comprar |
| reComputer R1225 Gateway LoRaWAN & Controlador Industrial (EU868-4G) | Comprar |
| reComputer R1225 Gateway LoRaWAN & Controlador Industrial (EU868) | Comprar |
Wiki do reComputer R1225: https://wiki.seeedstudio.com/r1225_introduction/
O SenseCAP Gateway OS não é apenas o sistema dedicado para o R1225, mas também uma solução de software de gateway portátil. Pode ser adaptado a diferentes plataformas de hardware, permitindo que parceiros personalizem e estendam rapidamente o sistema.
🔜 Próximos passos:
- Adicionar suporte de configuração Web para o protocolo BACnet
- Otimizar a lógica de configuração Web para portas seriais e Modbus
- Adicionar serviço de watchdog de rede 4G
recomputer-gateway/
├── .config # Configuração de compilação OpenWrt
├── .github/
│ └── workflows/
│ └── build.yml # Workflow de compilação GitHub Actions
├── feeds.conf.default # Configuração de feeds
├── feeds/
│ ├── chirpstack/ # Pacotes relacionados ao ChirpStack
│ ├── lorawan-gateway/ # Serviços backend do gateway LoRaWAN
│ └── luci-lorawan-gateway/ # Extensões da interface Web LuCI
│ ├── luci-app-gateway/ # Aplicativo de configuração principal
│ ├── luci-app-lora/ # Exibição de status LoRa
│ ├── luci-app-lte/ # Configuração LTE
│ ├── luci-app-ups/ # Gerenciamento de energia UPS
│ ├── luci-app-rs485/ # Configuração RS485
│ ├── luci-app-terminal/ # Terminal Web
│ ├── luci-app-ota/ # Atualização OTA
│ ├── luci-app-multiwan/ # Configuração Multi WAN
│ ├── luci-app-routing/ # Configuração de roteamento
│ └── luci-theme-sensecap/ # Tema SenseCap
├── openwrt/ # Fonte OpenWrt (baixado durante a compilação)
└── README.md # Este documento
- SO: Ubuntu/Debian Linux
- Espaço em disco: > 50GB recomendado
- Memória: > 8GB recomendado
sudo apt-get update
sudo apt-get install build-essential clang flex bison g++ gawk \
gcc-multilib g++-multilib gettext git libncurses5-dev \
libssl-dev rsync unzip zlib1g-dev file wgetgit submodule update --init --recursivegit clone https://github.com/openwrt/openwrt.git -b openwrt-24.10
cd openwrt
rm -r feeds.conf.default
cp ../feeds.conf.default feeds.conf.default./scripts/feeds update -a
./scripts/feeds install -acp ../.config .config
make defconfigsed -i 's/--set=llvm.download-ci-llvm=true/--set=llvm.download-ci-llvm=false/' \
feeds/packages/lang/rust/Makefileunset CI GITHUB_ACTIONS CONTINUOUS_INTEGRATION
make -j$(nproc)Após a conclusão, o firmware está localizado em:
openwrt/bin/targets/armsr/armv8/openwrt-armsr-armv8-generic-rootfs.tar.gz
Para personalizar o firmware (adicionar pacotes, modificar configurações do kernel), execute menuconfig no diretório openwrt:
cd openwrt
make menuconfigO firmware é implantado no dispositivo via contêiner LXC:
sudo lxc-stop -n SenseCAPsudo rm -rf /var/lib/lxc/SenseCAP/rootfs
sudo mkdir -p /var/lib/lxc/SenseCAP/rootfssudo tar -xzf /path/to/openwrt-armsr-armv8-generic-rootfs.tar.gz \
-C /var/lib/lxc/SenseCAP/rootfssudo lxc-start -n SenseCAPsudo lxc-attach -n SenseCAP# Logs do packet forwarder LoRa
logread | grep lora
# Logs do sistema
logreadAcesse http://[IP_ADDRESS]/cgi-bin/luci para:
- Visão geral do status: Status LoRa, conexões de rede, estatísticas de pacotes
- Serviços: Configurações de LoRa, rede e outros
- Arquivo de configuração:
/etc/config/lora_pkt_fwd - Serviço:
lorawan_gateway - UI: Aplicativo LuCI Gateway
- Alvo:
seeed-gateway - Serviço:
chirpstack-concentratord
- Configuração:
/etc/config/network - Firewall: Regras de firewall adicionadas para redes LTE e WWAN
Suporta múltiplas configurações WAN incluindo LTE e Ethernet, com balanceamento de carga e capacidades de failover.
O reComputer R1225 é equipado com duas portas Ethernet físicas (ETH0 e ETH1). Essas portas desempenham papéis diferentes com base na arquitetura host-contêiner:
| Porta | Função | Descrição |
|---|---|---|
| ETH0 | Interface do contêiner (LXC) | Esta interface é mapeada diretamente (passthrough) do hardware para o contêiner LXC através da configuração de rede LXC do host. O contêiner OpenWrt tem controle total sobre esta interface, gerenciando-a como uma porta WAN ou LAN padrão. Todo o tráfego de nível aplicativo (uplink LoRaWAN, MQTT, acesso Web UI, etc.) flui por esta porta. |
| ETH1 | Interface do host (Debian) | Esta interface é gerenciada pelo sistema host Debian. É utilizada para tarefas de gerenciamento ao nível do host, como acesso SSH, operações de gerenciamento de contêineres, atualizações de firmware e comunicação de monitoramento UPS. Permanece isolada da pilha de rede do contêiner. |
Esta separação garante que, mesmo se a rede do contêiner estiver mal configurada ou inacessível, a interface de gerenciamento do host permanece acessível para recuperação e manutenção.
- Arquivos de configuração:
/etc/config/rs485-module(serial, MQTT, protocolo) - Serviços:
rs485-module,rs485-modbus - UI: Aplicativo LuCI RS485 (Configurações seriais, Configurações de protocolo, Configurações MQTT, Log MQTT)
O módulo RS485 suporta protocolos industriais incluindo Modbus RTU e BACnet MS/TP:
- Modbus RTU: Polling e análise de registradores Modbus via interface serial RS485, com encaminhamento de dados através de uplink/downlink MQTT.
- BACnet MS/TP: Suporte ao protocolo BACnet sobre RS485 para integração de automação predial (configuração Web em andamento).
Este projeto utiliza três feeds OpenWrt personalizados. Eles são definidos em feeds.conf.default e instalados no sistema de compilação OpenWrt via ./scripts/feeds update && ./scripts/feeds install.
Integração do ecossistema ChirpStack LoRaWAN, incluindo o servidor de rede, daemon concentrador, packet forwarders e seus frontends LuCI.
| Pacote | Descrição |
|---|---|
chirpstack |
Servidor de rede ChirpStack LoRaWAN |
chirpstack-concentratord |
Daemon packet forwarder do concentrador (com builds por hardware) |
chirpstack-mqtt-forwarder |
Packet forwarder baseado em MQTT (variantes single / slot1 / slot2 / mesh) |
chirpstack-udp-forwarder |
Packet forwarder baseado em UDP (variantes single / slot1 / slot2) |
chirpstack-gateway-mesh |
Extensão de rede mesh LoRaWAN |
chirpstack-rest-api |
Serviço de API REST para ChirpStack |
lorawan-devices |
Perfis de dispositivos LoRaWAN e definições de codecs |
node-red |
Plataforma de automação visual Node-RED |
libloragw-sx1301 / sx1302 / 2g4 |
Bibliotecas HAL LoRa Semtech |
luci-app-chirpstack-* |
Interfaces Web LuCI para todos os componentes ChirpStack |
luci-theme-argon |
Tema Argon para LuCI |
Integração de hardware do gateway e serviços de sistema backend.
| Pacote | Descrição |
|---|---|
lora |
Serviço de pilha de rádio LoRa (Rust) |
packetforwarder |
Packet forwarder LoRa |
chirpstack-concentratord-target-seeed-gateway |
Build de concentrador específico para Seeed gateway |
chirpstack-gateway-bridge |
Bridge de gateway ChirpStack (backend MQTT/UDP) |
basicstation_ubus |
Protocolo Basic Station com serviço RPC ubus |
lte-serve |
Serviço de gerenciamento de módulo celular LTE |
rs485-module |
Serviço de comunicação serial RS485 (Rust) |
rs485-modbus |
Implementação do protocolo Modbus RS485 (Rust) |
bacnet-stack |
Pilha de protocolo BACnet para automação predial |
ups-module |
Serviço de gerenciamento de energia UPS (Rust) |
hardware-info |
Leitor EEPROM para SN, EUI e informações de hardware do gateway |
ubus-serve |
Serviço RPC ubus para gerenciamento de sistema |
wifi-module |
Configuração WiFi automática via detecção de drive USB |
Aplicativos de interface Web LuCI e tema para gerenciamento do gateway.
| Pacote | Descrição |
|---|---|
luci-app-gateway |
Configuração principal do sistema de gateway |
luci-app-lora |
Status e configuração de rádio LoRa |
luci-app-chirpstack-concentratord-target-seeed-gateway |
Configuração do concentrador Seeed gateway |
luci-app-lte |
Configuração celular LTE/4G |
luci-app-multiwan |
Failover Multi-WAN e balanceamento de carga |
luci-app-routing |
Configuração de roteamento de rede |
luci-app-rs485 |
Configuração de interface RS485/Modbus |
luci-app-bacnet |
Configuração de protocolo BACnet |
luci-app-ups |
Gerenciamento de energia UPS |
luci-app-ota |
Atualização OTA de firmware |
luci-app-terminal |
Console terminal baseado na Web |
luci-theme-sensecap |
Tema personalizado SenseCAP |
Problema: Erros durante a compilação
Solução:
- Verificar espaço em disco (> 50GB recomendado)
- Garantir que os submódulos estão atualizados:
git submodule update --init --recursive - A compilação Rust é lenta, desative o download CI LLVM para acelerar
Problema: Não é possível acessar a interface Web após o início do contêiner
Solução:
- Verificar o status do contêiner LXC:
sudo lxc-ls -f - Visualizar logs do contêiner:
sudo lxc-info -n SenseCAP - Verificar se a configuração de rede está correta
Problema: Sem dados na página de status LoRa
Solução:
- Verificar o status do serviço concentrador
- Visualizar logs:
logread | grep -i lora - Verificar se a configuração do gateway está correta
Este projeto segue os requisitos de licença do projeto OpenWrt.
Issues e Pull Requests são bem-vindos!





