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(); }*/