Bem-vindo ao repositório de projetos baseados na placa NodeMCU v3 CH340 com o chip ESP8266! Este é um guia completo para iniciantes e entusiastas que desejam aprender e desenvolver projetos IoT (Internet das Coisas).
- Sobre o Projeto
- Sobre a Placa NodeMCU v3 CH340
- Pinagem da Placa
- Requisitos
- Instalação do Driver CH340
- Configuração do Arduino IDE
- Lista de Projetos
- Recursos Adicionais
Este repositório contém uma coleção de projetos desenvolvidos para a placa NodeMCU v3 CH340, baseada no microcontrolador ESP8266. Cada projeto possui sua própria documentação detalhada na pasta projects/, facilitando o aprendizado progressivo desde conceitos básicos até aplicações mais avançadas.
A NodeMCU v3 é uma placa de desenvolvimento open-source baseada no chip ESP8266, ideal para projetos IoT. Ela possui:
- ✅ Microcontrolador: ESP8266 (ESP-12E)
- ✅ Wi-Fi integrado: 802.11 b/g/n
- ✅ Tensão de operação: 3.3V
- ✅ Tensão de entrada: 5V via USB
- ✅ GPIO: 11 pinos digitais
- ✅ ADC: 1 entrada analógica (0-1V)
- ✅ PWM: Suporte em todos os GPIOs
- ✅ Comunicação: UART, SPI, I2C
- ✅ Memória Flash: 4MB
- ✅ Conversor USB-Serial: CH340G
- ✅ Frequência do Clock: 80MHz (pode ser aumentado para 160MHz)
- 🌐 Conectividade Wi-Fi nativa
- 💰 Baixo custo
- 🔧 Fácil programação via Arduino IDE
- 🔌 Conexão USB direta (não precisa de conversor externo)
- 📚 Grande comunidade e vasta documentação
Entender a pinagem é essencial para conectar sensores, atuadores e outros componentes. Consulte o diagrama abaixo:
| Pino NodeMCU | GPIO ESP8266 | Função Especial |
|---|---|---|
| D0 | GPIO16 | Wake up |
| D1 | GPIO5 | I2C (SCL) |
| D2 | GPIO4 | I2C (SDA) |
| D3 | GPIO0 | Flash |
| D4 | GPIO2 | LED integrado |
| D5 | GPIO14 | SPI (SCK) |
| D6 | GPIO12 | SPI (MISO) |
| D7 | GPIO13 | SPI (MOSI) |
| D8 | GPIO15 | SPI (CS) |
| D9 | GPIO3 | RX (UART) |
| D10 | GPIO1 | TX (UART) |
| A0 | ADC0 | Entrada Analógica (0-1V) |
- A placa opera em 3.3V nos pinos GPIO
- O pino analógico A0 suporta apenas 0-1V (não conecte 5V!)
- Alguns pinos têm funções especiais e devem ser usados com cuidado durante o boot
Entender a pinagem é essencial para conectar sensores, atuadores e controlar LEDs. O ESP-01 possui apenas 8 pinos, sendo 4 GPIOs disponíveis. Consulte o diagrama abaixo:
| Pino Físico | Nome | Função Especial |
|---|---|---|
| 1 | GND | Ground |
| 2 | GPIO2 | TX1, I2C (SDA) |
| 3 | GPIO0 | Flash/Boot |
| 4 | GPIO3 | RX (UART) |
| 5 | GPIO1 | TX (UART) |
| 6 | EN | Chip Enable |
| 7 | RST | Reset |
| 8 | VCC | Power Supply (3.3V) |
Pinos de Comunicação Serial:
- GPIO1 (TXD) e GPIO3 (RXD) são pinos UART
⚠️ Desconecte esses pinos dos transistores durante o upload do código- ✅ Reconecte após o upload estar completo
Modo de Programação:
- GPIO0 deve estar conectado ao GND durante o upload
- GPIO0 deve estar em HIGH durante operação normal (já configurado no código)
Para programar o ESP-01, use um adaptador USB-Serial (CH340 ou FTDI):
ESP-01 Adaptador USB-Serial
──────────────────────────────────
GND ────► GND
VCC ────► 3.3V (⚠️ NÃO use 5V!)
TX ────► RX
RX ────► TX
GPIO0 ────► GND (apenas durante upload)
EN ────► 3.3V
Sequência de Upload:
- Conecte GPIO0 ao GND
- Conecte o adaptador USB
- Faça o upload do código
- Desconecte GPIO0 do GND
- Pressione Reset ou reconecte a alimentação
Antes de começar, você precisará de:
- 🔌 Placa NodeMCU v3 CH340
- 🔄 Cabo USB Micro-B (para programação e alimentação)
- 💻 Computador (Windows, Linux ou macOS)
- 🛠️ Arduino IDE (versão 1.8.x ou superior)
- 📡 Driver CH340 (para comunicação USB)
- 📚 Biblioteca ESP8266 para Arduino IDE
A placa NodeMCU v3 utiliza o chip CH340G como conversor USB-Serial. Na maioria dos sistemas operacionais modernos, o driver é instalado automaticamente, mas caso não funcione, siga os passos abaixo:
- Baixe o driver: 📥 Driver CH340 (Incluído neste repositório)
- Extraia o arquivo ZIP
- Execute o instalador correspondente ao seu sistema:
CH341SER.EXEpara Windows
- Siga as instruções na tela
- Reinicie o computador (se solicitado)
- Conecte a placa NodeMCU via USB
- Verifique se foi reconhecida em
Gerenciador de Dispositivos > Portas (COM e LPT)
Na maioria das distribuições Linux, o driver já vem integrado ao kernel. Caso necessário:
sudo apt-get install linux-headers-$(uname -r)Baixe o driver específico para macOS no site oficial do fabricante.
Após instalar o driver, conecte a placa e verifique:
- Windows:
Gerenciador de Dispositivos- deve aparecer comoUSB-SERIAL CH340 (COMx) - Linux/macOS: Execute
ls /dev/tty*- deve aparecer algo como/dev/ttyUSB0ou/dev/cu.wchusbserial
- Acesse o site oficial: 🔗 https://www.arduino.cc/en/software
- Baixe a versão adequada para seu sistema operacional
- Instale seguindo as instruções do instalador
- Execute o Arduino IDE
-
Abra o Arduino IDE
-
Acesse as Preferências:
- Menu:
Arquivo>Preferências(ouFile>Preferences)
- Menu:
-
Adicione a URL do gerenciador de placas:
- No campo "URLs Adicionais para Gerenciadores de Placas", cole a seguinte URL:
http://arduino.esp8266.com/stable/package_esp8266com_index.json- Se já houver outras URLs, separe-as com vírgula ou clique no ícone de janela ao lado do campo para adicionar em uma nova linha
- Clique em OK
-
Instale a biblioteca ESP8266:
- Menu:
Ferramentas>Placa>Gerenciador de Placas...(ouTools>Board>Boards Manager...) - Na barra de pesquisa, digite: esp8266
- Localize "esp8266 by ESP8266 Community"
- Clique em Instalar
- Aguarde o download e instalação (pode demorar alguns minutos)
- Clique em Fechar
- Menu:
-
Selecione a placa:
- Menu:
Ferramentas>Placa>ESP8266 Boards>Generic ESP8266 Module - Caso tenha erros de compilação, altere a placa para ou "NodeMCU 1.0 (ESP-12E Module)" ou "NodeMCU 0.9 (ESP-12 Module)
- Menu:
-
Configure os parâmetros da placa:
Ferramentas>Upload Speed: 115200Ferramentas>CPU Frequency: 80 MHzFerramentas>Flash Size: 4MB (FS:2MB OTA:~1019KB)` (ou similar)Ferramentas>Port: Selecione a porta COM onde a placa está conectada (ex: COM3, /dev/ttyUSB0)
Vamos fazer um teste simples para garantir que tudo está funcionando:
-
Abra o exemplo Blink:
- Menu:
Arquivo>Exemplos>ESP8266>Blink
- Menu:
-
Carregue o código:
- Clique no botão Upload (seta para direita) ou pressione
Ctrl+U - Aguarde a compilação e upload
- Você verá mensagens no console indicando o progresso
- Clique no botão Upload (seta para direita) ou pressione
-
Resultado:
- O LED integrado da placa (conectado ao GPIO2/D4) deve piscar
- Se funcionar, parabéns! Sua configuração está correta! 🎉
❌ Erro de upload / Porta não detectada:
- Verifique se o driver CH340 está instalado corretamente
- Tente outro cabo USB (alguns cabos são apenas para carregamento)
- Reinicie o Arduino IDE
- No Windows, verifique o Gerenciador de Dispositivos
❌ Erro "espcomm_sync failed":
- Segure o botão FLASH na placa durante o upload
- Tente reduzir a velocidade de upload para 57600
❌ Placa não entra em modo de programação:
- Desconecte e reconecte o cabo USB
- Pressione o botão RST (reset) na placa antes do upload
Abaixo estão listados todos os projetos disponíveis neste repositório. Cada projeto possui documentação detalhada em sua respectiva pasta.
� Dica: Comece pelo Basic Test para validar sua configuração, depois explore os projetos de alarme!
Projeto inicial para testar a placa e validar a configuração do Arduino IDE. Faz o LED integrado piscar.
Sistema de alarme com sensor ultrassônico HC-SR04. Conversão do projeto original do Manual do Mundo para ESP8266.
Evolução do Alarme v1 com interface web completa! Controle o alarme remotamente via Wi-Fi usando qualquer navegador.
Ferramenta de teste para módulos joystick analógico com visualização em display OLED e interface web em tempo real.
Sistema de teste e controle para servo motores com interface web, detecção automática de tipo e PWM otimizado para ESP8266.
Sistema de controle de LEDs RGB com efeito realista de vela via WiFi, utilizando ESP-01 (ESP8266) com interface web responsiva e 7 modos diferentes de simulação de chama.
Radar de varredura ultrassônico com exibição em tempo real no display OLED, utilizando ESP8266 (NodeMCU) com servo motor, sensor HC-SR04 e buzzer de alerta progressivo que acelera os bips conforme o objeto se aproxima.
Este repositório nasceu do objetivo pessoal de converter projetos Arduino para ESP8266, explorando os recursos adicionais da placa, especialmente o Wi-Fi integrado. Após estudar com Arduino, este repositório documenta a jornada de aprendizado com o ESP8266, mantendo a compatibilidade com projetos clássicos e adicionando funcionalidades IoT.
🚧 Novos projetos em desenvolvimento! Mais conversões e projetos originais serão adicionados regularmente.
Contribuições são bem-vindas! Se você desenvolveu um projeto interessante com ESP8266, sinta-se à vontade para compartilhar.
Este projeto é distribuído sob a licença MIT. Sinta-se livre para usar, modificar e distribuir.
-
🔋 Alimentação: A placa pode ser alimentada via USB (5V) ou pelo pino VIN (5-12V). Os pinos GPIO operam em 3.3V!
-
🔒 Proteção: Sempre desconecte a alimentação antes de fazer conexões de hardware.
-
📖 Leia a documentação: Cada projeto tem seu README com instruções específicas.
-
🧪 Experimente: Não tenha medo de testar e modificar os códigos!
-
🌐 Wi-Fi: O ESP8266 pode operar como cliente (conectar a uma rede) ou Access Point (criar sua própria rede).
-
💾 Memória: Tome cuidado com o uso de memória - o ESP8266 tem limitações de RAM.
Desenvolvido com ❤️ para a comunidade maker!

