> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/analytics/pt-br/iot-query/connection-setup/selecting-bi-tools/connecting-streamlit.md).

# Conectando o Streamlit

Crie aplicativos personalizados do Streamlit conectados ao IoT Query via PostgreSQL. Consulte dados do rastreador em Python e exiba o status da frota em tempo real em painéis personalizados

Neste artigo, vamos percorrer o processo de criação de um painel usando Streamlit. Para torná-lo 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 da **IoT Query** suíte de documentação e cobre especificamente a conexão do Power BI ao seu data warehouse. Se você ainda estiver decidindo qual ferramenta de BI usar, consulte a [Selecionando ferramentas de BI](/docs/analytics/pt-br/iot-query/connection-setup/selecting-bi-tools.md) Visão geral.
{% endhint %}

## Funcionalidades do painel

* Exibir o número total de objetos
* Visualize 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 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/Navixy/bi-integrations.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. Instalar 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. Criar um arquivo de configuração

Crie um `.env` arquivo na 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>Local da configuração do Streamlit</th><th>Notas</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>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. Obtendo credenciais

Solicite credenciais para conectar-se 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` o arquivo já está configurado para excluir este arquivo.
{% endhint %}

## Executando o painel

Depois de configurar a conexão com o banco de dados, inicie o painel com o comando:

```
streamlit run Em movimento_status_dashboard.py
```

Após iniciar, você verá uma mensagem semelhante a:

```
  Agora você pode visualizar seu aplicativo do 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 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` arquive e salve suas alterações.

### 2. Adicionar 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 integradas do Streamlit: `st.bar_chart()`, `st.line_chart()`, etc.

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

```python
import plotly.express as px

# Get data from the database
df = ... # your database query

# Create chart
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
# Output to Streamlit interface
st.write(f"Debug: {your_variable}")

# Output to console
print(f"Console debug: {your_variable}")

# Extended data output
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 tempo limite:** 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:**

* Criar um novo ambiente virtual
* Instalar dependências uma a uma, começando com streamlit

### Outros problemas

Aqui estão alguns truques que podem ajudar você a corrigir problemas comuns:

1. Atualizar dependências: `pip install -r requirements.txt --upgrade`
2. Verificar 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 o `--clear_cache` bandeira:

```
streamlit run Em movimento_status_dashboard.py --clear_cache
```

## Próximas etapas

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

* Explore os esquemas de dados disponíveis revisando a [Visão geral do esquema](/docs/analytics/pt-br/iot-query/schema-overview.md) seção para entender melhor a estrutura e os relacionamentos dos dados.
* Comece com consultas simples focadas em entidades de negócios específicas antes de criar painéis complexos - confira nossas [consultas de exemplo](/docs/analytics/pt-br/example-queries.md) como 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
