# Conectando o Streamlit

Neste artigo, vamos percorrer o processo de construir um painel usando Streamlit. Para tornar mais ilustrativo, criaremos um painel que se conecta ao banco de dados analítico e monitora o status em tempo real dos veículos.

{% hint style="info" %}
Este guia faz parte do **Consulta IoT** conjunto de documentação e cobre especificamente a conexão do Power BI ao seu data warehouse. Se você ainda está decidindo qual ferramenta de BI usar, consulte o [Selecionando ferramentas de BI](https://www.navixy.com/docs/analytics/pt-br/iot-query/connection-setup/selecting-bi-tools) visão geral.
{% endhint %}

## Recursos do painel

* Exibir número total de objetos
* Visualizar status de movimento (em movimento/parado/estacionado)
* Visualizar status de conexão (ativo/ocioso/offline)
* Tabela detalhada com o status atual de todos os veículos
* Filtragem por tipo de veículo, grupo, status de movimento e status de conexão
* Atualização automática de dados a cada 5 minutos
* Alternar entre temas claro e escuro

## Requisitos técnicos

* Python 3.8+
* Acesso à Internet para conexão ao banco de dados
* Mínimo 2 GB de RAM

## Instalação e configuração

### 1. Clone o repositório

```sh
git clone https://github.com/SquareGPS/bi-intergrations.git
```

### 2. Crie um ambiente virtual

```
# Windows
python -m venv venv
venv\Scripts\activate

# Linux/macOS
python -m venv venv
source venv/bin/activate
```

{% hint style="danger" %}
Certifique-se de que você tenha Python 3.8 ou superior instalado. Você pode verificar a versão com o comando `python --version`.
{% endhint %}

### 3. Instalar dependências

Após ativar o ambiente virtual, instale todas as bibliotecas necessárias:

```sh
pip install -r requirements.txt
```

## Conexão com o banco de dados

### 1. Crie um arquivo de configuração

Crie um `.env` arquivo no diretório raiz do projeto:

```
DB_HOST=your_db_host
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASS=your_db_password
DB_PORT=5432
DB_SCHEMA=raw_business_data
```

#### Referência de parâmetros de conexão

<table><thead><tr><th width="188.81817626953125">Parâmetro Lakehouse</th><th>Local de configuração do Streamlit</th><th>Observações</th></tr></thead><tbody><tr><td><strong>Host</strong></td><td><code>DB_HOST</code> em <code>.env</code> arquivo</td><td>O endereço do servidor de banco de dados fornecido no seu e-mail de boas-vindas</td></tr><tr><td><strong>Porta</strong></td><td><code>DB_PORT</code> em <code>.env</code> arquivo</td><td>Padrão é 5432 para PostgreSQL</td></tr><tr><td><strong>Nome do banco de dados</strong></td><td><code>DB_NAME</code> em <code>.env</code> arquivo</td><td>O nome do banco de dados atribuído a você</td></tr><tr><td><strong>Nome de usuário</strong></td><td><code>DB_USER</code> em <code>.env</code> arquivo</td><td>Seu nome de usuário do banco de dados</td></tr><tr><td><strong>Senha</strong></td><td><code>DB_PASS</code> em <code>.env</code> arquivo</td><td>Sua senha segura do banco de dados</td></tr><tr><td><strong>Modo SSL</strong></td><td>String de conexão no código Python</td><td>Defina como <strong>require</strong> na string de conexão</td></tr><tr><td><strong>Esquema</strong></td><td><code>DB_SCHEMA</code> em <code>.env</code> arquivo</td><td>Especifique o esquema (<strong>raw_business_data</strong> ou <strong>raw_telematics_data</strong>)</td></tr></tbody></table>

### 2. Obtenção de credenciais

Solicite credenciais para conexão ao banco de dados de demonstração entrando em contato com o administrador.

{% hint style="info" %}
O `.env` o arquivo não deve ser incluído no controle de versão (GitHub) para garantir a segurança das credenciais. O `.gitignore` arquivo já está configurado para excluir este arquivo.
{% endhint %}

## Executando o painel

Após configurar a conexão com o banco de dados, inicie o painel com o comando:

```
streamlit run moving_status_dashboard.py
```

Após o lançamento, você verá uma mensagem semelhante a:

```
  Agora você pode visualizar seu aplicativo Streamlit no seu navegador.

  URL Local: http://localhost:8501
  URL de Rede: http://192.168.1.5:8501
```

Abra a URL especificada no seu navegador. O painel estará disponível em <http://localhost:8501> (ou na URL de rede se você quiser abri-lo a partir de outro dispositivo na rede).

## Desenvolvendo componentes personalizados

Se você quiser modificar o painel ou criar novos componentes:

### 1. Modificando o painel existente

O Streamlit recarrega automaticamente a aplicação quando você altera o código-fonte. Basta editar o `moving_status_dashboard.py` arquivo e salvar suas alterações.

### 2. Adicionando novas visualizações

Para adicionar novos gráficos e diagramas, use bibliotecas:

* Plotly: `import plotly.express as px` ou `import plotly.graph_objects as go`
* Visualizações internas do Streamlit: `st.bar_chart()`, `st.line_chart()`, etc.

Exemplo de adição de um novo gráfico:

```python
import plotly.express as px

# Obter dados do banco de dados
df = ... # sua consulta ao banco de dados

# Criar gráfico
fig = px.pie(df, values='count', names='status', title='Vehicle Statuses')
st.plotly_chart(fig, use_container_width=True)
```

### 3. Depuração

Para depuração, use

```python
# Saída para a interface Streamlit
st.write(f"Debug: {your_variable}")

# Saída para o console
print(f"Console debug: {your_variable}")

# Saída de dados estendida
st.json(data_dict)
st.dataframe(pandas_dataframe)
```

## Solução de problemas

### Problemas de conexão com o banco de dados

* **Erro de conexão:** Verifique a correção das credenciais no `.env` arquivo e a disponibilidade do banco de dados
* **Erro de SSL:** Certifique-se de que seu IP esteja na lista de permissões para acesso ao banco de dados
* **Erros de timeout:** Verifique a estabilidade da sua conexão com a internet e as configurações do firewall

### Problemas de dependência

**Erro ao instalar psycopg2-binary:**

* Windows: `pip install pipwin && pipwin install psycopg2-binary`
* Linux: `sudo apt install python3-dev libpq-dev`
* macOS: `brew install postgresql`

**Conflitos de dependência:**

* Crie um novo ambiente virtual
* Instale as dependências uma a uma, começando com streamlit

### Outros problemas

Aqui estão alguns truques que podem ajudá-lo a corrigir problemas comuns:

1. Atualizar dependências: `pip install -r requirements.txt --upgrade`
2. Verificar compatibilidade do Python: `python --version` (deve ser 3.8+)
3. Ao alterar o código, inclua mensagens de depuração:

```
st.write(f"Debug: {your_variable}")
```

4. Erros de cache do Streamlit: pare a aplicação e execute com `--clear_cache` flag:

```
streamlit run moving_status_dashboard.py --clear_cache
```

## Próximos passos

Após conectar com sucesso o Power BI à sua instância Private Telematics Lakehouse, recomendamos que você:

* Explore os schemas de dados disponíveis revisando o [Visão geral do esquema](https://www.navixy.com/docs/analytics/pt-br/iot-query/schema-overview) seção para entender melhor a estrutura e os relacionamentos dos dados.
* Comece com consultas simples focadas em entidades de negócio específicas antes de construir painéis complexos - consulte nossas [consultas de exemplo](https://www.navixy.com/docs/analytics/pt-br/example-queries) para referência.

### **Suporte**

Para questões técnicas ou solicitações de acesso ao banco de dados de demonstração, entre em contato com: <support@squaregps.com>
