🔧 Guia de Configuração do ESP32
Aprenda a configurar seu hardware e software para o Polígrafo funcionar perfeitamente
📦 1. Hardware Necessário
🎯 Componentes Principais
- ESP32 Dev Board
- Sensor GSR (Grove)
- Sensor de Batimentos Cardíacos
- Cabos Jumpers (Fêmea-Fêmea)
- Protoboard (opcional)
- Fonte USB para ESP32
🔌 Conexões Elétricas
| Sensor | Pino ESP32 |
|---|---|
| GSR VCC | 3.3V |
| GSR GND | GND |
| GSR SIG | GPIO 34 |
| Pulse VCC | 3.3V |
| Pulse GND | GND |
| Pulse SIG | GPIO 35 |
💻 2. Configuração do Software (Arduino IDE)
Instalar suporte ao ESP32
Abra o Arduino IDE e vá em Arquivo → Preferências. Adicione a URL abaixo:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Depois vá em Ferramentas → Placa → Gerenciador de Placas e instale "ESP32 by Espressif Systems".
Instalar Bibliotecas Necessárias
Vá em Ferramentas → Gerenciar Bibliotecas e instale:
- WebSockets por Markus Sattler
- ArduinoJson por Benoit Blanchon (versão 6.x)
Código Completo para o ESP32
Copie e cole este código no Arduino IDE:
// ===== CONFIGURAÇÕES ===== #include <WiFi.h> #include <WebSocketsServer.h> #include <ArduinoJson.h> const char* ssid = "SEU_WIFI"; const char* password = "SUA_SENHA"; const int GSR_PIN = 34; const int PULSE_PIN = 35; const int SAMPLES = 10; const int READ_DELAY = 50; WebSocketsServer webSocket = WebSocketsServer(81); void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\n✅ WiFi conectado!"); webSocket.begin(); webSocket.onEvent(webSocketEvent); analogReadResolution(12); analogSetAttenuation(ADC_11db); } void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) { if(type == WStype_CONNECTED) { Serial.printf("📱 Cliente %u conectado!\n", num); } } int readSensor(int pin) { long sum = 0; for(int i = 0; i < SAMPLES; i++) { sum += analogRead(pin); delay(READ_DELAY / SAMPLES); } return sum / SAMPLES; } void loop() { webSocket.loop(); int rawGSR = readSensor(GSR_PIN); int rawPulse = readSensor(PULSE_PIN); int gsrValue = map(rawGSR, 0, 4095, 0, 100); int pulseValue = map(rawPulse, 0, 4095, 40, 180); StaticJsonDocument<200> doc; doc["gsr"] = gsrValue; doc["pulse"] = pulseValue; doc["timestamp"] = millis(); String output; serializeJson(doc, output); webSocket.broadcastTXT(output); delay(200); }
Configurar e Carregar
- Substitua SEU_WIFI e SUA_SENHA pelos dados da sua rede
- Selecione: Ferramentas → Placa → ESP32 → ESP32 Dev Module
- Selecione a porta USB correta
- Clique em Upload (→)
📡 3. Métodos de Conexão
O ESP32 cria um WebSocket na porta 81. No dashboard, clique no status e escolha "WiFi (WebSocket)". O sistema conectará automaticamente no IP do ESP32.
Acesse a página connect_ble.php e pareie com o ESP32. Requer navegador Chrome/Edge com Web Bluetooth API.
Sem hardware, o sistema gera dados fictícios realistas para testes da interface e validação do fluxo.
🐛 4. Solução de Problemas
- Verifique SSID e senha (case sensitive)
- Use apenas rede 2.4GHz (ESP32 não suporta 5GHz)
- Reinicie roteador e ESP32
- Verifique se há caracteres especiais no nome da rede
- Verifique conexões dos jumpers (solda ajuda)
- Aumente SAMPLES no código para 20-30
- Mantenha sensores firmes na pele
- Evite movimento excessivo durante leitura
- ESP32 e PC devem estar na mesma rede
- Desabilite firewall temporariamente para teste
- Tente acessar via IP direto: http://[IP]:81
- Verifique se a porta 81 não está bloqueada
- Instale driver USB correto (CP210x ou CH340)
- Segure botão BOOT durante upload se necessário
- Troque cabo USB e porta do computador
- Reinicie Arduino IDE após instalar bibliotecas
📊 5. Teste Rápido
- Após carregar o código, abra o Serial Monitor
- Você deve ver "GSR: XX | Pulse: XX" a cada ~200ms
- Toque nos sensores para ver os valores mudarem
- No dashboard, conecte via WiFi e veja os gráficos em tempo real
- O sensor GSR precisa de contato firme com a pele (dedos limpos)
- Limpe os dedos com álcool antes de usar para melhor condutividade
- O sensor de batimentos pode levar 10-15 segundos para estabilizar
- Mantenha o ESP32 longe de fontes de interferência eletromagnética
🆘 6. Suporte Adicional
Se ainda tiver problemas, verifique estes recursos:
- 📖 Documentação oficial do ESP32
- 💬 Fórum oficial do Arduino para ESP32
- 🔧 Verifique as conexões físicas novamente com multímetro
- 📝 Confira se o código foi copiado sem alterações