串口控制小车前进后退
#define Dong1 D6
#define Dong2 D7
#define Zhuan1 D4
#define Zhuan2 D5
void initL9110s()
{
pinMode(Dong1, OUTPUT);
pinMode(Dong2, OUTPUT);
pinMode(Zhuan1, OUTPUT);
pinMode(Zhuan2, OUTPUT);
}
void back()
{
digitalWrite(Dong1, LOW);
digitalWrite(Dong2, HIGH);
}
void before()
{
digitalWrite(Dong1, HIGH);
digitalWrite(Dong2, LOW);
}
void right()
{
digitalWrite(Zhuan1, HIGH);
digitalWrite(Zhuan2, LOW);
}
void left()
{
digitalWrite(Zhuan1, LOW);
digitalWrite(Zhuan2, HIGH);
}
void setup() {
// put your setup code here, to run once:
initL9110s();
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
char cmd;
if (Serial.available() > 0)
{
cmd = Serial.read();
switch (cmd)
{
case 'q':
before(); break;
case 'h':
back(); break;
case 'z':
left(); break;
case 'y':
right(); break;
}
}
}
WiFi模块控制小车
#include <ESP8266WiFi.h>
#define Dong1 D6
#define Dong2 D7
#define Zhuan1 D4
#define Zhuan2 D5
char* ssid = "WiFi名";
char* passwd = "WiFi密码";
int port = 8888; //端口号
WiFiServer server(port); // 设置服务器端口号
void initWifiSta()
{
WiFi.mode(WIFI_STA); // 设置STA模式
WiFi.begin(ssid, passwd); //连接网络
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址
}
void initL9110s()
{
pinMode(Dong1, OUTPUT);
pinMode(Dong2, OUTPUT);
pinMode(Zhuan1, OUTPUT);
pinMode(Zhuan2, OUTPUT);
}
void back()
{
digitalWrite(Dong1, LOW);
digitalWrite(Dong2, HIGH);
}
void before()
{
digitalWrite(Dong1, HIGH);
digitalWrite(Dong2, LOW);
}
void right()
{
digitalWrite(Zhuan1, HIGH);
digitalWrite(Zhuan2, LOW);
}
void left()
{
digitalWrite(Zhuan1, LOW);
digitalWrite(Zhuan2, HIGH);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
initL9110s();
initWifiSta();
server.begin();//启动服务器
}
void loop() {
// put your main code here, to run repeatedly:
char cmd;
WiFiClient client = server.available(); //服务初始化
while (client.connected()) //等待客户端连接
{
while (client.available() > 0) //有数据到来,类似串口的那个函数
{
cmd = client.read();//读取数据
switch (cmd)
{
case 'q':
before(); break;
case 'h':
back(); break;
case 'z':
left(); break;
case 'y':
right(); break;
}
}
}
}
小车最终代码
#include <ESP8266WiFi.h>
#define Echo D2
#define Trig D8
#define Dong1 D6
#define Dong2 D7
#define Zhuan1 D4
#define Zhuan2 D5
char* ssid = "WiFi名";
char* passwd = "WiFi密码";
int port = 8888; //端口号
WiFiServer server(port); // 设置服务器端口号
long getTime()
{
digitalWrite(Trig, HIGH);//设置一个方波
delayMicroseconds(10);
digitalWrite(Trig, LOW);
return pulseIn(Echo, HIGH);//微秒
}
void initUltrasonic()
{
pinMode(Echo, INPUT);
pinMode(Trig, OUTPUT);
}
void initWifiSta()
{
WiFi.mode(WIFI_STA); // 设置STA模式
WiFi.begin(ssid, passwd); //连接网络
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址
}
void initL9110s()
{
pinMode(Dong1, OUTPUT);
pinMode(Dong2, OUTPUT);
pinMode(Zhuan1, OUTPUT);
pinMode(Zhuan2, OUTPUT);
}
void back()
{
digitalWrite(Dong1, LOW);
digitalWrite(Dong2, HIGH);
}
void before()
{
digitalWrite(Dong1, HIGH);
digitalWrite(Dong2, LOW);
}
void ting()
{
digitalWrite(Dong1, LOW);
digitalWrite(Dong2, LOW);
}
void right()
{
digitalWrite(Zhuan1, HIGH);
digitalWrite(Zhuan2, LOW);
}
void left()
{
digitalWrite(Zhuan1, LOW);
digitalWrite(Zhuan2, HIGH);
}
void zheng()
{
digitalWrite(Zhuan1, LOW);
digitalWrite(Zhuan2, LOW);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);//打开串口
initUltrasonic();//初始化超声波
initL9110s();//初始化点击
initWifiSta(); //初始化WiFi
server.begin();//启动服务器
}
void loop() {
// put your main code here, to run repeatedly:
char cmd;
long dis; //距离
int mark;
WiFiClient client = server.available(); //服务初始化
while (client.connected()) //等待客户端连接
{
while (client.available() > 0) //有数据到来,类似串口的那个函数
{
cmd = client.read();//读取数据
dis = getTime() / 58; //超声波距离
if (dis < 10)
{
back();
delay(200);
ting();
mark = 1;
}
else
{
mark = 0;
}
if (mark == 0)
{
switch (cmd)
{
case 'q':
before(); break;
case 'h':
back(); break;
case 'z':
left(); break;
case 'y':
right(); break;
case 's':
ting(); break;
case 'd':
zheng(); break;
}
}
}
}
}
小车最终成型以及手机app(开发仍在学习中)