0

我有一个问题,我只需要从 Web 客户端读取特定部分。我有 arduino 汽车和电话应用程序,当我按下按钮(移动)时,它显示:

GET/move?dir=FHTTP/1.1Host:192.168.0.136Connection:Keep-AliveAccept-Encoding:gzipUser-Agent:okhttp/3.12.0

而且我需要阅读“GET/move?dir=”之后和“HTTP/1.1Host:192...”之前的字符,该字符代表汽车应该做什么(F代表前进)。如何从中提取字母?我正在使用 client.read();

这是代码:


#include <WiFiNINA.h>
#include <WiFiClient.h>
#include <SPI.h>
#include <WiFi.h>

const char* ssid = "Mirek2.4";
const char* pass = "mirek1708";
WiFiClient client;
WiFiServer server(80);
int keyIndex = 0;   
int status = WL_IDLE_STATUS;

char t;
int motor1pin1 = 4;
int motor1pin2 = 2;

int motor2pin1 = 6;
int motor2pin2 = 5;
 
void setup() {

  
  pinMode(motor1pin1, OUTPUT);
  pinMode(motor1pin2, OUTPUT);
  pinMode(motor2pin1, OUTPUT);
  pinMode(motor2pin2, OUTPUT);
  Serial.begin(9600);  
  delay(1000);

  while (WiFi.status() != WL_CONNECTED)
  {
    Serial.print("Attempting to connect to WEP network, SSID: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, keyIndex, pass);
    delay(10000);
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("ip adress: ");
  Serial.println(WiFi.localIP());
  delay(1000);
  server.begin();
  client.println("GET/move?dir= HTTP/1.1");
  client.println();
}
void loop() {


client = server.available();
if (!client) return;
t = client.read();
Serial.println(t);


if(t == 'F'){ 
  digitalWrite(motor1pin1, HIGH);
  digitalWrite(motor1pin2, LOW);

  digitalWrite(motor2pin1, HIGH);
  digitalWrite(motor2pin2, LOW);
}
 
else if(t == 'B'){
  digitalWrite(motor1pin1, LOW);
  digitalWrite(motor1pin2,HIGH);

  digitalWrite(motor2pin1, LOW);
  digitalWrite(motor2pin2, HIGH);
}
 
else if(t == 'R'){
  digitalWrite(motor1pin1,HIGH);
  digitalWrite(motor1pin2,LOW);
}
 
else if(t == 'L'){
digitalWrite(motor2pin1, HIGH);
 digitalWrite(motor2pin2, LOW);
}

else if(t == 'S'){     
  digitalWrite(motor1pin1,LOW);
  digitalWrite(motor1pin2,LOW);
  digitalWrite(motor2pin1,LOW);
  digitalWrite(motor2pin2,LOW);
}
delay(100);
}

它读什么

谢谢。

4

0 回答 0