Я могу подключить модуль ESP8266 к точке доступа Wi-Fi. WiFi.begin (ssid, pass); Я также сделал модуль для работы в качестве точки доступа Wi-Fi с собственным IP-адресом, также сделав его веб-сервером. Теперь, как я могу использовать один модуль esp8266 для подключения к внешней точке доступа Wi-Fi для периодической отправки данных датчика? В то же время он будет действовать как точка доступа Wi-Fi, чтобы другой клиентский компьютер / ноутбук мог подключиться к этой точке доступа и получить веб-страницу, используя свой статический IP-адрес?
ESP8266 двойная связь Wi-Fi
Ответы (1)
Чтобы отправлять данные, а также использовать их в качестве веб-сервера, вам потребуется включить MDNS.
MDNS.begin("esp8266");
server.on("/", handleRoot);
server.begin();
Теперь вам нужно будет создать функцию для handleRoot
void handleRoot() {
int sec = millis() / 1000;
int min = sec / 60;
int hr = min / 60;
snprintf(temp, 1000,
"<html>\
<head>\
<title>YOUR_TITLE</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<p>Uptime: %02d:%02d:%02d</p>\
</body>\
</html>", hr, min % 60, sec % 60);
server.send(200, "text/html", temp);
}
Это будет отображать веб-страницу каждый раз, когда вы открываете статический IP-адрес esp8266.
Определите файл заголовка, а затем включите его в свой код как
#ifndef htmlData_h
#define htmlData_h
const char* dataHTML = "MY HTML CODE";
const char* dataHTML1 = "MY 2 HTML CODE";
#endif
Пример HTML-кода
const char* dataHTML = "<html>\
<head>\
<title>Demo</title>\
<style>\
body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\
</style>\
</head>\
<body>\
<h1>Hello!!!</h1>\
<p>Uptime: %02d:%02d:%02d</p>\
<FORM METHOD=POST action='/'>\
<textarea rows = \"5\" cols = \"60\" name=myText>Talk to me...</textarea>\
<br>\
<input type=submit value='Talk'>\
</FORM>\
</body>\
</html>";
В приведенном выше коде на странице появится текстовое поле, которое вы должны использовать для отправки данных на esp8266 после того, как вы нажмете кнопку ввода, отображаемую Talk.
Для печати значений используйте
<input type=text name=myssid value=\"%s\">\
и использовать
snprintf(temp, 1000, dataHTML, variable1, varriable2,.....);
здесь переменная 1, переменная 2 будет представлять все значения% s в последовательности, которую вы закодировали.