Womes D1--学习笔迹6

1 、超声波测距

#define Echo D2
#define Trig D8
#define BEEP D5
void initChaoShengBo()
{
  pinMode(Echo,INPUT);
  pinMode(Trig,OUTPUT);
  
}
long getTime()
{
  digitalWrite(Trig,HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig,LOW);

  return pulseIn(Echo,HIGH);//
}

void setup() {
  // put your setup code here, to run once:
  initChaoShengBo();
  Serial.begin(115200);
  pinMode(BEEP,OUTPUT);
  digitalWrite(BEEP,HIGH);
}

void loop() {
  // put your main code here, to run repeatedly:
  //获取距离
  long dis;
  dis = getTime()/58;
  Serial.print(dis);
  Serial.println("cm");
  if(dis<10)
  {
    digitalWrite(BEEP,LOW);
  }
  else
  {
    digitalWrite(BEEP,HIGH);
  }
  delay(500);
}

2、WIFI连接

连接wifi,通过手机tcp连接发送数据到womes D1,远程控制。

#include <ESP8266WiFi.h>
#define BEEP D5

char* ssid = "shao";                  
char* passwd = "15250057859";    

 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 initBeep()
{
  pinMode(BEEP,OUTPUT);
  digitalWrite(BEEP,HIGH);
}

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  //启动
  initBeep();
  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();//读取数据
              if(cmd =='1')
              {
                //Serial.println("ss hen shuai");
                digitalWrite(BEEP,LOW);
              }
              else
              {
                digitalWrite(BEEP,HIGH);
               // Serial.println("ss hai shi hen shuai");
              }
              }
      }
  }

3、WIFI避障小车

#include <ESP8266WiFi.h>
#define Dong1 D6
#define Dong2 D7
#define Zhuan1 D4
#define Zhuan2 D5
#define Echo D2
#define Trig D8

char* ssid = "shao";                  
char* passwd = "15250057859";    

 int port = 8888;  //端口号
WiFiServer server(port); // 设置服务器端口号
void initChaoShengBo()
{
  pinMode(Echo,INPUT);
  pinMode(Trig,OUTPUT);
  
}
long getTime()
{
  digitalWrite(Trig,HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig,LOW);

  return pulseIn(Echo,HIGH);//
}
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 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,HIGH);
  digitalWrite(Zhuan2,HIGH);
}
void setup() {
  // put your setup code here, to run once:
  initL9110s();
  initChaoShengBo();
  Serial.begin(115200);
  initWifiSta();
  server.begin();

}

void loop() {
  char cmd;
    long dis;
    int mark=0;
  // put your main code here, to run repeatedly:
 WiFiClient client = server.available();  //服务初始化
  while (client.connected()) 
  {
    while (client.available() > 0) 
    {
        cmd = client.read();
        Serial.println(cmd);
        dis = getTime()/58;
        if(dis<15)
        {
          hou();
          delay(200);
          ting();
          mark=1;
        }
        else
        {
          mark=0;
        }

        if(mark==0)
        {
            switch(cmd)
            {
                   case 'q':
              qian();
              break;
                   case 'h':
              hou();
              break;
                   case 'z':
              zuo();
              break;
                   case 'y':
              you();
              break;
                  case 'd':
              zheng();
              break;
                  case 's':
              ting();
              break;
            }

        }
    }
  } 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值