Добрый день, друзья! Хотел управлять светодиодом через браузер с помощью ESP8266. Но client.read() читает совсем другие значения 72. А на сервере только два значения 1 или 2. Помогите пожалуйста! Может кто-нибудь сталкивался с этим Код (C++): #include <ESP8266WiFi.h> int ledPin = 2; int buff=0; const char* ssid = "DOMM_KZ"; const char* password = ""; const char* host = "shdomm.000webhostapp.com"; WiFiClient client; void setup() { Serial.begin(9600); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); pinMode(ledPin, OUTPUT); digitalWrite(ledPin, HIGH); while (WiFi.status() != WL_CONNECTED) { delay(500); } } void loop() { Serial.println("================================="); WiFiClient client; if (client.connect(host, 80)) { Serial.println("Connected"); client.print( "GET /add_data.php?"); client.println( " HTTP/1.1"); client.print( "Host:" ); client.println(host); client.println( "Connection: close" ); client.println(); client.println(); delay(1000); while (client.available() > 0) { int c = client.read(); //client.flush(); Serial.println("Request from browser: "); Serial.println(c); if ( c== '1') { buff=1; } else if ( c== '2') { buff=0; } } client.stop(); client.flush(); delay(100); } else { client.stop(); delay(1000); client.connect(host, 80); } if (buff==1) { digitalWrite (ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } delay(500); }
72 - это код буквы H, первой буквы HTTP-ответа: "HTTP/1.0 200 OK" - всё работает корректно. Вы используете протокол HTTP - будьте добры ему следовать.
Читать спецификацию протокола HTTP и начать понимать, как происходит общение по этому протоколу. Вы посылаете запрос GET, и должны хотя бы приблизительно представлять, что вернёт вам сервер в ответ на этот запрос. А вернёт он многабукаф, подробности - в HTTP RFC.
Возьмите готовую библиотеку httpclient и не читайте больше источников, которые посоветовали вам вручную писать HTTP.
А посмотреть в интернете, не? Ну в первых же ссылках в гугле по запросу "httpclient arduino" Там чуть выше неадекватный местный тролль написал какую-то очередную дичь, не знаю, о чём он, т.к. в игноре, но предположу, что это он вам посоветовал библиотеку httpclient и как-то прошёлся ещё и по мне - у него в крови полить ядом кого-нибудь, не обращайте внимания По поводу библиотек скажу лишь - можно использовать и их, не вопрос. Но тогда - уж лучше полностью переделать ваш код, т.к. раз вы сами РУЧКАМИ формируете HTTP-запрос, то я вам и отвечал в том разрезе, что вы должны понимать, как это работает, и РУЧКАМИ разобрать HTTP-ответ от сервера - там не бином Ньютона, в первом приближении. Если вам этого не нужно, вы не хотите разбираться, как и что работает на уровне протоколов - любая подходящая библиотека в помощь, готового кода сейчас валом на гитхабе, надо только чуть-чуть поискать. Только, опять же, ключевое - ВАМ поискать, а не за вас чтоб искали Пока же вы задаёте вопросы, которые говорят о том, что вы совершенно не хотите сделать над собой усилие и поискать ответ на заданный вами же вопрос выше - в том же гугле. Это несложно, пробуйте
И для esp8266, и для ethernet , и для чего угодно. Наберите в гугле и будет вам счастье. На личности я никогда не перехожу. Я всего лишь дал практический совет как отличить хороший источник от плохого. Советую вам научиться не воспринимать любую поправку как личную атаку. Сбережете много нервов.