├── ESP8266_MPU6050 ├── ykq │ └── ykq.ino └── zj │ └── zj.ino ├── README.md └── xc.png /ESP8266_MPU6050/ykq/ykq.ino: -------------------------------------------------------------------------------- 1 | /* 原力小车遥控程序 2 | MPU6050 ESP8266 3 | vin—————————vin 4 | gnd—————————gnd 5 | scl—————————D1 6 | sda—————————D2 7 | */ 8 | 9 | 10 | 11 | 12 | 13 | #include 14 | #include 15 | #include 16 | const char* ssid = "Voyager";//←这里引号里面的是要链接的WiFi(这里改主程序也必须改成一样的(*^_^*)) 17 | const char* host = "192.168.1.1"; 18 | String light_get; 19 | 20 | MPU6050 mpu; 21 | int test=0; 22 | int tesx=0; 23 | void setup() 24 | { 25 | Serial.begin(115200); 26 | 27 | Serial.println("启动"); 28 | delay(10); 29 | WiFi.mode(WIFI_STA); 30 | WiFi.begin(ssid); 31 | while (WiFi.status() != WL_CONNECTED) { 32 | delay(500); 33 | Serial.print("."); 34 | } 35 | Serial.println(""); 36 | 37 | Serial.print("IP: "); 38 | Serial.println(WiFi.localIP()); 39 | 40 | while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) 41 | { 42 | Serial.println("无法获取到数据"); 43 | delay(500); 44 | } 45 | } 46 | 47 | void loop() 48 | { 49 | Vector normAccel = mpu.readNormalizeAccel(); 50 | int pitch = (atan2(normAccel.XAxis, sqrt(normAccel.YAxis*normAccel.YAxis + normAccel.ZAxis*normAccel.ZAxis))*180.0)/M_PI; 51 | int roll = (atan2(normAccel.YAxis, normAccel.ZAxis)*180.0)/M_PI; 52 | 53 | 54 | if(pitch>30 && pitch<38){ 55 | test=1; 56 | Serial.println("前进"); 57 | 58 | }else if( pitch>4&&pitch<15){ 59 | test=2; 60 | Serial.println("后退"); 61 | 62 | }else if(roll>5&&roll<15){ 63 | test=3; 64 | Serial.println("向左"); 65 | 66 | }else if(roll<50&&roll>40){ 67 | test=4; 68 | Serial.println("向右"); 69 | 70 | }else{ 71 | test=5; 72 | Serial.println("停止"); 73 | } 74 | 75 | 76 | 77 | light_get = "/opera?opera="+String(test); 78 | WiFiClient client; 79 | const int httpPort = 80; 80 | if (!client.connect(host, httpPort)) { 81 | Serial.println("Cannot Request" + * host); 82 | return; 83 | } 84 | client.print(String("GET ") + light_get + " HTTP/1.1\r\n" + 85 | "Host: " + host + "\r\n" + 86 | "Connection: close\r\n\r\n"); 87 | while(client.available()) { 88 | String line = client.readStringUntil('\r'); 89 | Serial.print(line); 90 | } 91 | 92 | 93 | 94 | 95 | /* 96 | // Output 97 | Serial.print(" 俯仰轴 = "); 98 | Serial.print(pitch); 99 | Serial.print(" 横滚轴 = "); 100 | Serial.print(roll); 101 | 102 | Serial.println(); 103 | */ 104 | delay(50); 105 | } 106 | -------------------------------------------------------------------------------- /ESP8266_MPU6050/zj/zj.ino: -------------------------------------------------------------------------------- 1 | /* 原力小车主机程序 2 | L298N ESP8266 3 | in1—————————D5 4 | in2—————————D6 5 | in3—————————D7 6 | in4—————————D8 7 | vcc—————————12v 8 | 5v—————————vcc 9 | GND—————————GND 10 | */ 11 | 12 | 13 | #include 14 | #include 15 | #include 16 | IPAddress apIP(192, 168, 1, 1); 17 | ESP8266WebServer server (80); 18 | 19 | void setup() { 20 | WiFi.softAP("Voyager"); 21 | Serial.begin (115200); 22 | Serial.println("Loading..."); 23 | WiFi.mode(WIFI_AP); 24 | WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); 25 | 26 | Serial.println(WiFi.localIP()); 27 | server.begin(); 28 | server.on("/",abc); 29 | server.on("/opera", opera); 30 | pinMode(D5, OUTPUT); 31 | pinMode(D6, OUTPUT); 32 | pinMode(D7, OUTPUT); 33 | pinMode(D8, OUTPUT); 34 | 35 | 36 | 37 | } 38 | 39 | 40 | void abc(){ 41 | File file = SPIFFS.open("/index.html", "r"); 42 | server.streamFile(file, "text/html"); 43 | file.close(); 44 | } 45 | 46 | void opera() { 47 | String parm = server.arg("opera"); 48 | 49 | Serial.println(parm); 50 | if(parm=="1"){ 51 | digitalWrite(D5, HIGH); //in1 正 52 | digitalWrite(D6, LOW); //in2反 53 | 54 | digitalWrite(D7, HIGH); //in3 正 55 | digitalWrite(D8, LOW); //in3反 56 | 57 | }if(parm=="2"){ 58 | digitalWrite(D5, LOW); //in1 正 59 | digitalWrite(D6, HIGH); //in2反 60 | 61 | digitalWrite(D7, LOW); //in3 正 62 | digitalWrite(D8, HIGH); //in3反 63 | }if(parm=="3"){ 64 | digitalWrite(D5, HIGH); //in1 正 65 | digitalWrite(D6, LOW); //in2反 66 | 67 | digitalWrite(D7, LOW); //in3 正 68 | digitalWrite(D8, HIGH); //in3反 69 | }if(parm=="4"){ 70 | digitalWrite(D5, LOW); //in1 正 71 | digitalWrite(D6, HIGH); //in2反 72 | 73 | digitalWrite(D7, HIGH); //in3 正 74 | digitalWrite(D8, LOW); //in3反 75 | }if(parm=="5"){ 76 | digitalWrite(D5, LOW); //in1 正 77 | digitalWrite(D6, LOW); //in2反 78 | 79 | digitalWrite(D7, LOW); //in3 正 80 | digitalWrite(D8, LOW); //in3反 81 | } 82 | 83 | 84 | 85 | server.send(200, "text/plain", "ok"); 86 | } 87 | 88 | void loop() { 89 | server.handleClient(); 90 | delay(10); 91 | } 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ESP8266-_MPU6050 2 | ESP8266 + MPU6050的体感遥控小车 3 | ![封面](https://github.com/bilibilifmk/ESP8266-_MPU6050/blob/master/xc.png) 4 | ## 演示视频:https://www.bilibili.com/video/av53294070/ 5 | -------------------------------------------------------------------------------- /xc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bilibilifmk/ESP8266-_MPU6050/70a565a8908a24bb0e4344390ef74cf873f21922/xc.png --------------------------------------------------------------------------------