# 3. Proposta de Reprodução com ESP32

## 3.1. Visão geral da proposta

A proposta consiste em recriar as funcionalidades centrais da Chocadeira JoyFox usando uma ESP32 como unidade de controle, substituindo o microcontrolador dedicado de fábrica. A ESP32 é especialmente adequada por possuir:

- **CPU dual-core de até 240 MHz**, sobrando capacidade para controle, interface e conectividade;
- **Wi-Fi e Bluetooth integrados**, permitindo, como melhoria, monitoramento remoto (recurso ausente na JoyFox básica);
- **Periféricos abundantes**: GPIO, PWM (LEDC), ADC, I²C, timers de hardware;
- **Baixo consumo** quando configurada adequadamente;
- **Ecossistema ESP-IDF** maduro (FreeRTOS embutido, drivers de periféricos, tasks concorrentes).

A reprodução abrange 100% das funções essenciais (temperatura, umidade, viragem, interface) e permite estender com monitoramento via Wi-Fi.

## 3.2. Mapeamento de funcionalidades > componentes ESP32

| Função da JoyFox | Implementação proposta com ESP32 |
| ---------------- | -------------------------------- |
| Medir temperatura e umidade | Sensor **DHT22** (ou **SHT31** via I²C, mais preciso) |
| Aquecer o ambiente | **Relé** (ou SSR) acionando resistência; controle por **PWM/PID** via GPIO |
| Circular ar | **Ventilador 12 V** acionado por relé/MOSFET |
| Virar os ovos a cada 90 min | **Motor DC com caixa de redução** ou servo, comandado por driver (ponte H L298N) + **timer de hardware** da ESP32 |
| Exibir dados | **Display LCD 16×2 (I²C)** ou OLED SSD1306 |
| Configurar set-points/modos | **Botões** em GPIO (com debounce) |
| Ovoscópio | **LED de alta intensidade** acionado por GPIO/MOSFET |
| Energia redundante | Fonte 5 V + **módulo de carga/comutação** para bateria 12 V (TP4056 / módulo UPS DC) |
| **(Melhoria) Monitoramento remoto** | **Wi-Fi nativo** + servidor web embarcado ou MQTT/Blynk |

## 3.3. Estratégia de software (ESP-IDF / FreeRTOS)

A ESP-IDF usa **FreeRTOS**, permitindo organizar o firmware em **tasks concorrentes**:

- `task_sensor` — lê DHT22/SHT31 a cada N segundos.
- `task_control` — executa o **PID de temperatura** e a lógica de umidade; calcula o duty-cycle do aquecedor (LEDC/PWM).
- `task_turning` — usa um **timer de hardware** para acionar a viragem a cada 90 minutos.
- `task_ui` — atualiza o display e lê os botões.
- `task_net` (opcional) — publica dados via Wi-Fi (web server / MQTT).

A comunicação entre tasks pode usar **filas (queues)** e **semáforos** do FreeRTOS, garantindo determinismo no laço de controle.

```
[DHT22/SHT31] --I2C/1-Wire--> [ ESP32 ]
                                  |
        |-------------------------|--------------------------|
        | FreeRTOS (ESP-IDF)      |                          |
        |  task_sensor > fila > task_control > PWM(LEDC) > [Relé/SSR]>[Resistência]
        |                         |                          |--------->[Ventilador]
        |                         |
        |  task_turning (timer 90min) > GPIO > [Driver L298N] > [Motor viragem]
        |  task_ui  <-> [LCD I2C] / [Botões]                                       
        |  task_net (Wi-Fi) > [Web server / MQTT]  (melhoria opcional)            
        |------------------------------------------------------------------------|
```

## 3.4. Diagrama conceitual (diagrama de blocos)

```
                         |-------------------------------|
                         |            ESP32              |
                         |   (Controle + ESP-IDF/RTOS)   |
                         |-------------------------------|
       I2C / 1-Wire  |            PWM | GPIO           | Wi-Fi (opcional)
            |--------|                |                |--------|
            V                         V                         V
   |-----------------|      |------------------|       |----------------|
   |  DHT22 / SHT31  |      |  Relé/SSR + PWM  |       |  App / Web /   |
   | (temp + umid.)  |      |   |------------| |       |     MQTT       |
   |-----------------|      |   |Resistência | |       |----------------|
                            |   | Ventilador | |
   |------------------|     |   |------------| |       |----------------|
   | Botões + LCD I2C |<----┤                  ├------>|  Driver L298N  |
   |   (interface)    |     |      GPIO        |       | > Motor viragem|
   |------------------|     |------------------|       |----------------|
                            |------------------------------------------|
                            | Energia: 5V (rede) ⇄ Bateria 12V (backup)|
                            |------------------------------------------|
```

## 3.5. Limitações e desafios esperados

1. **Precisão e inércia térmica:** o DHT22 tem precisão de ±0,5 °C, no limite do exigido para incubação. Pode ser necessário substituir por **SHT31/DS18B20** e calibrar. O controle PID precisa lidar com a **alta inércia térmica** da caixa (resposta lenta), exigindo ajuste cuidadoso de Kp, Ki, Kd.
2. **Controle de umidade é indireto:** elevar umidade depende de evaporação de água (superfície/aquecedor), de difícil controle fino, geralmente ficando em malha aberta ou ON/OFF, não PID.
3. **Uniformidade de temperatura:** sem boa circulação de ar, há gradientes térmicos na caixa. Exige posicionamento do ventilador e do sensor próximos aos ovos.
4. **Acionamento de cargas AC:** a resistência de aquecimento opera em rede AC, exigindo relé/SSR adequado e cuidados de isolação e segurança elétrica.
5. **Confiabilidade em operação contínua (~21 dias):** o sistema não pode travar. Recomenda-se watchdog timer da ESP32 e a redundância de energia.
6. **Viragem mecânica:** projetar o mecanismo de bandeja com torque suficiente e suave; o motor é a parte mecânica mais sujeita a desgaste.
7. **Custo vs. recurso:** adicionar Wi-Fi/app aumenta complexidade e consumo; deve ser avaliado se o ganho justifica para o público doméstico.

**Referências:**
- ESP32 dual-core 240 MHz + DHT em incubadora IoT — [IoT Based PID control egg incubator (IJEPE/HoNexus)](https://honexus.org/ijepe/index.php/ijepe/article/download/14313/10995)
- Arquitetura ESP32 + Firebase + PID (Kp=10, Ki=3, Kd=8) — [Development of an IoT-Based Egg Incubator with PID Control System (JOIV)](https://joiv.org/index.php/joiv/article/view/2044)
- Reprodução com ESP32 + DHT22 + relé + Blynk — [AN IoT Egg Incubator for Real Time Monitoring (ResearchGate)](https://www.researchgate.net/publication/391229648_AN_Iot_EGG_INCUBATOR_FOR_REAL_TIME_MONITORING)

## Tabela de Atualização do Documento

| Data | Integrante | Contribuição |
| ---- | ---------- | ------------ |
| 02/06/2026 | Davi Pierre | Criação do arquivo (versão Lâmpada Inteligente). |
| 10/06/2026 | Julia Gabriela | Padronizando bibliografia (versão Lâmpada Inteligente). |
| 11/06/2026 | Davi Pierre | Removendo documento duplicado (versão Lâmpada Inteligente). |
| 11/06/2026 | Matheus Barros | Criação do arquivo a partir do template da Chocadeira JoyFox. |
|  11/06/2026 | Davi Pierre | Consertando os diagramas | 
