基于Wemos的wifi避障小车的项目实现

    技术2025-02-19  15

    项目实现:手机操控小车行动,遇到障碍物自动后退。 项目所需模块:wemos D1 wifi esp8266开发版,超声波模块,继电器 实现代码:

    #include <ESP8266WiFi.h> #define Zhuan1 D6 #define Zhuan2 D7 #define Dong1 D4 #define Dong2 D5 #define Echo D2 #define Trig D8 char* ssid = "xxxx"; char* passwd = "xxxxx"; int port = 8888; WiFiServer server(port); long getTime() { digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); return pulseIn(Echo, HIGH); } void initChaoShengBo() { pinMode(Echo, INPUT); pinMode(Trig, OUTPUT); } void initWifiSta() { WiFi.mode(WIFI_STA); WiFi.begin(ssid, passwd); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(WiFi.localIP()); } void initL9110s() { pinMode(Dong1, OUTPUT); pinMode(Dong2, OUTPUT); pinMode(Zhuan1, OUTPUT); pinMode(Zhuan2, OUTPUT); } void qian() { digitalWrite(Dong1, HIGH); digitalWrite(Dong2, LOW); } void hou() { digitalWrite(Dong1, LOW); digitalWrite(Dong2, HIGH); } void ting() { digitalWrite(Dong1, LOW); digitalWrite(Dong2, LOW); } void zuo() { digitalWrite(Zhuan1, HIGH); digitalWrite(Zhuan2, LOW); } void you() { digitalWrite(Zhuan1, LOW); digitalWrite(Zhuan2, HIGH); } void zheng() { digitalWrite(Zhuan1, LOW); digitalWrite(Zhuan2, LOW); } void setup() { // put your setup code here, to run once: initL9110s(); initChaoShengBo(); Serial.begin(115200); initWifiSta(); server.begin(); } void loop() { // put your main code here, to run repeatedly: char cmd; int mark = 0; long dis; WiFiClient client = server.available(); while (client.connected()) { while (client.available() > 0) { cmd = client.read(); Serial.println(cmd); dis = getTime() / 58; if (dis < 10) { hou(); delay(200); ting(); mark = 1; } else { mark = 0; } if (mark == 0) { switch (cmd) { case 'q': qian(); break; case 'h': hou(); break; case 's': ting(); break; case 'y': you(); break; case 'z': zuo(); break; case 'd': zheng(); break; } } } } }

    注:具体实物和代码会有偏差,需自行调试。

    Processed: 0.029, SQL: 9