Comunicação I2C entre NodeMCU e Arduino UNO
Introdução
O protocolo I2C é muito utilizado em projetos de eletrônica para comunicação entre dispositivos usando apenas dois fios:
-
SDA: linha de dados
-
SCL: linha de clock
Neste tutorial, vamos demonstrar como fazer a comunicação I2C entre dois microcontroladores:
-
Um Arduino Uno como escravo (slave)
-
Um NodeMCU ESP8266 como mestre (master)
Essa comunicação permite, por exemplo, que o NodeMCU envie comandos ou receba dados do Arduino Uno em um projeto maior, como automação residencial, monitoramento ou controle de sensores.
Materiais necessários
-
1x NodeMCU (ESP8266)
-
1x Arduino Uno
-
2x Resistores pull-up de 4.7kΩ (opcional, mas recomendado)
-
Jumpers macho-macho
-
Protoboard
Ligações entre NodeMCU e Arduino Uno
| Arduino Uno | NodeMCU | Função |
|---|---|---|
| A4 | D2 (GPIO4) | SDA |
| A5 | D1 (GPIO5) | SCL |
| GND | GND | Terra comum |
Importante: Use resistores de 4.7kΩ entre SDA/SCL e o VCC de 3.3V para garantir sinal estável.
Código do Arduino Uno (escravo)
Código do NodeMCU (mestre)
Bibliotecas usadas
-
Wire.h: já vem incluída no IDE do Arduino e é compatível com o ESP8266
Se estiver usando o Arduino IDE com o NodeMCU, instale o pacote ESP8266:
Ferramentas > Placa > Gerenciador de Placas > ESP8266 by ESP8266 Community
Teste do projeto
-
Faça as conexões conforme o esquema
-
Carregue o código do Arduino Uno primeiro
-
Em seguida, carregue o código no NodeMCU
-
Abra o monitor serial do NodeMCU (baud 115200)
-
Veja os dados sendo enviados e recebidos via I2C
Dicas de solução de problemas
-
Confirme que os fios SDA/SCL estão nos pinos corretos.
-
Use GND comum entre os dois dispositivos.
-
Se a comunicação falhar, adicione resistores pull-up de 4.7kΩ em SDA e SCL.
-
Verifique o endereço do escravo (aqui usamos
8, mas você pode mudar).
Conclusão
A comunicação I2C entre NodeMCU e Arduino Uno abre possibilidades interessantes para projetos que combinam as capacidades de conectividade do ESP8266 com sensores ou periféricos conectados ao Arduino. Com poucos fios, é possível criar um sistema robusto e eficiente.
Se quiser expandir, você pode:
-
Enviar dados analógicos ou sensores do Arduino para o ESP
-
Criar comandos do NodeMCU para controlar motores via Arduino
-
Integrar com interface web no ESP8266 para controlar todo o sistema
Nenhum comentário:
Postar um comentário