dimamukhin
Member
Добрый день.
Прошу Вашей помощи.
Начал изучение ESP8266. Подключил к WiFi. Отравляю запросы с браузера или приложения App Inventor формата (http://192.168.0.12/Led1/0 и http://192.168.0.12/Led1/1) . Он отвечает строкой формата
if(req.indexOf("/Led1/1") != -1)
{
digitalWrite(4, 0);
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\Первое реле включено";
client.print(s);
Serial.println("Led1 On");
}
Хочу добавить пару кнопок. Теперь у меня вопрос, возможно ли так сделать , чтобы ESP отвечала без запроса браузера или приложения строкой такого же формата ?
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\Первая кнопка нажата";
client.print(s);
Пример кода
Прошу Вашей помощи.
Начал изучение ESP8266. Подключил к WiFi. Отравляю запросы с браузера или приложения App Inventor формата (http://192.168.0.12/Led1/0 и http://192.168.0.12/Led1/1) . Он отвечает строкой формата
if(req.indexOf("/Led1/1") != -1)
{
digitalWrite(4, 0);
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\Первое реле включено";
client.print(s);
Serial.println("Led1 On");
}
Хочу добавить пару кнопок. Теперь у меня вопрос, возможно ли так сделать , чтобы ESP отвечала без запроса браузера или приложения строкой такого же формата ?
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\Первая кнопка нажата";
client.print(s);
Пример кода
Код:
#include <ESP8266WiFi.h>
// Имя и пароль вашей сети WiFi
const char* ssid = "WiFi";
const char* password = "12345678";
WiFiServer server(80);
void setup()
{
Serial.begin(115200);
delay(10);
// Подготовка GPIO OUT
pinMode(4, OUTPUT);
digitalWrite(4, 0);
// Подготовка GPIO OUT
pinMode(14, INPUT_PULLUP);
// присваиваем статичесий IP адрес
WiFi.mode(WIFI_STA); // режим клиента
WiFi.config(IPAddress(192,168,0,12),IPAddress(192,168,0,1),IPAddress(255,255,255,0),IPAddress(192,168,0,1));
WiFi.begin(ssid, password);
// Ожидание подключения
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
// Запуск сервера
server.begin();
Serial.println("Server started");
// Вывод полученного IP адреса
Serial.println(WiFi.localIP());
}
void loop()
{
// Проверка подключения
WiFiClient client = server.available();
if (digitalRead (14) == LOW )
{
//Как мне в обработчике кнопки послать в браузер стороку без запроса от браузера.
if (!client)
{
return;
}
// Ожидание данных
Serial.println("new client");
while (!client.available())
{
delay(1);
}
// Чтение первой строки запроса
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();
// Работа с GPIO
if(req.indexOf("/Led1/1") != -1)
{
digitalWrite(4, 0);
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\Первое реле включено";
client.print(s);
Serial.println("Led1 On");
}
else if (req.indexOf("/Led1/0") != -1)
{
digitalWrite(4, 1);
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\Первое реле выключено";
client.print(s);
Serial.println("Led1 Off");
}
else // Если неверный запрос написать об ошибке
{
Serial.println("invalid request");
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nInvalid request";
s += "</html>\n";
client.print(s);
//client.stop();
return;
}
client.flush();
delay(1);
}