材料准备
Arduino UNO带WiFi模块
HC-SR04超声波模块
继电器
遥控车
杜邦线
电源
电脑
安卓手机
代码演示
#include<ESP8266WiFi.h>
#define Dong1 D6//定义马达接口
#define Dong2 D7
#define Zhuan1 D4
#define Zhuan2 D5
#define echo D2//定义超声波接口
#define trig D8
long getTime()//获取超声波时间
{
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
return pulseIn(echo, HIGH);
}
void initBo()//初始化超声波
{
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
}
char* ssid = "RICKO";//连接wifi
char* passwd = "rickoyuzhe";
int port = 8888;
WiFiServer server(port);
void initwifista()//初始化wifi模块并且连接
{
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, passwd);
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.println(WiFi.localIP());
}
void initL9119s() { //初始化控制器
pinMode(Dong1, OUTPUT);
pinMode(Dong2, OUTPUT);
pinMode(Zhuan1, OUTPUT);
pinMode(Zhuan2, OUTPUT);
}
//开始定义前后左右等
void ting() {
digitalWrite(Dong1, LOW);
digitalWrite(Dong2, LOW);
}
void hou() {
digitalWrite(Dong1, LOW);
digitalWrite(Dong2, HIGH);
}
void qian(int dis) {
digitalWrite(Dong1, HIGH);
digitalWrite(Dong2, LOW);
}
void zheng() {
digitalWrite(Zhuan1, LOW);
digitalWrite(Zhuan2, LOW);
}
void you() {
digitalWrite(Zhuan1, HIGH);
digitalWrite(Zhuan2, LOW);
}
void zuo() {
digitalWrite(Zhuan1, LOW);
digitalWrite(Zhuan2, HIGH);
}
void setup() {
// put your setup code here, to run once:
initL9119s();
initBo();
Serial.begin(115200);
initwifista();
server.begin(); Serial.begin(115200);
initwifista();
server.begin();
}
void loop() {
int mark = 0;
long dis;
char cmd;
WiFiClient client = server.available();
while (client.connected()) {
while (client.available() > 0) {
cmd = client.read();//开始接收信号并且在switch中进行相对应的操作
dis = getTime() / 58; //获取距离
if (dis < 10) {//如果检测到前方距离小于10cm就自动后退
hou();
delay(200);
ting();
mark = 1;
} else {
mark = 0;
}
if (mark == 0) {
switch (cmd) {
case 'q':
qian(dis);
break;
case 'h':
hou();
break;
case 'z':
zuo();
break;
case 'y':
you();
break;
case 't':
ting();
break;
case 'g':
zheng();
break;
}
}
}
}
}
模型展示
可使用tcp工具进行发送指令
也可以配合开发出手机app优化操作