You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
753 lines
29 KiB
753 lines
29 KiB
# Guia de Solução de Problemas
|
|
|
|
Este guia ajuda você a resolver problemas comuns ao trabalhar com o currículo IoT para Iniciantes. Os problemas estão organizados por categoria para facilitar a navegação.
|
|
|
|
## Índice
|
|
|
|
- [Problemas de Instalação](../..)
|
|
- [Instalação do Python](../..)
|
|
- [VS Code e Extensões](../..)
|
|
- [PlatformIO (Wio Terminal)](../..)
|
|
- [Bibliotecas Grove](../..)
|
|
- [Problemas de Hardware](../..)
|
|
- [Raspberry Pi](../..)
|
|
- [Wio Terminal](../..)
|
|
- [Dispositivo Virtual (CounterFit)](../..)
|
|
- [Problemas de Conectividade](../..)
|
|
- [Conexão WiFi](../..)
|
|
- [Serviços em Nuvem](../..)
|
|
- [MQTT](../..)
|
|
- [Problemas com Sensores e Atuadores](../..)
|
|
- [Sensores Grove](../..)
|
|
- [Câmera](../..)
|
|
- [Microfone e Alto-falante](../..)
|
|
- [Problemas no Ambiente de Desenvolvimento](../..)
|
|
- [VS Code](../..)
|
|
- [Ambientes Virtuais Python](../..)
|
|
- [Dependências](../..)
|
|
- [Problemas de Desempenho](../..)
|
|
- [Mensagens de Erro Comuns](../..)
|
|
- [Obtendo Ajuda](../..)
|
|
|
|
---
|
|
|
|
## Problemas de Instalação
|
|
|
|
### Instalação do Python
|
|
|
|
#### Problema: Versão do Python muito antiga
|
|
**Erro:** `Python 3.6 ou superior é necessário`
|
|
|
|
**Solução:**
|
|
1. Baixe a última versão do Python 3 em [python.org](https://www.python.org/downloads/)
|
|
2. Durante a instalação no Windows, marque "Add Python to PATH"
|
|
3. Verifique a instalação:
|
|
```bash
|
|
python3 --version
|
|
```
|
|
|
|
#### Problema: Múltiplas versões do Python causando conflitos
|
|
**Sintomas:** Versão errada do Python executando, pacotes instalando no local errado
|
|
|
|
**Solução:**
|
|
- **Windows:** Use `py -3` em vez de `python` para chamar explicitamente Python 3
|
|
- **macOS/Linux:** Use `python3` em vez de `python`
|
|
- Sempre crie e use ambientes virtuais para os projetos
|
|
|
|
#### Problema: Comando pip não encontrado
|
|
**Erro:** `'pip' não é reconhecido como um comando interno ou externo`
|
|
|
|
**Solução:**
|
|
1. Tente `pip3` em vez de `pip`
|
|
2. Ou use `python -m pip` ou `python3 -m pip`
|
|
3. Assegure que o Python foi adicionado ao PATH (reinstale o Python e marque a opção)
|
|
|
|
### VS Code e Extensões
|
|
|
|
#### Problema: Extensão Pylance não funciona
|
|
**Sintomas:** Sem IntelliSense para Python, sem auto-completar ou verificação de tipos
|
|
|
|
**Solução:**
|
|
1. Abra a Paleta de Comandos do VS Code (`Ctrl+Shift+P` ou `Cmd+Shift+P`)
|
|
2. Execute "Python: Select Interpreter"
|
|
3. Escolha o interpretador Python correto (ambiente virtual se estiver usando um)
|
|
4. Recarregue a janela do VS Code
|
|
|
|
#### Problema: VS Code não detecta ambiente virtual
|
|
**Sintomas:** Interpretador Python errado selecionado
|
|
|
|
**Solução:**
|
|
1. Certifique-se de que ativou o ambiente virtual no terminal
|
|
2. Abra a Paleta de Comandos e execute "Python: Select Interpreter"
|
|
3. Selecione o interpretador na pasta `.venv`
|
|
4. Verifique a barra de status (canto inferior esquerdo) mostra a versão correta do Python
|
|
|
|
### PlatformIO (Wio Terminal)
|
|
|
|
#### Problema: Falha na instalação do PlatformIO
|
|
**Erro:** Diversos erros durante a instalação do PlatformIO
|
|
|
|
**Solução:**
|
|
1. Certifique-se que o VS Code está atualizado
|
|
2. Instale a extensão C/C++ primeiro
|
|
3. Reinicie o VS Code após instalar o PlatformIO
|
|
4. Verifique sua conexão com a internet (PlatformIO baixa arquivos grandes)
|
|
|
|
#### Problema: Placa não detectada pelo PlatformIO
|
|
**Sintomas:** Não consegue enviar código para o Wio Terminal
|
|
|
|
**Solução:**
|
|
1. Tente outro cabo USB (alguns cabos são só para carga)
|
|
2. Verifique o Gerenciador de Dispositivos (Windows) ou `ls /dev/tty*` (macOS/Linux)
|
|
3. Instale ou atualize os drivers USB
|
|
4. Tente outra porta USB
|
|
5. Deslize o interruptor de energia no Wio Terminal duas vezes rapidamente para entrar no modo bootloader
|
|
|
|
#### Problema: Erros de compilação no PlatformIO
|
|
**Erro:** `fatal error: Arduino.h: No such file or directory`
|
|
|
|
**Solução:**
|
|
1. Apague a pasta `.pio` em seu projeto
|
|
2. Execute "PlatformIO: Rebuild" na Paleta de Comandos
|
|
3. Certifique-se que o `platformio.ini` tem a configuração correta da placa:
|
|
```ini
|
|
[env:seeed_wio_terminal]
|
|
platform = atmelsam
|
|
board = seeed_wio_terminal
|
|
framework = arduino
|
|
```
|
|
|
|
### Bibliotecas Grove
|
|
|
|
#### Problema: Importação da biblioteca Grove falha no Raspberry Pi
|
|
**Erro:** `ModuleNotFoundError: No module named 'grove'`
|
|
|
|
**Solução:**
|
|
1. Reinstale as bibliotecas Grove:
|
|
```bash
|
|
cd ~
|
|
git clone https://github.com/Seeed-Studio/grove.py
|
|
cd grove.py
|
|
sudo pip3 install .
|
|
```
|
|
2. Se estiver usando ambiente virtual, pode precisar instalar globalmente ou copiar as bibliotecas
|
|
3. Verifique se o I2C está habilitado: `sudo raspi-config nonint do_i2c 0`
|
|
|
|
#### Problema: Sensor Grove não detectado
|
|
**Erro:** `IOError: [Errno 121] Remote I/O error`
|
|
|
|
**Solução:**
|
|
1. Verifique as conexões físicas (assegure-se que o cabo Grove está inserido completamente)
|
|
2. Verifique se o sensor está conectado na porta correta (analógica, digital, I2C, UART)
|
|
3. Execute `i2cdetect -y 1` para ver se o dispositivo aparece no barramento I2C
|
|
4. Tente um cabo Grove diferente
|
|
5. Assegure que o Grove Base Hat está corretamente instalado nos pinos GPIO do Raspberry Pi
|
|
|
|
---
|
|
|
|
## Problemas de Hardware
|
|
|
|
### Raspberry Pi
|
|
|
|
#### Problema: Raspberry Pi não liga
|
|
**Sintomas:** Sem display, sem atividade de LED, ou tela arco-íris
|
|
|
|
**Solução:**
|
|
1. **Verifique a fonte de alimentação:** Use fonte USB-C oficial 5V 3A para Pi 4
|
|
2. **Problemas com cartão SD:**
|
|
- Reformatar o cartão SD e reinstalar o Raspberry Pi OS
|
|
- Tente outro cartão SD (use marcas recomendadas)
|
|
- Certifique-se que o cartão SD está bem inserido
|
|
3. **Verifique a conexão HDMI:** Teste ambas as portas HDMI do Pi 4, use a porta HDMI mais próxima da energia
|
|
|
|
#### Problema: Não é possível acessar SSH no Raspberry Pi
|
|
**Sintomas:** Conexão recusada ou timeout
|
|
|
|
**Solução:**
|
|
1. Habilite SSH:
|
|
- Ao gravar o cartão SD com Raspberry Pi Imager, configure o SSH nas opções avançadas
|
|
- Ou crie um arquivo vazio chamado `ssh` (sem extensão) na partição de boot
|
|
2. Encontre o endereço IP do Pi:
|
|
- Verifique dispositivos conectados no roteador
|
|
- Use `ping raspberrypi.local` (se mDNS funcionar)
|
|
- Use ferramentas de varredura na rede como `nmap` ou Angry IP Scanner
|
|
3. Verifique a rede:
|
|
- Certifique-se que o Pi está na mesma rede do seu computador
|
|
- Tente conexão ethernet em vez de WiFi
|
|
4. Verifique usuário/senha (padrão: usuário `pi`, senha `raspberry`)
|
|
|
|
#### Problema: Grove Base Hat não reconhecido
|
|
**Sintomas:** Sensores não funcionam, erros I2C
|
|
|
|
**Solução:**
|
|
1. Assegure que o Base Hat está corretamente conectado em todos os pinos GPIO
|
|
2. Verifique pinos tortos na Pi ou Base Hat
|
|
3. Habilite a interface I2C:
|
|
```bash
|
|
sudo raspi-config nonint do_i2c 0
|
|
sudo reboot
|
|
```
|
|
4. Verifique se o I2C está funcionando: `i2cdetect -y 1`
|
|
|
|
#### Problema: Raspberry Pi está lento
|
|
**Sintomas:** Interface travada, resposta lenta
|
|
|
|
**Solução:**
|
|
1. Verifique velocidade do cartão SD (use Classe 10 ou melhor, ou SSD via USB)
|
|
2. Libere espaço em disco: `df -h` para checar, delete arquivos desnecessários
|
|
3. Reduza memória da GPU em `raspi-config` se não estiver usando câmera/display intensamente
|
|
4. Feche aplicações desnecessárias
|
|
5. Considere upgrade para Pi 4 com mais RAM se estiver usando Pi 3 ou anterior
|
|
|
|
### Wio Terminal
|
|
|
|
#### Problema: Tela do Wio Terminal fica preta
|
|
**Sintomas:** Sem saída de display após carregar código
|
|
|
|
**Solução:**
|
|
1. Verifique se o código inicializa o display (biblioteca TFT_eSPI)
|
|
2. Atualize firmware do Wio Terminal em [Seeed Wiki](https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/)
|
|
3. Adicione código de inicialização do display:
|
|
```cpp
|
|
#include <TFT_eSPI.h>
|
|
TFT_eSPI tft;
|
|
tft.begin();
|
|
tft.fillScreen(TFT_BLACK);
|
|
```
|
|
4. Tente enviar um sketch de exemplo do PlatformIO para testar hardware
|
|
|
|
#### Problema: WiFi não funciona no Wio Terminal
|
|
**Sintomas:** Não conecta ao WiFi, erros de rede
|
|
|
|
**Solução:**
|
|
1. **Atualize o firmware WiFi:** Siga o [guia de atualização do firmware WiFi do Wio Terminal](https://wiki.seeedstudio.com/Wio-Terminal-Network-Overview/)
|
|
2. **Verifique credenciais WiFi:** Certifique-se que SSID e senha estão corretos
|
|
3. **Banda WiFi:** Wio Terminal suporta só WiFi 2.4GHz (não 5GHz)
|
|
4. **Força do sinal:** Aproximar do roteador
|
|
5. **Configurações do roteador:** Algumas redes enterprise/WPA-Enterprise podem não funcionar
|
|
|
|
#### Problema: Wio Terminal não é reconhecido pelo computador
|
|
**Sintomas:** Dispositivo USB não detectado
|
|
|
|
**Solução:**
|
|
1. **Teste outro cabo USB:** Use cabo de dados, não só de carga
|
|
2. **Entre no modo bootloader:** Deslize o interruptor de energia para baixo duas vezes rapidamente
|
|
- LED azul deve piscar, dispositivo aparece como "Arduino" no Gerenciador de Dispositivos
|
|
3. **Instale drivers (Windows):**
|
|
- Baixe e instale o [driver USB Seeed](https://wiki.seeedstudio.com/Driver_for_Seeeduino/)
|
|
4. **Teste outra porta USB:** Evite hubs USB, use conexão direta
|
|
5. **Atualize drivers USB do sistema**
|
|
|
|
#### Problema: Sensores não funcionam no Wio Terminal
|
|
**Sintomas:** Sensores Grove não retornam dados
|
|
|
|
**Solução:**
|
|
1. Verifique conexões dos cabos Grove
|
|
2. Certifique-se de usar a porta Grove correta (esquerda ou direita)
|
|
3. Inclua as bibliotecas corretas para o sensor
|
|
4. Verifique requisitos de energia do sensor
|
|
5. Teste sensor com código de exemplo da biblioteca
|
|
|
|
### Dispositivo Virtual (CounterFit)
|
|
|
|
#### Problema: App CounterFit não inicia
|
|
**Erro:** Diversos erros Python ao iniciar o CounterFit
|
|
|
|
**Solução:**
|
|
1. Certifique-se que o ambiente virtual está ativado
|
|
2. Instale/reinstale o CounterFit:
|
|
```bash
|
|
pip install CounterFit
|
|
```
|
|
3. Verifique se a porta 5000 não está em uso:
|
|
- Windows: `netstat -ano | findstr :5000`
|
|
- macOS/Linux: `lsof -i :5000`
|
|
4. Mate o processo que usa a porta 5000 ou use outra porta:
|
|
```bash
|
|
counterfit --port 5001
|
|
```
|
|
|
|
#### Problema: Não consegue conectar ao CounterFit via código
|
|
**Erro:** Conexão recusada ou timeout
|
|
|
|
**Solução:**
|
|
1. Verifique se o CounterFit está rodando: Abra navegador em `http://127.0.0.1:5000`
|
|
2. Verifique se a URL de conexão no código corresponde ao endereço do CounterFit
|
|
3. Assegure que firewall não está bloqueando a conexão
|
|
4. Tente reiniciar o app CounterFit e seu código
|
|
|
|
#### Problema: Sensores não aparecem no CounterFit
|
|
**Sintomas:** Sensores criados não aparecem na interface do CounterFit
|
|
|
|
**Solução:**
|
|
1. Crie os sensores na interface do CounterFit antes de rodar o código
|
|
2. Atualize a página do navegador
|
|
3. Verifique se o tipo do sensor corresponde ao esperado pelo código
|
|
4. Limpe o cache do navegador
|
|
|
|
---
|
|
|
|
## Problemas de Conectividade
|
|
|
|
### Conexão WiFi
|
|
|
|
#### Problema: Dispositivo não conecta ao WiFi
|
|
**Sintomas:** Timeout de conexão, falha de autenticação
|
|
|
|
**Solução:**
|
|
1. **Verifique SSID e senha:** Confirme as credenciais estão corretas
|
|
2. **Banda WiFi:** A maioria dos dispositivos IoT só suporta 2.4GHz (não 5GHz)
|
|
3. **Configurações do roteador:**
|
|
- Desative isolamento AP se estiver habilitado
|
|
- Use segurança WPA2-PSK (evite WPA3, WEP ou redes abertas)
|
|
- Certifique-se que DHCP está habilitado
|
|
4. **Redes ocultas:** Se o SSID estiver oculto, pode ser necessário configurar explicitamente
|
|
5. **Força do sinal:** Aproximar o dispositivo do roteador
|
|
6. **Interferências:** Outros dispositivos, micro-ondas ou paredes podem interferir
|
|
|
|
#### Problema: Queda frequente na conexão WiFi
|
|
**Sintomas:** Conectividade intermitente
|
|
|
|
**Solução:**
|
|
1. Verifique estabilidade do roteador e considere reiniciar
|
|
2. Atualize firmware do dispositivo
|
|
3. Use IP estático em vez de DHCP
|
|
4. Reduza distância para o roteador ou adicione repetidor WiFi
|
|
5. Verifique interferência de outros dispositivos
|
|
6. Certifique que a fonte de alimentação está adequada (especialmente para Raspberry Pi)
|
|
|
|
### Serviços em Nuvem
|
|
|
|
#### Problema: Não consegue conectar ao Azure IoT Hub
|
|
**Erro:** Falha na autenticação, conexão recusada
|
|
|
|
**Solução:**
|
|
1. **Verifique credenciais:**
|
|
- Cheque se a string de conexão está correta
|
|
- Assegure que não há espaços ou quebras de linha extras na string
|
|
2. **Verifique registro do dispositivo:** O dispositivo deve estar registrado no IoT Hub
|
|
3. **Firewall/proxy:** Confirme que saídas MQTT (porta 8883) ou HTTPS (porta 443) estão liberadas
|
|
4. **Região do IoT Hub:** Confirme que o IoT Hub está ativo e não em região diferente causando latência
|
|
5. **Limites de cota:** Verifique se limites do nível gratuito foram ultrapassados
|
|
6. **Teste a conexão:**
|
|
```bash
|
|
az iot hub device-identity show-connection-string --hub-name YourIoTHub --device-id YourDevice
|
|
```
|
|
|
|
#### Problema: Azure Functions não são acionadas
|
|
**Sintomas:** Mensagens enviadas, mas função não executa
|
|
|
|
**Solução:**
|
|
1. Verifique se o Function App está rodando (não parado)
|
|
2. Confira string de conexão nas configurações do Function App
|
|
3. Consulte os logs da função no Azure Portal
|
|
4. Certifique-se que o endpoint compatível com Event Hub está configurado corretamente
|
|
5. Verifique se o formato da mensagem corresponde ao esperado pela função
|
|
6. Avalie o plano de serviço do Function App (consumo vs dedicado)
|
|
|
|
### MQTT
|
|
#### Problema: Falha na conexão MQTT
|
|
**Erro:** Conexão recusada, autenticação falhou
|
|
|
|
**Solução:**
|
|
1. **Endereço do broker:** Verifique se a URL/IP do broker está correta
|
|
2. **Porta:** Confira o número da porta (1883 para não criptografado, 8883 para TLS)
|
|
3. **Autenticação:** Verifique nome de usuário/senha se necessário
|
|
4. **TLS/SSL:** Certifique-se de que os certificados são válidos e confiáveis
|
|
5. **Firewall:** Verifique se a porta não está bloqueada
|
|
6. **Teste com cliente MQTT:** Use MQTT Explorer ou mosquitto_pub/sub para testar
|
|
|
|
#### Problema: Mensagens MQTT não recebidas
|
|
**Sintomas:** Mensagens publicadas mas não recebidas pelos assinantes
|
|
|
|
**Solução:**
|
|
1. **Nomes dos tópicos:** Verifique se o tópico do assinante corresponde exatamente ao do publicador
|
|
2. **Nível QoS:** Tente QoS 1 ou 2 em vez de 0
|
|
3. **Curingas (wildcards):** Verifique se os curingas do tópico estão usados corretamente (`+` para um nível, `#` para múltiplos níveis)
|
|
4. **Mensagens retidas:** O publicador pode definir a flag 'retain' para manter a última mensagem
|
|
5. **Tempo de conexão:** Garanta que o assinante conecte antes que as mensagens sejam publicadas
|
|
|
|
---
|
|
|
|
## Problemas com Sensores e Atuadores
|
|
|
|
### Sensores Grove
|
|
|
|
#### Problema: Sensor retorna valores incorretos
|
|
**Sintomas:** Leituras são 0, -1 ou valores sem sentido
|
|
|
|
**Solução:**
|
|
1. **Verifique conexões:** Certifique-se de que o sensor está corretamente conectado
|
|
2. **Porta correta:** Verifique se o sensor está no tipo de porta correto:
|
|
- Sensores analógicos → Portas analógicas (A0, A2, A4)
|
|
- Sensores digitais → Portas digitais (D5, D16, D18, etc.)
|
|
- Sensores I2C → Portas I2C
|
|
3. **Calibração:** Alguns sensores precisam de calibração (umidade do solo, luz)
|
|
4. **Ciclo de energia:** Desconecte e reconecte o sensor
|
|
5. **Datasheet do sensor:** Consulte especificações e requisitos do sensor
|
|
|
|
#### Problema: Sensor capacitivo de umidade do solo sempre lê úmido
|
|
**Sintomas:** Sensor indica alta umidade mesmo quando está seco
|
|
|
|
**Solução:**
|
|
1. **Calibração necessária:** Sensores de solo precisam de calibração:
|
|
- Leia valor no ar (referência seca)
|
|
- Leia valor na água (referência úmida)
|
|
- Faça o mapeamento das leituras entre esses valores
|
|
2. **Verifique revestimento do sensor:** Sensores de umidade podem degradar se o revestimento estiver danificado
|
|
3. **Posicionamento:** Certifique-se de que o sensor está completamente inserido no solo
|
|
|
|
#### Problema: Leituras incorretas de sensor de temperatura/umidade
|
|
**Sintomas:** DHT11/DHT22 mostra temperatura ou umidade erradas
|
|
|
|
**Solução:**
|
|
1. **Posicionamento do sensor:** Evite luz solar direta, fontes de calor ou fluxo de ar
|
|
2. **Tempo de aquecimento:** Aguarde 2 segundos após ligar o sensor antes de ler
|
|
3. **Frequência de leitura:** Sensores DHT precisam de tempo entre leituras (pelo menos 2 segundos)
|
|
4. **Verifique condensação:** Pode afetar as leituras
|
|
5. **Qualidade do sensor:** DHT11 é menos preciso que DHT22
|
|
|
|
### Câmera
|
|
|
|
#### Problema: Câmera não detectada no Raspberry Pi
|
|
**Erro:** `mmal: mmal_vc_component_create: failed to create component 'vc.ril.camera'`
|
|
|
|
**Solução:**
|
|
1. **Habilitar interface da câmera:**
|
|
```bash
|
|
sudo raspi-config
|
|
```
|
|
Vá em Interface Options → Camera → Enable
|
|
2. **Verifique cabo flat:** Confirme que o cabo da câmera está corretamente conectado
|
|
- Lado azul voltado para as portas USB no Pi Zero
|
|
- Lado azul afastado das portas USB no Pi 4
|
|
3. **Atualize firmware:**
|
|
```bash
|
|
sudo apt update
|
|
sudo apt full-upgrade
|
|
sudo reboot
|
|
```
|
|
4. **Teste a câmera:**
|
|
```bash
|
|
raspistill -o test.jpg
|
|
```
|
|
|
|
#### Problema: Imagens da câmera com baixa qualidade
|
|
**Sintomas:** Imagens borradas, escuras ou estouradas
|
|
|
|
**Solução:**
|
|
1. **Foco:** Remova película protetora da lente, ajuste o foco se possível
|
|
2. **Iluminação:** Garanta iluminação adequada
|
|
3. **Configurações da câmera:** Ajuste exposição, ISO, balanço de branco no código
|
|
4. **Estabilidade:** Mantenha a câmera estável, use tripé se necessário
|
|
5. **Resolução:** Não ultrapasse a resolução máxima da câmera
|
|
|
|
### Microfone e Alto-falante
|
|
|
|
#### Problema: Sem áudio de entrada/saída
|
|
**Sintomas:** Microfone não grava, alto-falante não reproduz
|
|
|
|
**Solução:**
|
|
1. **Verifique conexões:** Confirme que os dispositivos de áudio estão corretamente conectados
|
|
2. **Teste hardware:**
|
|
- Alto-falante: `speaker-test -t wav -c 2`
|
|
- Microfone: `arecord -l` para listar, `arecord test.wav` para gravar
|
|
3. **Configurações de volume:** Verifique e ajuste volume:
|
|
```bash
|
|
alsamixer
|
|
```
|
|
4. **Selecione dispositivo de áudio:** Informe o dispositivo correto no código
|
|
5. **Problemas com drivers:** Atualize ALSA ou reinstale drivers de áudio
|
|
|
|
#### Problema: Placa ReSpeaker não funciona
|
|
**Sintomas:** Dispositivo de áudio não detectado
|
|
|
|
**Solução:**
|
|
1. **Instalar drivers:**
|
|
```bash
|
|
git clone https://github.com/HinTak/seeed-voicecard
|
|
cd seeed-voicecard
|
|
sudo ./install.sh
|
|
sudo reboot
|
|
```
|
|
2. **Verificar instalação:** `arecord -l` deve listar o ReSpeaker
|
|
3. **Atualizar firmware:** Algumas versões do Pi OS precisam de atualizações de driver
|
|
4. **Verificar encaixe:** Certifique-se que o hat está corretamente conectado nos pinos GPIO
|
|
|
|
---
|
|
|
|
## Problemas no Ambiente de Desenvolvimento
|
|
|
|
### VS Code
|
|
|
|
#### Problema: Terminal não ativa ambiente virtual automaticamente
|
|
**Sintomas:** Terminal abre mas venv não está ativado
|
|
|
|
**Solução:**
|
|
1. **Selecione interpretador Python:** Command Palette → "Python: Select Interpreter" → Escolha o venv
|
|
2. **Reinicie o VS Code** após selecionar o interpretador
|
|
3. **Verificar configurações:** No `settings.json`, adicione:
|
|
```json
|
|
"python.terminal.activateEnvironment": true
|
|
```
|
|
|
|
#### Problema: Código não roda no dispositivo
|
|
**Sintomas:** Código executa mas não acontece nada no dispositivo
|
|
|
|
**Solução:**
|
|
1. **Verifique se o código está salvo** (observe ponto na aba do arquivo)
|
|
2. **Confira qual Python está rodando:** `which python` ou `where python`
|
|
3. **Para Wio Terminal:** Certifique-se de que código foi carregado via PlatformIO (clique em upload)
|
|
4. **Para Raspberry Pi:** Faça SSH no Pi e execute o código lá
|
|
5. **Verifique a janela de saída** para erros
|
|
|
|
#### Problema: IntelliSense não mostra funções da biblioteca
|
|
**Sintomas:** Sem autocomplete para módulos importados
|
|
|
|
**Solução:**
|
|
1. Garanta que biblioteca está instalada no ambiente atual
|
|
2. Recarregue a janela do VS Code
|
|
3. Verifique se o interpretador Python está correto
|
|
4. Instale stubs de tipos, se disponíveis: `pip install types-<nome-da-biblioteca>`
|
|
|
|
### Ambientes Virtuais Python
|
|
|
|
#### Problema: Não é possível criar ambiente virtual
|
|
**Erro:** `The virtual environment was not created successfully`
|
|
|
|
**Solução:**
|
|
1. **Instale o módulo venv:**
|
|
- Ubuntu/Debian: `sudo apt install python3-venv`
|
|
- macOS: Deve vir incluído no Python
|
|
- Windows: Reinstale Python com todos os componentes
|
|
2. **Verifique instalação do Python:** Certifique-se que o Python está instalado corretamente
|
|
3. **Use caminho completo:** Tente `python3 -m venv .venv` com chamada explícita do python3
|
|
|
|
#### Problema: Pacotes instalados no local errado
|
|
**Sintomas:** Erro de importação após instalar pacote
|
|
|
|
**Solução:**
|
|
1. **Verifique se o venv está ativado:** O prompt deve mostrar `(.venv)`
|
|
2. **Confira localização do pip:** `which pip` deve apontar para `.venv/bin/pip`
|
|
3. **Reinstale no venv:** Ative venv, depois faça `pip install <pacote>`
|
|
4. **Não use sudo com pip** no ambiente virtual
|
|
|
|
#### Problema: Ambiente virtual não é portátil
|
|
**Sintomas:** Venv não funciona após mover ou em outro computador
|
|
|
|
**Solução:**
|
|
1. **Não mova venvs:** Exclua e recrie no novo local
|
|
2. **Use requirements.txt:**
|
|
```bash
|
|
pip freeze > requirements.txt
|
|
pip install -r requirements.txt
|
|
```
|
|
3. **Recrie o venv:**
|
|
```bash
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate # ou activate.bat no Windows
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### Dependências
|
|
|
|
#### Problema: Falha na instalação do pacote
|
|
**Erro:** Vários erros do pip durante instalação
|
|
|
|
**Solução:**
|
|
1. **Atualize pip:**
|
|
```bash
|
|
pip install --upgrade pip
|
|
```
|
|
2. **Instale ferramentas de compilação:**
|
|
- Ubuntu/Debian: `sudo apt install build-essential python3-dev`
|
|
- macOS: `xcode-select --install`
|
|
- Windows: Instale Visual Studio Build Tools
|
|
3. **Verifique conexão com internet**
|
|
4. **Tente outro índice de pacote:** `pip install --index-url https://pypi.org/simple/ <pacote>`
|
|
5. **Instale versão específica:** `pip install <pacote>==<versão>`
|
|
|
|
#### Problema: Conflitos de dependências
|
|
**Erro:** `ERROR: pip's dependency resolver does not currently take into account all the packages that are installed`
|
|
|
|
**Solução:**
|
|
1. **Use ambiente virtual novo** para cada projeto
|
|
2. **Atualize pacotes:** `pip install --upgrade <pacote>`
|
|
3. **Cheque dependências:** Use `pip check` para encontrar conflitos
|
|
4. **Instale versões compatíveis:** Especifique intervalos de versão no requirements.txt
|
|
|
|
---
|
|
|
|
## Problemas de Performance
|
|
|
|
### Problema: Código roda lentamente
|
|
**Sintomas:** Atrasos, timeouts, comportamento não responsivo
|
|
|
|
**Solução:**
|
|
1. **Reduza frequência de leitura dos sensores:** Não leia sensores com muita frequência
|
|
2. **Otimize loops:** Evite espera ativa, use sleep() ou delays
|
|
3. **Problemas de memória:**
|
|
- Feche aplicativos desnecessários
|
|
- Libere espaço de armazenamento
|
|
- Monitore com `top` ou `htop` no Pi
|
|
4. **Velocidade do cartão SD:** Use cartão SD mais rápido ou SSD no Raspberry Pi
|
|
5. **Atrasos de rede:** Use operações assíncronas para chamadas de rede
|
|
|
|
### Problema: Erros de falta de memória
|
|
**Erro:** `MemoryError` ou travamento do sistema
|
|
|
|
**Solução:**
|
|
1. **Para Raspberry Pi:**
|
|
- Feche aplicativos desnecessários
|
|
- Aumente espaço de swap
|
|
- Use sistema operacional mais leve (versão Lite)
|
|
- Atualize RAM (Pi 4 tem opções de 2/4/8GB)
|
|
2. **Para Wio Terminal:**
|
|
- Reduza tamanhos de buffer
|
|
- Use imagens menores
|
|
- Otimize uso de strings
|
|
- Verifique vazamentos de memória (memória não liberada)
|
|
|
|
### Problema: Perda ou corrupção de dados
|
|
**Sintomas:** Mensagens desaparecem, arquivos corrompidos
|
|
|
|
**Solução:**
|
|
1. **Problemas no cartão SD:**
|
|
- Use cartões SD de qualidade (evite genéricos/falsificados)
|
|
- Faça backups regulares
|
|
- Faça desligamento adequado (não desligue puxando energia)
|
|
2. **Overflow de buffer:** Aumente tamanhos dos buffers no código
|
|
3. **Confiabilidade da rede:** Implemente lógica de retry e tratamento de erros
|
|
4. **Qualidade de Serviço:** Use MQTT QoS 1 ou 2 para mensagens importantes
|
|
|
|
---
|
|
|
|
## Mensagens de Erro Comuns
|
|
|
|
### `ModuleNotFoundError: No module named 'X'`
|
|
**Causa:** Pacote não instalado ou ambiente virtual não ativado
|
|
|
|
**Solução:**
|
|
```bash
|
|
pip install X
|
|
```
|
|
|
|
Certifique-se de que o ambiente virtual está ativado primeiro.
|
|
|
|
### `Permission denied` no Linux/macOS
|
|
**Causa:** Precisa de permissões elevadas ou problema com permissões de arquivo
|
|
|
|
**Solução:**
|
|
- Para operações do sistema: Use `sudo`
|
|
- Para pip: NÃO use sudo com venv, ative venv primeiro
|
|
- Para porta serial: Adicione usuário ao grupo dialout: `sudo usermod -a -G dialout $USER`, depois deslogue/login
|
|
|
|
### `OSError: [Errno 98] Address already in use`
|
|
**Causa:** Porta já está sendo usada por outro processo
|
|
|
|
**Solução:**
|
|
1. Encontre processo que usa a porta: `lsof -i :<porta>` ou `netstat -ano | findstr :<porta>`
|
|
2. Mate o processo ou use porta diferente no seu código
|
|
|
|
### `SSL: CERTIFICATE_VERIFY_FAILED`
|
|
**Causa:** Falha na validação do certificado SSL
|
|
|
|
**Solução:**
|
|
1. Atualize certificados: `pip install --upgrade certifi`
|
|
2. Verifique se o horário do sistema está correto: `date`
|
|
3. Apenas para desenvolvimento (não produção): Desative verificação no código
|
|
|
|
### `IndentationError: unexpected indent`
|
|
**Causa:** Problemas de indentação no Python (mistura de tabs/espaços)
|
|
|
|
**Solução:**
|
|
1. Use indentação consistente (4 espaços é padrão Python)
|
|
2. Configure editor para usar espaços em vez de tabs
|
|
3. VS Code: Defina `"editor.insertSpaces": true` e `"editor.tabSize": 4`
|
|
|
|
### `UnicodeDecodeError` ou `UnicodeEncodeError`
|
|
**Causa:** Problemas na codificação de caracteres
|
|
|
|
**Solução:**
|
|
```python
|
|
# Ao ler arquivos
|
|
with open('file.txt', 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
# Ao escrever arquivos
|
|
with open('file.txt', 'w', encoding='utf-8') as f:
|
|
f.write(content)
|
|
```
|
|
|
|
---
|
|
|
|
## Obtendo Ajuda
|
|
|
|
Se você tentou estes passos de solução e ainda tem problemas:
|
|
|
|
### 1. Verifique Recursos Existentes
|
|
- **Documentação:** Revise o [README](README.md) e instruções das lições
|
|
- **Guias de hardware:** Consulte [hardware.md](hardware.md) para informações específicas de hardware
|
|
- **Seeed Studio Wiki:** [Seeed Studio Wiki](https://wiki.seeedstudio.com/) para componentes Grove
|
|
|
|
### 2. Procure por Problemas Similares
|
|
- **GitHub Issues:** Busque por [issues existentes](https://github.com/microsoft/IoT-For-Beginners/issues)
|
|
- **Stack Overflow:** Procure pelas mensagens de erro
|
|
- **Fóruns de dispositivos:** Consulte fóruns do Raspberry Pi ou Arduino
|
|
|
|
### 3. Crie uma Issue no GitHub
|
|
Se não encontrar solução:
|
|
1. Acesse [GitHub Issues](https://github.com/microsoft/IoT-For-Beginners/issues)
|
|
2. Clique em "New Issue"
|
|
3. Informe:
|
|
- Descrição clara do problema
|
|
- Passos para reproduzir
|
|
- Mensagens de erro (texto completo)
|
|
- Versões do hardware/software
|
|
- O que já tentou
|
|
- Capturas de tela se relevante
|
|
|
|
### 4. Participe da Comunidade
|
|
- **Discord:** [Microsoft Foundry Discord](https://discord.gg/nTYy5BXMWG)
|
|
- **Microsoft Learn:** [Microsoft Learn IoT](https://docs.microsoft.com/learn/browse/?products=azure-iot)
|
|
|
|
### 5. Faça Bons Relatórios de Bug
|
|
Um bom relatório de bug inclui:
|
|
- **Ambiente:** SO, versão do Python, hardware usado
|
|
- **Passos para reproduzir:** Passos exatos que causam o problema
|
|
- **Comportamento esperado:** O que deveria acontecer
|
|
- **Comportamento atual:** O que realmente acontece
|
|
- **Mensagens de erro:** Texto completo do erro, não capturas de tela
|
|
- **Código:** Exemplo mínimo de código que reproduz o problema
|
|
|
|
---
|
|
|
|
## Dicas para Prevenção
|
|
|
|
### Melhores Práticas Gerais
|
|
1. **Faça backups:** Backups regulares dos cartões SD/código que funcionam
|
|
2. **Documente as mudanças:** Anote o que funciona nos comentários
|
|
3. **Controle de versão:** Use git para rastrear mudanças no código
|
|
4. **Teste incrementalmente:** Teste pequenas mudanças antes de combinar
|
|
5. **Leia as mensagens de erro:** Elas frequentemente dizem exatamente o que está errado
|
|
6. **Atualize regularmente:** Mantenha o software/firmware atualizado
|
|
7. **Use componentes de qualidade:** Evite cabos/fontes de alimentação baratos
|
|
8. **Energia estável:** Use fonte de alimentação adequada (especialmente no Pi)
|
|
|
|
### Fluxo de Trabalho de Desenvolvimento
|
|
1. **Comece simples:** Inicie com código de exemplo que funcione
|
|
2. **Uma mudança por vez:** Mais fácil encontrar o que quebra
|
|
3. **Teste frequentemente:** Identifique problemas cedo
|
|
4. **Mantenha organizado:** Organize arquivos e código logicamente
|
|
5. **Comente o código:** Você no futuro vai agradecer
|
|
|
|
---
|
|
|
|
*Este guia de solução de problemas é mantido pela comunidade. Se você encontrar uma solução para um problema que não está listado aqui, por favor considere [contribuir](CONTRIBUTING.md) para ajudar outras pessoas!*
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**Aviso Legal**:
|
|
Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos empenhemos para garantir a precisão, por favor, esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional feita por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |