From 09fa8079fdee08534e9cd8eda4804725c1fc7282 Mon Sep 17 00:00:00 2001 From: Lucas Rayan Date: Tue, 20 Jan 2026 19:10:37 -0300 Subject: [PATCH] Update package dependencies, add energy consumption data to series.json, and create a technical glossary page --- app/catalogo/page.jsx | 28 +- app/comparacao/page.jsx | 218 +++--- app/frameworks/page.jsx | 86 ++- app/glossario/page.jsx | 474 +++++++++++++ app/page.jsx | 179 ++--- app/series/[key]/page.jsx | 184 +++-- app/series/page.jsx | 56 +- app/sobre/page.jsx | 155 +++-- components/ConnectionsDiagram.jsx | 8 +- components/Header.jsx | 92 ++- package-lock.json | 1049 +++++++++++++++-------------- package.json | 2 +- public/series.json | 47 ++ 13 files changed, 1685 insertions(+), 893 deletions(-) create mode 100644 app/glossario/page.jsx diff --git a/app/catalogo/page.jsx b/app/catalogo/page.jsx index 9bb535e..3d56c10 100644 --- a/app/catalogo/page.jsx +++ b/app/catalogo/page.jsx @@ -185,19 +185,29 @@ export default function PlacasPage() {
-
-
-

- 🛒 Catálogo de Placas ESP32 +
+
+
+ 🛒 + Encontre sua placa ideal +
+ +

+ Catálogo de Placas ESP32

-

+

Encontre a placa perfeita para o seu projeto

-

- ✓ Todos os links são verificados e de fontes confiáveis -

-

+
+ + + +

+ Todos os links são verificados e de fontes confiáveis +

+
+
diff --git a/app/comparacao/page.jsx b/app/comparacao/page.jsx index fedc04f..2d32543 100644 --- a/app/comparacao/page.jsx +++ b/app/comparacao/page.jsx @@ -81,84 +81,87 @@ export default function Comparacao() { const renderValue = (value) => { if (!value || value === "Não") { - return ✗; + return —; } if (value === "Sim") { - return ✓; + return ✓; } - return {value}; + return {value}; }; return ( -
+
-
-
-
-
- 📊 Compare Séries +
+
+
+

+ Análise Técnica Comparativa +

+

+ Comparação de Séries ESP32 +

+

+ Análise detalhada de especificações técnicas para seleção de microcontroladores ESP32 +

+
+
+ +
+
+

+ Seleção de Modelos +

+

+ Selecione de 2 a 4 séries para análise comparativa +

+
+ {series.map(([key, seriesItem]) => ( + + ))}
- -

- Comparação de Séries -

- -

- Compare especificações técnicas entre diferentes séries ESP32 para escolher o ideal para seu projeto -

-
- -
-

- Selecione as Séries (2-4) -

-
- {series.map(([key, seriesItem]) => ( - - ))} +
+
+ + {selectedSeries.length} / 4 modelos selecionados + +
-

- {selectedSeries.length} de 4 séries selecionadas -

-
+ -
+
- - + {selectedSeries.map(seriesKey => { const seriesItem = seriesData[seriesKey]; return ( - ); @@ -168,21 +171,21 @@ export default function Comparacao() { {compareFields.map(({ category, fields }) => ( <> - - + {fields.map(({ key, label }) => ( - - + {selectedSeries.map(seriesKey => { const seriesItem = seriesData[seriesKey]; const value = seriesItem[key]; return ( - ); @@ -197,57 +200,72 @@ export default function Comparacao() { {/* Call-to-Action para Catálogo de Placas */} -
-
+
+
-

- 🛒 Encontrou a série ideal? +

+ Recursos Adicionais +

+

+ Catálogo de Placas de Desenvolvimento

-

- Confira nosso catálogo com placas de desenvolvimento verificadas das séries que você comparou. - Links diretos para lojas oficiais e confiáveis! +

+ Acesse nossa base de placas de desenvolvimento verificadas com referências diretas para fornecedores oficiais.

- Ver Placas Disponíveis → + Acessar Catálogo + + +
-
- {selectedSeries.map(seriesKey => { - const seriesItem = seriesData[seriesKey]; - return ( - -
{seriesItem.icone}
- -

{seriesKey}

- -

Datasheet Oficial

-
+

+ Documentação Técnica +

+
+ {selectedSeries.map(seriesKey => { + const seriesItem = seriesData[seriesKey]; + return ( +
- Abrir PDF - - - - - - ); - })} +
+
{seriesItem.icone}
+
+ +

{seriesKey}

+ +

Documentação oficial

+ + Datasheet + + + + +
+
+
+ ); + })} +
diff --git a/app/frameworks/page.jsx b/app/frameworks/page.jsx index e29d874..2559649 100644 --- a/app/frameworks/page.jsx +++ b/app/frameworks/page.jsx @@ -10,17 +10,22 @@ export default function Frameworks() {
-
-
-

+
+
+
+ 🛠️ + Ferramentas de Desenvolvimento +
+ +

Frameworks ESP32

-

+

Descubra os frameworks e bibliotecas disponíveis para ESP32. De desenvolvimento geral a aplicações especializadas em áudio, visão computacional, IA e IoT.

-

+
{frameworks.map(([key, framework]) => ( @@ -119,54 +124,71 @@ export default function Frameworks() { ))}
-
-
-

- 🎓 Iniciante no ESP32? -

-

+

+
+
+
+ 🎓 +
+

+ Iniciante no ESP32? +

+
+

Se você está começando, recomendo iniciar com  Arduino ou  MicroPython  para prototipagem rápida, ou  ESP-IDF para projetos profissionais com controle total.

-
- - 📘 Arduino +
+ + 📘 + Arduino - - 🐍 MicroPython + + 🐍 + MicroPython - - ⚙️ ESP-IDF + + ⚙️ + ESP-IDF
-
-

- 🚀 Aplicações Especializadas? -

-

+

+
+
+ 🚀 +
+

+ Aplicações Especializadas? +

+
+

Para projetos específicos, explore frameworks especializados como  ESP-ADF (áudio),  ESP-WHO (visão),  ESP-NN (IA) ou  ESP-Matter (smart home).

-
- - 🎵 Áudio +
+ + 🎵 + Áudio - - 📷 Visão + + 📷 + Visão - - 🧠 IA + + 🧠 + IA - - 🏠 Smart Home + + 🏠 + Smart Home
diff --git a/app/glossario/page.jsx b/app/glossario/page.jsx new file mode 100644 index 0000000..6178c3a --- /dev/null +++ b/app/glossario/page.jsx @@ -0,0 +1,474 @@ +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; +import Link from "next/link"; + +export const metadata = { + title: "ESPDocs - Glossário Técnico", + description: "Glossário técnico em português com termos e conceitos do ecossistema ESP32", +}; + +export default function Glossario() { + const categorias = [ + { + nome: "Processamento", + icone: "🧠", + cor: "blue", + termos: [ + { + termo: "Arquitetura", + definicao: "Conjunto de instruções e design do processador. O ESP32 usa principalmente Xtensa (32-bit) ou RISC-V.", + exemplo: "ESP32 clássico usa Xtensa LX6, enquanto ESP32-C3 usa RISC-V.", + }, + { + termo: "Núcleos (Cores)", + definicao: "Unidades de processamento independentes. Dual-core permite executar duas tarefas simultaneamente.", + exemplo: "ESP32 tem 2 núcleos (dual-core), ESP32-S2 tem 1 núcleo (single-core).", + }, + { + termo: "Frequência (Clock)", + definicao: "Velocidade de processamento medida em MHz ou GHz. Quanto maior, mais rápido o processamento.", + exemplo: "ESP32 opera de 80 MHz até 240 MHz.", + }, + { + termo: "ULP (Ultra Low Power) Coprocessador", + definicao: "Processador secundário de baixíssimo consumo que pode operar enquanto o processador principal está em deep sleep.", + exemplo: "Usado para ler sensores periodicamente sem despertar o CPU principal.", + }, + { + termo: "Aceleradores de IA", + definicao: "Hardware dedicado para acelerar operações de inteligência artificial e redes neurais.", + exemplo: "ESP32-P4 possui Vector Extension para processamento de IA.", + }, + ], + }, + { + nome: "Memória", + icone: "💾", + cor: "purple", + termos: [ + { + termo: "SRAM (Static RAM)", + definicao: "Memória volátil rápida usada para armazenar variáveis e stack do programa durante execução. Perde dados ao desligar.", + exemplo: "ESP32 tem 520 KB de SRAM interna.", + }, + { + termo: "ROM (Read-Only Memory)", + definicao: "Memória não-volátil com bootloader e funções básicas gravadas pela Espressif. Não pode ser alterada.", + exemplo: "ESP32 tem 448 KB de ROM com código de boot.", + }, + { + termo: "Flash", + definicao: "Memória não-volátil externa onde o firmware é armazenado. Mantém dados mesmo sem energia.", + exemplo: "Placas comuns vêm com 4 MB ou 16 MB de Flash.", + }, + { + termo: "PSRAM (Pseudo-Static RAM)", + definicao: "Memória RAM externa adicional para aplicações que precisam de mais memória (imagens, buffers grandes).", + exemplo: "ESP32-CAM usa PSRAM de 4 MB ou 8 MB para armazenar frames de câmera.", + }, + { + termo: "RTC Memory", + definicao: "Pequena quantidade de SRAM que mantém dados durante deep sleep, alimentada pelo RTC.", + exemplo: "Usar RTC memory para guardar contador entre deep sleeps.", + }, + ], + }, + { + nome: "Conectividade", + icone: "📡", + cor: "green", + termos: [ + { + termo: "Wi-Fi", + definicao: "Comunicação sem fio padrão IEEE 802.11. ESP32 suporta 2.4 GHz (b/g/n), algumas séries suportam 5 GHz.", + exemplo: "Conectar ESP32 à rede doméstica para IoT.", + }, + { + termo: "Bluetooth Classic", + definicao: "Protocolo Bluetooth para transmissão de áudio e dados. Maior consumo que BLE.", + exemplo: "Caixas de som Bluetooth, transmissão de áudio.", + }, + { + termo: "BLE (Bluetooth Low Energy)", + definicao: "Versão de baixo consumo do Bluetooth, ideal para sensores e wearables.", + exemplo: "Rastreadores, sensores de temperatura, smartwatches.", + }, + { + termo: "Zigbee", + definicao: "Protocolo de mesh network de baixo consumo para automação residencial (IEEE 802.15.4).", + exemplo: "Redes de sensores domésticos, lâmpadas inteligentes.", + }, + { + termo: "Thread", + definicao: "Protocolo de mesh network baseado em IPv6 para dispositivos IoT.", + exemplo: "Smart home devices com Matter.", + }, + { + termo: "Matter", + definicao: "Padrão universal de smart home que funciona sobre Thread ou Wi-Fi, compatível com Alexa, Google Home, Apple Home.", + exemplo: "Tomadas, lâmpadas e sensores compatíveis com todos os assistentes.", + }, + ], + }, + { + nome: "Periféricos", + icone: "🔌", + cor: "orange", + termos: [ + { + termo: "GPIO (General Purpose Input/Output)", + definicao: "Pinos configuráveis como entrada ou saída digital para conectar LEDs, botões, sensores.", + exemplo: "GPIO2 geralmente é usado para LED onboard.", + }, + { + termo: "ADC (Analog-to-Digital Converter)", + definicao: "Converte sinais analógicos (0-3.3V) em valores digitais para leitura de sensores analógicos.", + exemplo: "Ler potenciômetro, sensor de luz LDR, tensão de bateria.", + }, + { + termo: "DAC (Digital-to-Analog Converter)", + definicao: "Converte valores digitais em voltagem analógica (0-3.3V).", + exemplo: "Gerar ondas de áudio, controle analógico de motores.", + }, + { + termo: "PWM (Pulse Width Modulation)", + definicao: "Técnica para simular saída analógica variando a largura de pulsos digitais. Controla brilho, velocidade, etc.", + exemplo: "Controlar brilho de LED, velocidade de motor DC.", + }, + { + termo: "Touch Capacitivo", + definicao: "Sensores que detectam toque humano por mudança de capacitância, sem necessidade de botões físicos.", + exemplo: "Botões touch, sliders, controles sensíveis ao toque.", + }, + { + termo: "UART (Universal Asynchronous Receiver/Transmitter)", + definicao: "Comunicação serial assíncrona para trocar dados com módulos GPS, sensores, debug serial.", + exemplo: "Monitor Serial da Arduino IDE usa UART.", + }, + { + termo: "SPI (Serial Peripheral Interface)", + definicao: "Barramento serial síncrono de alta velocidade para displays, cartões SD, sensores.", + exemplo: "Display TFT, módulo SD Card, sensor BME280.", + }, + { + termo: "I²C (Inter-Integrated Circuit)", + definicao: "Barramento serial de 2 fios para conectar múltiplos dispositivos com endereços únicos.", + exemplo: "Sensores BME280, displays OLED, RTC DS3231.", + }, + { + termo: "I²S (Inter-IC Sound)", + definicao: "Interface para transmissão de áudio digital entre circuitos integrados.", + exemplo: "Módulos de áudio MAX98357, microfones MEMS.", + }, + ], + }, + { + nome: "Interfaces Especiais", + icone: "✨", + cor: "pink", + termos: [ + { + termo: "USB OTG (On-The-Go)", + definicao: "Permite que ESP32 funcione como dispositivo USB (teclado, mouse, pen drive) ou host USB.", + exemplo: "ESP32-S3 pode emular teclado USB ou ler pen drive.", + }, + { + termo: "JTAG", + definicao: "Interface de debug e programação de baixo nível para desenvolvimento profissional.", + exemplo: "Debug passo-a-passo com ESP-Prog ou J-Link.", + }, + { + termo: "SDIO (Secure Digital Input Output)", + definicao: "Interface para cartões SD em modo de 4 bits de alta velocidade.", + exemplo: "Gravar logs, armazenar fotos de câmera.", + }, + { + termo: "Ethernet MAC", + definicao: "Controlador de rede Ethernet embutido. Requer PHY externo (chip LAN8720).", + exemplo: "ESP32 com conexão Ethernet cabeada para IoT industrial.", + }, + { + termo: "Camera Interface", + definicao: "Interface paralela para conectar câmeras (geralmente OV2640, OV5640).", + exemplo: "ESP32-CAM, projetos de visão computacional.", + }, + { + termo: "LCD Interface", + definicao: "Interface paralela RGB para displays LCD de alta resolução.", + exemplo: "ESP32-S3 com display TFT 480x320 RGB.", + }, + { + termo: "MIPI CSI/DSI", + definicao: "Interfaces de alta velocidade para câmeras (CSI) e displays (DSI) em aplicações avançadas.", + exemplo: "ESP32-P4 com câmera MIPI de alta resolução.", + }, + ], + }, + { + nome: "Gerenciamento de Energia", + icone: "🔋", + cor: "yellow", + termos: [ + { + termo: "Active Mode", + definicao: "Modo de operação normal com CPU e periféricos funcionando. Maior consumo de energia.", + exemplo: "ESP32 processando dados Wi-Fi: ~160-260 mA.", + }, + { + termo: "Modem Sleep", + definicao: "CPU ativo mas Wi-Fi/Bluetooth desligados quando não há transmissão. Economia moderada.", + exemplo: "Aplicações com comunicação intermitente.", + }, + { + termo: "Light Sleep", + definicao: "CPU pausado mas RAM e RTC mantidos. Acorda rapidamente por timer ou GPIO.", + exemplo: "Sensor que verifica dados a cada 1 segundo: ~0.8 mA.", + }, + { + termo: "Deep Sleep", + definicao: "Tudo desligado exceto RTC e ULP. Consumo ultra baixo (~10 μA). Perde variáveis da RAM.", + exemplo: "Sensor que envia dados a cada 1 hora e dorme entre envios.", + }, + { + termo: "Hibernation", + definicao: "Modo mais profundo que deep sleep, desliga até RTC. Apenas timer ou reset externo acordam.", + exemplo: "Dispositivo sazonal que acorda 1x por dia: ~5 μA.", + }, + { + termo: "Brownout Detector", + definicao: "Circuito que reseta o ESP32 se a tensão cair abaixo de nível seguro (~2.8V) para evitar corrupção.", + exemplo: "Proteção contra queda de tensão da fonte/bateria.", + }, + ], + }, + { + nome: "Boot e Programação", + icone: "🚀", + cor: "red", + termos: [ + { + termo: "Bootloader", + definicao: "Programa na ROM que inicia ao ligar e carrega o firmware da Flash para execução.", + exemplo: "Primeiro código que roda ao dar power-on no ESP32.", + }, + { + termo: "Strapping Pins", + definicao: "GPIOs lidos durante boot para definir modo de operação (flash, boot normal, etc). Cuidado ao usar!", + exemplo: "GPIO0=LOW entra em modo flash. GPIO2, GPIO12, GPIO15 também são strapping pins.", + }, + { + termo: "Flash Mode", + definicao: "Modo especial onde ESP32 aguarda upload de firmware via UART. Ativado por GPIO0=LOW + Reset.", + exemplo: "Pressionar botão BOOT durante upload na Arduino IDE.", + }, + { + termo: "OTA (Over-The-Air)", + definicao: "Atualização de firmware sem fio via Wi-Fi, sem necessidade de cabo USB.", + exemplo: "Atualizar firmware de dispositivo instalado no teto.", + }, + { + termo: "Partições", + definicao: "Divisões da Flash para armazenar bootloader, app, OTA, SPIFFS, NVS.", + exemplo: "Partição de 3 MB para app, 1 MB para SPIFFS (sistema de arquivos).", + }, + { + termo: "NVS (Non-Volatile Storage)", + definicao: "Área da Flash para armazenar configurações persistentes em formato chave-valor.", + exemplo: "Salvar SSID e senha do Wi-Fi para reconectar após reboot.", + }, + { + termo: "SPIFFS / LittleFS", + definicao: "Sistemas de arquivos para Flash, permitem armazenar arquivos (HTML, configs, logs).", + exemplo: "Armazenar páginas HTML de servidor web no ESP32.", + }, + ], + }, + { + nome: "Conceitos de Hardware", + icone: "⚙️", + cor: "gray", + termos: [ + { + termo: "Module vs Chip", + definicao: "Chip é o processador ESP32 puro. Module inclui chip + Flash + antena em PCB certificado (ESP32-WROOM-32).", + exemplo: "Comprar módulo WROOM é mais fácil que soldar chip ESP32 bruto.", + }, + { + termo: "DevKit / Development Board", + definicao: "Placa com módulo ESP32 + conversor USB-Serial + regulador de tensão + pinos expostos para prototipagem.", + exemplo: "ESP32-DevKitC, NodeMCU-32S.", + }, + { + termo: "Pinout", + definicao: "Diagrama mostrando função de cada pino físico do chip/módulo.", + exemplo: "Ver pinout para saber qual GPIO suporta ADC.", + }, + { + termo: "Pull-up / Pull-down", + definicao: "Resistores internos que mantém GPIO em nível HIGH (pull-up) ou LOW (pull-down) quando não conectado.", + exemplo: "GPIO com pull-up para botão que conecta ao GND.", + }, + { + termo: "Input-Only GPIO", + definicao: "Alguns GPIOs (34-39 no ESP32 clássico) só funcionam como entrada, não como saída.", + exemplo: "GPIO36 (VP) pode ler ADC mas não controlar LED.", + }, + { + termo: "Certificação (FCC/CE)", + definicao: "Aprovação regulatória para vender produtos com rádio. Módulos pré-certificados simplificam o processo.", + exemplo: "Usar ESP32-WROOM-32 (certificado) facilita venda comercial.", + }, + ], + }, + ]; + + return ( +
+
+ +
+ {/* Hero Section */} +
+
+ 📖 + Aprenda os Conceitos +
+ +

+ Glossário Técnico +

+ +

+ Entenda termos e conceitos do ecossistema ESP32 explicados em português, + do básico ao avançado. +

+
+ + {/* Navegação Rápida */} +
+
+

+ Navegação Rápida +

+
+ {categorias.map((cat) => ( + + {cat.icone} + + {cat.nome} + + + ))} +
+
+
+ + {/* Categorias de Termos */} +
+ {categorias.map((categoria) => ( +
+
+ {/* Header da Categoria */} +
+
+ {categoria.icone} +
+

+ {categoria.nome} +

+
+ + {/* Lista de Termos */} +
+ {categoria.termos.map((item, idx) => ( +
+

+ {item.termo} +

+

+ {item.definicao} +

+
+
+ + 💡 Exemplo: + +

+ {item.exemplo} +

+
+
+
+ ))} +
+
+
+ ))} +
+ + {/* Call to Action */} +
+
+
+ 🎯 + Próximo Passo +
+

+ Pronto para Explorar? +

+

+ Agora que você conhece os conceitos, explore as séries ESP32 e compare + especificações para encontrar a ideal para seu projeto. +

+
+ + ⚡ + Ver Séries ESP32 + + + + + + + 🛠️ + Ver Frameworks + + + + +
+
+
+
+ +
+
+ ); +} \ No newline at end of file diff --git a/app/page.jsx b/app/page.jsx index 2bfff6c..f9320ef 100644 --- a/app/page.jsx +++ b/app/page.jsx @@ -5,79 +5,102 @@ import Link from "next/link"; export default function Home() { const resources = [ {name: "Catálogo de Placas", description: "Encontre placas de desenvolvimento ESP32 verificadas com filtros avançados e links seguros para compra", icon: "🛒"}, - {name: "Detalhes Técnicos", description: "Explore as especificações técnicas de cada série ESP32, incluindo arquitetura, recursos e capacidades", icon: "🔧"}, - {name: "Diagramas Interativos", description: "Visualize diagramas detalhados dos componentes ESP32 com interatividade para melhor compreensão", icon: "📊"}, - {name: "Frameworks Avançados", description: "Aprenda sobre frameworks populares como ESP-IDF, Arduino e MicroPython para desenvolvimento com ESP32", icon: "⚡"}, - {name: "Comparação de Séries", description: "Compare diferentes séries ESP32 para escolher o mais adequado ao seu projeto", icon: "📈"}, - {name: "Datasheets", description: "Acesso direto aos datasheets oficiais para informações detalhadas sobre cada série", icon: "📄"}, - {name: "Exemplos de Código", description: "Encontre exemplos práticos de código para iniciar rapidamente seus projetos com ESP32", icon: "💻"}, - {name: "Atualizações Constantes", description: "Mantenha-se atualizado com as últimas novidades e lançamentos no ecossistema ESP32", icon: "🔄"}, - {name: "Conteúdo em Português", description: "Toda a documentação e recursos são apresentados em português para facilitar o entendimento", icon: "📚"}, + {name: "Especificações Organizadas", description: "Especificações técnicas de cada série ESP32 organizadas em tabelas comparativas em português", icon: "🔧"}, + {name: "Diagramas de Conexões", description: "Visualize diagramas interativos dos componentes e pinos de cada série ESP32", icon: "📊"}, + {name: "Informações sobre Frameworks", description: "Conheça frameworks como ESP-IDF, Arduino e MicroPython com descrições, casos de uso e exemplos", icon: "⚡"}, + {name: "Comparação de Séries", description: "Compare lado a lado as especificações de diferentes séries ESP32 em uma única visualização", icon: "📈"}, + {name: "Links para Documentação", description: "Acesso direto aos datasheets, manuais técnicos e guias oficiais da Espressif (em inglês)", icon: "📄"}, + {name: "Exemplos de Código", description: "Snippets de código básico para diferentes frameworks com links para repositórios oficiais", icon: "💻"}, + {name: "Informações Atualizadas", description: "Dados atualizados sobre as séries e frameworks mais recentes do ecossistema ESP32", icon: "🔄"}, + {name: "Interface em Português", description: "Navegação e organização de informações totalmente em português para facilitar a consulta", icon: "📚"}, ] return (
-
-
-
- 🚀 Documentação em Português +
+ {/* Hero Section */} +
+

+ ESPDocs +

+ +

+ Organização e acesso facilitado ao ecossistema ESP32 +

+ +

+ Plataforma não oficial com interface em português que organiza e centraliza + informações sobre ESP32. Compare especificações, visualize diagramas e acesse + a documentação oficial da Espressif. +

+ +
+ + 📚 + Explorar Séries ESP32 + + + + + + + ⚡ + Frameworks + + + + 🛒 + Catálogo +
-
- -

- ESPDocs -

- -

- Ecossistema ESP32 em Português -

- -

- Documentação não oficial completa para facilitar seu aprendizado e desenvolvimento - com ESP32. Explore especificações, diagramas, frameworks e muito mais! -

+ -
- - 📚 Ver Séries - + {/* Recursos Section */} +
+
+

Recursos da Plataforma

+

Ferramentas e informações organizadas para facilitar seu trabalho com ESP32

+
+ +
+ {resources.map((resource, index) => ( +
+
+
+ {resource.icon} +
+
+

+ {resource.name} +

+

+ {resource.description} +

+
+
+
+ ))} +
+
- - ⚡ Ver Frameworks - - - - 🛒 Ver Catálogo de Placas - -
- -
- {resources.map((resource) => ( -
-
{resource.icon}
-

- {resource.name} -

-

- {resource.description} -

-
- ))} -
- - +
diff --git a/app/series/[key]/page.jsx b/app/series/[key]/page.jsx index 4062c46..f8b8bcc 100644 --- a/app/series/[key]/page.jsx +++ b/app/series/[key]/page.jsx @@ -74,34 +74,34 @@ export default async function SerieDetail({ params }) { if (serie.sensor_hall) interfacesEspeciais.push({ label: "Sensor Hall", value: serie.sensor_hall, icon: "🧲" }); if (serie.sensor_temperatura) interfacesEspeciais.push({ label: "Sensor Temperatura", value: serie.sensor_temperatura, icon: "🌡️" }); - const tabs = [ - { - id: 'connections', - label: 'Diagrama de Conexões', - available: conexoes.length > 0, - content: ( -
- + // Consumo de Energia + const consumoEnergia = []; + if (serie.consumo_energia) { + Object.entries(serie.consumo_energia).forEach(([modo, consumo]) => { + const modoLabels = { + 'active': 'Modo Ativo', + 'active_cpu_240mhz': 'Ativo (CPU 240MHz)', + 'active_cpu_160mhz': 'Ativo (CPU 160MHz)', + 'active_wifi_tx': 'Ativo (Wi-Fi TX)', + 'active_wifi_tx_peak': 'Ativo (Wi-Fi TX Pico)', + 'active_wifi': 'Ativo (Wi-Fi)', + 'active_wifi6': 'Ativo (Wi-Fi 6)', + 'modem_sleep': 'Modem Sleep', + 'modem_sleep_cpu_160mhz': 'Modem Sleep (CPU 160MHz)', + 'light_sleep': 'Light Sleep', + 'deep_sleep': 'Deep Sleep', + 'hibernation': 'Hibernação' + }; + + consumoEnergia.push({ + label: modoLabels[modo] || modo.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase()), + value: consumo, + icon: "🔋" + }); + }); + } - -
- ) - }, + const tabs = [ { id: 'devboard', label: 'Placa de Desenvolvimento', @@ -131,26 +131,43 @@ export default async function SerieDetail({ params }) { ) }, { - id: 'specs', - label: 'Especificações', - available: true, + id: 'connections', + label: 'Diagrama de Conexões', + available: conexoes.length > 0, content: ( -
- - - - - {interfacesEspeciais.length > 0 && ( - - )} - +
+
+
+ ⚠️ +
+

Diagrama do SoC (System on Chip)

+

+ Este diagrama mostra as conexões e periféricos do chip {key} (SoC), + não da placa de desenvolvimento completa. As placas de desenvolvimento podem ter + configurações diferentes de pinos expostos e componentes adicionais. +

+
+
+
+ + + +
+

+ + + + Sobre a Matriz de Conexões Flexível +

+

+ O ESP32 possui uma matriz de conexões flexível que permite mapear diversas funções para múltiplos pinos. + Isso significa que muitas conexões podem ser configuradas para desempenhar diferentes papéis, dependendo das necessidades do seu projeto. + Consulte a documentação oficial para entender como aproveitar ao máximo as GPIOs  + + nesse link. + +

+
) } @@ -241,23 +258,84 @@ export default async function SerieDetail({ params }) { +
+ + + + {consumoEnergia.length > 0 && ( +
+

+ 🔋 + Consumo de Energia +

+
+
+ 💡 +
+

+ Valores típicos @3.3V, 25°C. O consumo real varia com clock, estado de RF (Wi-Fi/Bluetooth ligado/desligado) e configurações. + Para precisão, consulte o datasheet oficial. +

+
+
+
+
+ {consumoEnergia.map((spec, index) => ( +
+ {spec.icon} +
+

{spec.label}

+

{spec.value}

+
+
+ ))} +
+
+ )} + + {interfacesEspeciais.length > 0 && ( + + )} + +
+ {/* Call-to-Action para Catálogo de Placas */} -
-
+
+
-

- 🛒 Pronto para começar? +
+ 🎯 + Próximo Passo +
+

+ Pronto para começar?

-

+

Encontre placas de desenvolvimento {key} verificadas no nosso catálogo. Links diretos para lojas oficiais e confiáveis com os melhores preços!

- Ver Placas Disponíveis → + 🛒 + Ver Placas Disponíveis + + +
diff --git a/app/series/page.jsx b/app/series/page.jsx index 7b57125..0eb1d52 100644 --- a/app/series/page.jsx +++ b/app/series/page.jsx @@ -10,17 +10,22 @@ export default function Series() {
-
-
-

+
+
+
+ ⚡ + Explore o Ecossistema ESP32 +
+ +

Séries ESP32

-

+

Explore toda a família ESP32. Cada série foi projetada para atender necessidades específicas, desde projetos simples até aplicações de IA e IoT avançadas.

-

+
{series.map(([key, serie]) => ( @@ -80,6 +85,13 @@ export default function Series() {
+ {serie.consumo_energia?.deep_sleep && ( +
+ 🔋 Deep Sleep: + {serie.consumo_energia.deep_sleep} +
+ )} + {serie.aceleradores_ia && (
@@ -108,20 +120,34 @@ export default function Series() { ))}
-
-

- 💡 Não sabe qual escolher? -

-

- Compare as especificações de cada série para encontrar a mais adequada ao seu projeto. - Considere requisitos de conectividade, processamento e recursos específicos. -

+
+
+
+ 💡 +
+

+ Não sabe qual escolher? +

+

+ Compare as especificações de cada série para encontrar a mais adequada ao seu projeto. + Considere requisitos de conectividade, processamento e recursos específicos. +

+
- 📊 Comparar Séries + 📊 + Comparar Séries + + +
diff --git a/app/sobre/page.jsx b/app/sobre/page.jsx index 55cda5e..21a030c 100644 --- a/app/sobre/page.jsx +++ b/app/sobre/page.jsx @@ -4,10 +4,10 @@ import Link from "next/link"; export default function Sobre() { const features = [ - { icon: "📚", title: "Documentação Curada", desc: "Conteúdos organizados por níveis — do iniciante ao avançado." }, - { icon: "🔧", title: "Exemplos Práticos", desc: "Projetos e trechos de código para aprender fazendo." }, - { icon: "🌐", title: "Comunidade", desc: "Contribuições abertas e canal para dúvidas e trocas." }, - { icon: "♿", title: "Acessibilidade", desc: "Textos claros, contraste adequado e navegação por teclado." }, + { icon: "📚", title: "Interface em Português", desc: "Organização e apresentação de dados técnicos totalmente em português." }, + { icon: "🔧", title: "Comparações Visuais", desc: "Tabelas comparativas e diagramas para facilitar a escolha da série ideal." }, + { icon: "🌐", title: "Acesso Centralizado", desc: "Links diretos para documentação oficial, repositórios e exemplos." }, + { icon: "♿", title: "Código Aberto", desc: "Projeto open-source com contribuições bem-vindas no GitHub." }, ]; return ( @@ -18,101 +18,134 @@ export default function Sobre() {
-
-
+
+
+
-

+

Sobre o ESPDocs

-

- Uma documentação não oficial, em português, feita por um entusiasta e para - a comunidade — com foco em clareza, exemplos práticos e colaboração aberta. +

+ Uma plataforma não oficial com interface em português que organiza + informações técnicas do ESP32 e facilita o acesso à documentação oficial + da Espressif. Feita por um entusiasta para a comunidade.

-
- - ← Voltar +
-
-
-
-

Missão

-

- Facilitar o aprendizado e acelerar projetos com ESP32 por meio de - documentação clara, exemplos testados e comparativos práticos. - Priorizei traduções fiéis, explicações passo a passo e dicas - baseadas em experiência real de desenvolvimento. +

+
+
+
+
+ 🎯 +
+

Missão

+
+

+ Facilitar o acesso e a compreensão do ecossistema ESP32 através de uma + interface em português que organiza especificações técnicas, compara séries, + apresenta frameworks e centraliza links para a documentação oficial da + Espressif. O objetivo é economizar tempo na busca por informações técnicas.

-
-

Por que o ESPDocs?

-

- Informações técnicas frequentemente estão dispersas entre datasheets, - fóruns e repositórios. O ESPDocs centraliza esse conteúdo em português, - com foco em aplicabilidade. +

+
+
+ ❓ +
+

Por que o ESPDocs?

+
+

+ As informações sobre ESP32 estão dispersas em datasheets (PDF), repositórios + GitHub e documentação oficial — tudo em inglês. O ESPDocs organiza essas + informações em uma interface em português, facilitando comparações e consultas + rápidas antes de mergulhar na documentação técnica oficial.

-
    +
    {features.map((f) => ( -
  • - -
    -

    {f.title}

    -

    {f.desc}

    +
    + +
    +

    {f.title}

    +

    {f.desc}

    -
  • +
    ))} -
+
-
-

Como contribuir

-

+

+
+
+ 🤝 +
+

Como contribuir

+
+

Correções, traduções e novos exemplos são bem-vindos. Abra uma issue ou um pull request no repositório. Busco por clareza nas descrições e exemplos testáveis.

-
    -
  1. Fork do repositório e crie uma branch clara.
  2. -
  3. Adicione exemplos ou corrija o conteúdo com referências quandopossível.
  4. -
  5. Abra um PR e descreva o que foi alterado.
  6. -
+
+
    +
  1. Fork do repositório e crie uma branch clara.
  2. +
  3. Adicione exemplos ou corrija o conteúdo com referências quando possível.
  4. +
  5. Abra um PR e descreva o que foi alterado.
  6. +
+
-
-

Acessibilidade

-

+

+
+
+ ♿ +
+

Acessibilidade

+
+

O site prioriza leitura, contraste legível e navegação por teclado. Se encontrar barreiras, por favor relate para que eu possa melhorar.

-
+
Especificação +
- {seriesItem.icone} + {seriesItem.icone} {seriesKey} -
+
{category}
+
{label} + {renderValue(value)}