Как получить доступ к сайту, работающему на локальном хосте (хост/сервер), к последовательному монитору с помощью ESP8266 (клиент)?
Следующий исходный код взят с официального сайта ESP8266 (прилагается пояснение): https: //arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/client-examples.html
Этот код .ino возвращает html-код имени сервера, упомянутого в объявлении «const char* server», в последовательный монитор.
И да, этот код прекрасно возвращает HTML-коды wwww.google.com, www.arduino.cc и т. д. Но когда я пробую это с помощью моего «светодиодного мигания.html», я не могу добиться успеха. Я думаю, это потому, что веб-сайт должен быть размещен на работающем сервере.
Другие сведения:
1. Плата UC: Wemos D1 mini (вариант ESP8266)
2. Я использую Xampp для запуска сервера Apache и MySQL
3. Плата Wemos настроена как WiFiClient
#include <ESP8266WiFi.h>
const char* ssid = "xxxxx";
const char* password = "xxxxxxxx";
Я поместил html,php-код веб-сайта в каталог: C:/xampp/htdocs/LED BLINKING/led Blinking.html
IP-адрес моего ПК с Windows: 192.168.100.9
const char* server = "192.168.100.9/LED BLINKING/led blinking.html";
Я пробовал использовать только «192.168.100.9»; слишком. Я также разблокировал брандмауэр Windows для своего сервера ApacheHTTP. Теперь я могу просматривать веб-страницу на своем мобильном телефоне по URL-адресу: 192.168.100.9/LED BLINKING/led Blinking.html.
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println(" connected");
}
void loop()
{
WiFiClient client;
Serial.printf("\n[Connecting ...");
if (client.connect(server, 80))
{
Serial.println("connected]");
Serial.println("[Sending a request]");
client.print(String("GET /") + " HTTP/1.1\r\n" +
"server: " + server + "\r\n" +
"Connection: close\r\n" +
"\r\n"
);
Serial.println("[Response:]");
while (client.connected())
{
if (client.available())
{
String line = client.readStringUntil('\n');
Serial.println(line);
}
}
client.stop();
Serial.println("\n[Disconnected]");
}
else
{
Serial.println("connection failed!]");
client.stop();
}
delay(5000);
}
Вывод на последовательном мониторе: Подключение к ssid подключено [Ошибка подключения!]
@Md Arshad Ali, 👍0
1 ответ
Переменная server
— это имя хоста или IP-адрес для TCP-соединения.
/LED BLINKING/led Blinking.html
идет после HTTP GET. Теперь есть /
и он работает для главной страницы серверов.
Вам нужно
client.print(String("GET /LED%20BLINKING/led%20blinking.htm") + " HTTP/1.1\r\n" +
"server: " + server + "\r\n" +
"Connection: close\r\n" +
"\r\n"
);
и вам нужно покинуть это место
- ESP8266 не подключается к Wi-Fi
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Можно ли отключить WiFi на ESP8266?
- Как отключить или остановить точку доступа в ESP8266?
- ESP8266 — действительно ли у него по умолчанию плохой радиус действия Wi-Fi?
- Как подключить ESP8266 с помощью адаптера ESP-01 к Arduino Uno?
- ESP8266 на Wi-Fi без пароля, возможно?
- ESP8266 Аналоговое чтение мешает Wi-Fi?