• Система автоматизации с открытым исходным кодом на базе 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 поменяв переменные и аргументы на свои
 
Сверху Снизу