我有一个问题,我只需要从 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);
}
谢谢。