# Conectando o Streamlit

Neste artigo, vamos percorrer o processo de criação de um dashboard usando o Streamlit. Para torná-lo mais ilustrativo, criaremos um dashboard que se conecta ao banco de dados analítico e monitora o status dos veículos em tempo real.

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

## Recursos do dashboard

* Exibir o número total de objetos
* Visualizar status de movimento (em movimento/parado/estacionado)
* Visualizar os 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 movimentação e status de conexão
* Atualização automática dos dados a cada 5 minutos
* Alternar entre temas claro e escuro

## Requisitos técnicos

* Python 3.8+
* Acesso à Internet para conexão com o banco de dados
* Mínimo de 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 ter o Python 3.8 ou superior instalado. Você pode verificar a versão com o comando `python --version`.
{% endhint %}

### 3. Instale as 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 do lakehouse</th><th>Localização da 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>O 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>Schema</strong></td><td><code>DB_SCHEMA</code> em <code>.env</code> arquivo</td><td>Especifique o schema (<strong>raw_business_data</strong> ou <strong>raw_telematics_data</strong>)</td></tr></tbody></table>

### 2. Obtenção de credenciais

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

{% hint style="info" %}
A `.env` 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 esse arquivo.
{% endhint %}

## Executando o dashboard

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

```
streamlit run moving_status_dashboard.py
```

Após a inicialização, você verá uma mensagem semelhante a:

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

  URL local: http://localhost:8501
  URL de rede: http://192.168.1.5:8501
```

Abra a URL especificada no navegador. O dashboard 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 dashboard ou criar novos componentes:

### 1. Modificando o dashboard existente

O Streamlit recarrega automaticamente o aplicativo 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 nativas 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 do Streamlit
st.write(f"Debug: {your_variable}")

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

# Saída estendida de dados
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 allowlist 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 por uma, começando com streamlit

### Outros problemas

Aqui estão algumas dicas que podem ajudá-lo a corrigir problemas comuns:

1. Atualize as dependências: `pip install -r requirements.txt --upgrade`
2. Verifique a compatibilidade com 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 a `--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 a seção [Visão geral do esquema](/docs/analytics/pt-br/iot-query/schema-overview.md) para entender melhor a estrutura e as relações dos dados.
* Comece com consultas simples focadas em entidades de negócio específicas antes de criar dashboards complexos - confira nossas [consultas de exemplo](/docs/analytics/pt-br/example-queries.md) para referência.

### **Suporte**

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://navixy.com/docs/analytics/pt-br/iot-query/connection-setup/selecting-bi-tools/connecting-streamlit.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
