Arduino Client & WebServer
- Войдите на сайт для отправки комментариев
Втр, 17/10/2017 - 10:58
Здравствуйте. Совместил клиентскую и серверную библиотеки и как всегда появились подводные камни:)
В общем мне нужно, после перехода по определенному URL на веб сервере ардуино, отправить состояние 5 выхода, на свой сервер, то есть 1 или 0. Но не получается отправить. Сама отправка работает (проверял, не вру).
А вот когда ставлю что то типа:
client.println("GET /add.php?value=");
client.println(digitalRead(5));
client.println(" HTTP/1.1");
Отсылается пустота.
Что я не правильно делаю? Спасибо.
Сам скетч:
#include <SPI.h>
#include <Ethernet.h>
byte MAC[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress IP(10, 10, 1, 55);
EthernetServer arduino(81);
EthernetClient client;
boolean InboundRequest = 0;
char resource[] = "pte.pp.ua";
void setup() {
pinMode(5, OUTPUT);
Serial.begin(9600);
Ethernet.begin(MAC, IP);
arduino.begin();
}
void loop() {
EthernetClient client = arduino.available();
if(client) {
boolean EmptyLine = true;
while(client.connected()) {
if(client.available()) {
char data = client.read();
Serial.write(data);
if(data == '\n' && EmptyLine) {
client.println("HTTP/1.1 200 OK");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"http://arduino.cc/en/favicon.png\"/>");
client.println("</head>");
client.println("<body>");
client.println("</body>");
client.println("</html>");
break;
}
if(InboundRequest && data == ' ') {
InboundRequest = 0;
}
if(data == '?') {
InboundRequest = 1;
}
if(InboundRequest == 1) {
int value = data - '0';
digitalWrite(5, value);
//Response(); ------- Вот тут, после включения диода, должна идти отправка текущего состояния выхода #5.
}
if(data == '\n') {
EmptyLine = true;
} else if(data != '\r') {
EmptyLine = false;
}
}
}
delay(1);
client.stop();
Serial.println("--------------------------");
Serial.println("The client disconnected.");
Serial.println("--------------------------");
}
}
/*void Response() { ------------------------------- / Где то ошибка здесь ошибка + после перехода по адресу включения диода, идёт двойная запись add.php?value=12345
if(client.connect(resource, 80)) {
Serial.println("[Connected]");
client.println("GET /add.php?value=12345 HTTP/1.1");
client.println("Host: pte.pp.ua");
client.println("Connection: close");
client.println();
} else {
Serial.println("[Connection failed]");
Serial.println();
}
while(client.connected() && !client.available()) delay(1);
while(client.connected() || client.available()) {
char response = client.read();
Serial.print(response);
}
Serial.println();
Serial.println("[Disconnection]");
Serial.println("==================");
Serial.println();
client.stop();
}*/