Wemos 手机app控制小车
主要硬件有:Wemos,L298N模块驱动电机,4g透传模块E30V如图:
该代码是通过socket通信实现的数据远距离传输,因此想了解主要的代码结构可以看一下另外篇博文:https://blog.csdn.net/HHHSSD/article/details/118094111
该作品主要功能是通过制作的手机app去简单的控制小车的向前,退后,向左,向右和停止,其中手机app和4g模块为客户端,因此运行的话可以直接用阿里云服务器,或者树莓派作为服务端的代码运行便可,服务器代码在上面链接的博客里面。服务器代码运行起来,便可操作。
E30V的简单配置:购买E30V的时候有操作手册,打开串口,设置好地址ip,和端口(服务器端口和ip),把信息配置进去就可以。
安卓代码和4g模块资料在网址:https://download.csdn.net/download/HHHSSD/19821460
代码如下,其中代码 D6 D7 D4 D5是定义控制小车的前后左右,代码是以wemos来编程的,这部分代码比较简单,好理解。
#include<SoftwareSerial.h> //需要调用这个库实现串口通信
#include<Servo.h>
#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 zuo() //向左
{
digitalWrite(Dong2,LOW);
digitalWrite(Zhuan1,HIGH);
}
void you(){ // 向右
digitalWrite(Dong2,HIGH);
digitalWrite(Zhuan1,LOW);
}
void qian() // 向前
{
digitalWrite(Dong2,HIGH);
digitalWrite(Zhuan1,HIGH);
}
void hou() // 停止
{
digitalWrite(Dong1,LOW);
digitalWrite(Dong2,LOW);
digitalWrite(Zhuan1,LOW);
digitalWrite(Zhuan2,LOW);
}
void tui() // 退后
{
digitalWrite(Dong1,LOW);
digitalWrite(Dong2,HIGH);
digitalWrite(Zhuan1,LOW);
digitalWrite(Zhuan2,HIGH);
}
void setup() {
initL9110s();
pinMode(D3,OUTPUT); //设置IO口D3为输出模式
pinMode(D4,OUTPUT); //设置IO口D4为输出模式
Serial.begin(9600);
digitalWrite(D2,LOW); //给D2口低电平
digitalWrite(D3,LOW); //给D3口低电平
delay(3000);
}
void loop() {
char cmd;
if(Serial.available() > 0){
cmd = Serial.read();
switch(cmd)
{
case '1': //前面提到的读取到1表示向前
qian() ;
delay(50);
break;
case '2':
you();
delay(50);
break;
case '3':
zuo() ;
delay(50);
break;
case '4':
tui();
delay(50);
break;
case '5':
hou();
delay(50);
break;
default:
break;
}
}
}