Como Ligar NodeMcu ESP8266 Com Um MPU6050
by projete2103 in Circuits > Microcontrollers
551 Views, 1 Favorites, 0 Comments
Como Ligar NodeMcu ESP8266 Com Um MPU6050
O tutorial consiste em:
•Entender como ligar um NodeMcu ESP8266 junto com um MPU6050 alimentado por uma bateria de 3.7V;
•Entender detalhes da programação necessária para o funcionamento correto do circuito.
•Entender como ligar um NodeMcu ESP8266 junto com um MPU6050 alimentado por uma bateria de 3.7V;
•Entender detalhes da programação necessária para o funcionamento correto do circuito.
Supplies
• NodeMcu ESP8266 = 1un
• MPU6050 = 1un
• Proto Placa Dupla Face = 1un
• Mini Usb Carregador Bateria Tp4056 = 1un
• Bateria De Lipo 3,7v 1100mah = 1un
• Fios rígidos de 1mm = 1m
• Barra de pinos macho-fêmea = 2un
• MPU6050 = 1un
• Proto Placa Dupla Face = 1un
• Mini Usb Carregador Bateria Tp4056 = 1un
• Bateria De Lipo 3,7v 1100mah = 1un
• Fios rígidos de 1mm = 1m
• Barra de pinos macho-fêmea = 2un
Identificação Dos Pinos
Primeiramente identifique as posições dos pinos dos componentes necessários para a montagem, assim evitando o risco de danificar os componentes.
Pinos para identificação:
ESP8266: G, VIN, D5,D6, 3V, G;
MPU6050: VCC, GND, SCL, SDA;
Mini USB carregador: BAT+ e BAT-;
Bateria: Positivo e Negativo.
Pinos para identificação:
ESP8266: G, VIN, D5,D6, 3V, G;
MPU6050: VCC, GND, SCL, SDA;
Mini USB carregador: BAT+ e BAT-;
Bateria: Positivo e Negativo.
Alimentando O NodeMcu ESP8266
•Identifique os pinos VIN e G do NodeMcu ESP8266;
• Identifique os pinos BAT+ e BAT- no Mini USb Carregador Bateria Tp4056;
Após identificar os pinos, inicie as ligações:
-Faça a ligação do pino VIN no pino BAT+;
-Faça a ligação do pino G no pino BAT-;
Com essas ligações o NodeMcu ESP8266 já está alimentado.
• Identifique os pinos BAT+ e BAT- no Mini USb Carregador Bateria Tp4056;
Após identificar os pinos, inicie as ligações:
-Faça a ligação do pino VIN no pino BAT+;
-Faça a ligação do pino G no pino BAT-;
Com essas ligações o NodeMcu ESP8266 já está alimentado.
Alimentando O MPU6050
• Identifique os pinos VCC e GND do MPU6050;
• Identifique os pinos 3V e G do NodeMcu ESP8266;
Após identificar os pinos, inicie a montagem:
-Faça a ligação do pino VCC com o pino 3V;
-Faça a ligação do pino GND com o pino G;
Com essas ligações o MPU8266 já está alimentado.
• Identifique os pinos 3V e G do NodeMcu ESP8266;
Após identificar os pinos, inicie a montagem:
-Faça a ligação do pino VCC com o pino 3V;
-Faça a ligação do pino GND com o pino G;
Com essas ligações o MPU8266 já está alimentado.
Ligando a Bateria Com O Mini Usb Carregador Bateria Tp4056
• Identifique os pinos BAT+ e BAT- no Mini Usb Carregador Bateria Tp4056;
• Identifique o fio positivo e negativo da Bateria;
Após identificar os pinos e os fios, inicie as ligações:
- Faça a ligação do fio positivo da Bateria no pino BAT+ Do Mini USB Carregador;
- Faça a ligação do fio negativo da Bateria no pino BAT- do Mini USB Carregador;
Após essas ligações, já está pronto a conexão entre a Bateria e o Mini USB Carregador.
• Identifique o fio positivo e negativo da Bateria;
Após identificar os pinos e os fios, inicie as ligações:
- Faça a ligação do fio positivo da Bateria no pino BAT+ Do Mini USB Carregador;
- Faça a ligação do fio negativo da Bateria no pino BAT- do Mini USB Carregador;
Após essas ligações, já está pronto a conexão entre a Bateria e o Mini USB Carregador.
Comunicação Entre O NodeMcu ESP8266 Com O MPU8266
• Identifique os pinos D5 e D6 do NodeMcu ESP8266;
• Identifique os pinos SDA e SCL do MPU6050;
Após identificar os pinos, faça as seguintes ligações:
- Faça a ligação do pino D5 no pino SDA;
- Faça a ligação do pino D6 no pino SCL;
Com essas ligações o NodeMcu ESP8266 e o MPU6050 já está pronto para se comunicar após fazer a programação.
• Identifique os pinos SDA e SCL do MPU6050;
Após identificar os pinos, faça as seguintes ligações:
- Faça a ligação do pino D5 no pino SDA;
- Faça a ligação do pino D6 no pino SCL;
Com essas ligações o NodeMcu ESP8266 e o MPU6050 já está pronto para se comunicar após fazer a programação.
Programação
A programação abaixo faz com que o MPU6050 consiga mandar as informações para o NodeMcu ESP8266:
#include
#include
#include
// Server connect to WiFi Network
const char *ssid = "******"; //Endereço/nome da rede
const char *password = "*******"; //Senha do wifi
// CRIAÇÂO DO SERVER
WiFiServer server(555);
const int MPU=0x68;
float aX, aY,aZ, gX, gY, gZ;
String ax,ay,az,gx,gy,gz;
const int SdaPin = D5;
const int SclPin = D6;
//-------------------VOID SETUP--------------------
void setup()
{
Serial.begin(115200);
Serial.println();
// Conexão com WIFI
WiFi.mode(WIFI_AP);//Acess Point ou seja um server
WiFi.begin(ssid, password); //Connect to wifi
// Wait for connection
Serial.println("Connecting to Wifi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.print(WiFi.localIP());//Adress do server com a porta
Serial.print("Connected to ");
Serial.println(ssid);
server.begin();//Inicia o servidor TCP na porta
//LED
pinMode(BUILTIN_LED, OUTPUT);
//MPU
// Inicia o MPU
Wire.begin(SdaPin,SclPin); //inicia a comunicação serial IC2
Wire.beginTransmission(MPU); //Inicia a transmissão para adress do mpu, begin = começar
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);//
}
//-----------------------VOID LOOP-------------------------
void loop()
{
// WIFI
WiFiClient client = server.available();
delay(200);
if(client){
while(client.connected()){ //Enquanto o cliente estiver conectado fazer oq estiver nas aspas
// MPU
//Inicio da transmissão
Wire.beginTransmission(MPU); //transmite
Wire.write(0x3B); //Endereço 0x3B(ACELL_XOUT_H)
Wire.endTransmission(false); //finaliza a transmissão
Wire.requestFrom(MPU,14,true); //requisita bytes
//Recpção de dados
aX= Wire.read()<<8|Wire.read(); //0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)
aY= Wire.read()<<8|Wire.read(); //0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
aZ= Wire.read()<<8|Wire.read(); //0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
gX= Wire.read()<<8|Wire.read(); //0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
gY= Wire.read()<<8|Wire.read(); //0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L) Dividido por 100 para ficar dentro dos parametros Max e Min
gZ= Wire.read()<<8|Wire.read(); //0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L) Valores captados com margens de erro de 5
aX = map(aX,-32768,32768,-50,50);
aY = map(aY,-32768,32768,-50,50);
aZ = map(aZ,-32768,32768,-50,50);
ax = String(aX,1);
ay = String(aY,1);
az = String(aZ,1);
Serial.print(ax);//Quando acaba a conexão para
//client.printOuWrite("89");Teste bem sucedido
client.print(ax+"/"+ay+"/"+az+"/");
delay(100);
}
client.stop();
}
}
———————————————————
Feito a programação e o circuito devidamente montado, o NodeMcu ESP8266 já está recebendo as informações do MPU6050.
#include
#include
#include
// Server connect to WiFi Network
const char *ssid = "******"; //Endereço/nome da rede
const char *password = "*******"; //Senha do wifi
// CRIAÇÂO DO SERVER
WiFiServer server(555);
const int MPU=0x68;
float aX, aY,aZ, gX, gY, gZ;
String ax,ay,az,gx,gy,gz;
const int SdaPin = D5;
const int SclPin = D6;
//-------------------VOID SETUP--------------------
void setup()
{
Serial.begin(115200);
Serial.println();
// Conexão com WIFI
WiFi.mode(WIFI_AP);//Acess Point ou seja um server
WiFi.begin(ssid, password); //Connect to wifi
// Wait for connection
Serial.println("Connecting to Wifi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
delay(500);
}
Serial.println("");
Serial.print(WiFi.localIP());//Adress do server com a porta
Serial.print("Connected to ");
Serial.println(ssid);
server.begin();//Inicia o servidor TCP na porta
//LED
pinMode(BUILTIN_LED, OUTPUT);
//MPU
// Inicia o MPU
Wire.begin(SdaPin,SclPin); //inicia a comunicação serial IC2
Wire.beginTransmission(MPU); //Inicia a transmissão para adress do mpu, begin = começar
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);//
}
//-----------------------VOID LOOP-------------------------
void loop()
{
// WIFI
WiFiClient client = server.available();
delay(200);
if(client){
while(client.connected()){ //Enquanto o cliente estiver conectado fazer oq estiver nas aspas
// MPU
//Inicio da transmissão
Wire.beginTransmission(MPU); //transmite
Wire.write(0x3B); //Endereço 0x3B(ACELL_XOUT_H)
Wire.endTransmission(false); //finaliza a transmissão
Wire.requestFrom(MPU,14,true); //requisita bytes
//Recpção de dados
aX= Wire.read()<<8|Wire.read(); //0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)
aY= Wire.read()<<8|Wire.read(); //0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
aZ= Wire.read()<<8|Wire.read(); //0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
gX= Wire.read()<<8|Wire.read(); //0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
gY= Wire.read()<<8|Wire.read(); //0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L) Dividido por 100 para ficar dentro dos parametros Max e Min
gZ= Wire.read()<<8|Wire.read(); //0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L) Valores captados com margens de erro de 5
aX = map(aX,-32768,32768,-50,50);
aY = map(aY,-32768,32768,-50,50);
aZ = map(aZ,-32768,32768,-50,50);
ax = String(aX,1);
ay = String(aY,1);
az = String(aZ,1);
Serial.print(ax);//Quando acaba a conexão para
//client.printOuWrite("89");Teste bem sucedido
client.print(ax+"/"+ay+"/"+az+"/");
delay(100);
}
client.stop();
}
}
———————————————————
Feito a programação e o circuito devidamente montado, o NodeMcu ESP8266 já está recebendo as informações do MPU6050.