Este projeto é um código base para iniciantes que querem usar a placa ESP32-CAM AI Thinker de forma rápida e prática.
Ele permite configurar a rede WiFi de maneira dinâmica, acessar o vídeo da câmera e capturar fotos
O projeto foi feito num unico bloco para facilitar a compreensão por quem nunca programou esp32 mas futuramente penso subir uma versão modularizada como um v2
- 🔌 Conexão automática ao WiFi configurado (modo STA).
- 📡 Se não encontrar rede, entra no modo AP para configuração.
- 🖥️ Interface web simples para:
- Inserir SSID e senha do WiFi.
- Alterar rede sem recompilar.
- Visualizar streaming da câmera.
- Capturar e salvar uma foto.
- 🖲️ Suporte opcional ao display SSD1306 OLED:
- Mostra o IP atual da ESP32-CAM.
- Pode exibir SSID ou status de conexão.
- 🔑 Senha do AP não aparece no display (por segurança), mas pode ser configurada no código ou ajustar o codigo para exibir no display.
Este projeto inclui suporte opcional ao display OLED SSD1306 (128x64) utilizando as bibliotecas Adafruit_GFX e Adafruit_SSD1306.
Se o display estiver conectado via I2C (padrão na ESP32-CAM AI-Thinker: GPIO 14 -> SCL
, GPIO 15 -> SDA
), ao iniciar a ESP32-CAM ele exibirá:
- O status da conexão WiFi
- O endereço IP obtido (tanto em modo AP quanto em modo STA)
Isso facilita a configuração em campo, já que não é necessário abrir o Serial Monitor para saber o IP.
🔧 Exemplo de ligação dos pinos (ESP32-CAM AI-Thinker + SSD1306):
ESP32-CAM | SSD1306 |
---|---|
GPIO 14 | SCL |
GPIO 15 | SDA |
3.3V | VCC |
GND | GND |
📌 Obs.: A senha da rede AP não é exibida no display por padrão, mas pode ser configurada no código se desejado.
Caso não queira usar o display, basta comentar a parte do código relacionada ao SSD1306.
// No codigo se encontra na função
void oledInit()
{
Wire.begin(I2C_SDA, I2C_SCL); // Configuração de pinos I2c onde o display deve estar conectado
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 não encontrado..."));
}
else {
display.clearDisplay(); // Limpa
display.setTextSize(1); // Tamanho do texto
display.setTextColor(SSD1306_WHITE); // Color do texto
display.setCursor(0,0); // Posição do cursor
display.println("Iniciando ESP32-CAM..."); // Mensagem de confirmação
display.display();
}
}
## 📂 Estrutura do projeto para usar no futuro e modularizar
esp32cam-starter/
│── src/
│ └── Esp32CamConfig # Código principal
│── include/
│ └── ... # Arquivos de configuração
│── docs/
│ └── esp32cam_pinout.png
│── images/
│ └── demo.gif # Exemplo de funcionamento
|__ test
| └── # Adicione seus testes aqui
|__ handlers
| └── # Adicione seus handlers aqui
|__ web
| └── # Adicione seus html e java script aqui
│── README.md # Este arquivo
---
## 🛠️ Requisitos
- Placa **ESP32-CAM AI Thinker**.
- Opcional: display **SSD1306 OLED** (I2C).
- Arduino IDE ou PlatformIO configurado para ESP32.
### Bibliotecas utilizadas
- `WiFi.h`
- `WebServer`
- `ESPAsyncTCP`
- `ArduinoJson`
- `Adafruit_SSD1306` (se usar display)
---
## 🚀 Como usar
1. Clone o repositório:
```bash
git clone https://github.com/EntaerDev/Esp32cam-oledSSD1306.git
Abra na Arduino IDE (ou PlatformIO).
Selecione a placa AI Thinker ESP32-CAM.
Compile e carregue o código.
Reinicie a placa:
Se encontrar o WiFi salvo → conecta automaticamente.
Se não → cria uma rede AP (ESP32-CAM-Setup).
Conecte-se ao AP → acesse http://192.168.4.1 no navegador.
Configure SSID e senha do seu WiFi.
Recarregue e aproveite o streaming da câmera 🎥.
📸 Demonstração
⚠️ Avisos importantes
A ESP32-CAM precisa de fonte estável (5V / 2A).
Alguns módulos têm boot instável → usar capacitor de 100µF ajuda.
O código é didático → você pode expandir para Telegram, Firebase, etc.
📜 Licença
Este projeto está sob a licença MIT.
Sinta-se livre para usar, modificar e contribuir.
🤝 Contribuindo
Faça um fork 🍴
Crie uma branch (feature/nome-da-sua-feature)
Commit suas alterações (git commit -m "Adicionei X")
Push para a branch (git push origin feature/nome-da-sua-feature)
Abra um Pull Request para homologation 🚀
🌍 Comunidade
Se tiver dúvidas ou sugestões, use a aba Issues aqui no GitHub.
Vamos aprender juntos e tornar a ESP32-CAM mais acessível para todos!