• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос ESP8266 NodeMCU работа с данными в полях на установленном сайте

Itedenit

New member
В общем не знаю туда ли обратился, но вдруг кто поможет.
Есть задача вроде бы не сложная но то ли я чего то не понимаю то ли разобраться не могу и гуглить разучился но:
На ESP8266 находиться web-страница с применением JS на странице находятся поля для ввода текста необходимо что бы информация вводимая в поле по нажатию кнопки выводилась на страницу да так что бы тоже самое можно было увидеть и сделать на другом ПК который зайдет на IP-адрес ESP-шки, к примеру я ввожу информацию другой человек обновляет страницу и у него эта самая информация появляется.
Спрашиваю потому что скорее всего решение простое или очевидное, а я никак не пойму заранее спасибо
Важная информация ПК не обязательно в глобальной сети скорее всего в локальной
 
необходимо что бы информация вводимая в поле по нажатию кнопки выводилась на страницу
На вашей web-страничке нужно кнопки организовать для сохранения результата ввода (или отмены), я так делал:
snprintf (aux_Buffer, SETUPPAGE_LENGTH, "\
<form action=\"/cTS\">\
<table>\
<tr>\
<td>ВВЕДИТЕ ТЕКСТ</td><td><input type=\"text\" name=\"D\" value=\"%s\"></td>\
</tr>\
</table>\
<button type=\"submit\" title=\"CONFIRM\" value=\"Submit\">Confirm</button>\
<input type=\"reset\">\
<button type=\"submit\" title=\"EXIT\" name=\"ESC\" value=\"1\">ESC</button>\
</form>", text);

server.send ( 200, "text/html", aux_Buffer );
...
в функции setup() сделать перенаправление на обработчик ввода:
server.on ( "/cTS", handle_confirm_Temp_Setup); // функция приема и обработки введенных данных

в этой функции "примете" введенный текст (или число...) как аргумент:
if(server.arg("ESC") != "1")
{
strcpy(text, server.arg("D").c_str());
(
и дальше данные будут доступны всем другим подключившимся

HTML Forms - здесь про "form" с примером
HTML input tag - здесь про "input"
в гугле и на рус. языке есть

p.s. извиняйте, не нашел здесь как программный код вводить
 

Itedenit

New member
в этой функции "примете" введенный текст (или число...) как аргумент:
if(server.arg("ESC") != "1")
{
strcpy(text, server.arg("D").c_str());
(
и дальше данные будут доступны всем другим подключившимся
Можно этот кусок по точнее я не совсем понимаю что происходит в последней строчке
 
Можно этот кусок по точнее я не совсем понимаю что происходит в последней строчке
в массив, объявленный как
char text[128];
записывается строка из аргумента с именем D. (это текст, который вы введете на своей веб-страничке в поле ввода)
 

Itedenit

New member
В общем я решил вопрос при помощи вашего совета выше и решил погуглить нашел вот это webserver - Получить значение из текстового поля на веб-сервере ESP8266 - Qaru так образом сделал сохранение в переменные, а потом просто вывод на отдельную страницу через JSON как вот здесь https://www.youtube.com/watch?v=H2Dm5Uxy4Zs&t поменяв переменные и аргументы на свои
 
Сверху Снизу