Программирование по порядку.
В этом скетче, добавляем интерфейс для передачи данных на Web страницу.
Скетч: step5-datapages
Программирование по порядку.
В этом скетче, добавляем интерфейс для передачи данных на Web страницу.
Скетч: step5-datapages
Для того, что бы при перезагрузке был виден отклик, нужно поменять местами строку в обработчике.
// Перезагрузка модуля по запросу вида http://192.168.0.101/restart?device=ok
void handle_Restart() {
String restart = HTTP.arg(“device”);
if (restart == “ok”)
HTTP.send(200, “text/plain”, “OK”);
ESP.restart();
}
Полезное замечание!
Тогда уж так:
void handle_Restart() {
String restart = HTTP.arg(“device”); // Получаем значение device из запроса
if (restart == “ok”) { // Если значение равно Ок
HTTP.send(200, “text / plain”, “Reset OK”); // Отправляем ответ Reset OK
ESP.restart(); // перезагружаем модуль
}
else { // иначе
HTTP.send(200, “text / plain”, “No Reset”); // Отправляем ответ No Reset
}
}
Да, так будет более полно.
А можно вместо:
String НашаСтрока = “много-много всего”;
…набиваем всё в НашаСтрока…
HTTP.send(200, «text / plain», НашаСтрока); //сразу вся страница рисуется
А можно выводить на страницу несколькими командами, типа как в сериал порт?..
А то похоже ОЗУ не хватает, если много сгружать в НашаСтрока…
Если в этом конкретном скетче, то памяти точно хватит на все.
в этом скетче да, в моем не помещается в строчную переменную, удобнее было бы “сбрасывать” данные кусками, не загружая всю страницу в строку.
нашел такое, но для Эзернета:
void setup()
{
Ethernet.begin(mac, ip);
server.begin();
}
а потом сброс по кусочкам:
client.print(out);
client.print(” 100,”);
….
client.stop(); //в конце (как я понял)
а для вайфая не соображу как… но вроде можно тоже?
(сорри за длинноту)
Не понял о чем этот шаг((
Где, собственно, “передача данных на web-страницу”? Взяли значения переменных присвоенные в скетче в лоб и просто вывели их в json-формате. В данном случае никакой разницы с plain/text из первого шага.
Не-е-т, батенька, так не пойдет. Вы давайте-ка, получите данные введенные непосредственно в поля вэб-морды. Я подозреваю, здесь без запроса к БД уже никак не обойтись. Или, на худой конец, пошлого парсинга файла (txt? xml? csv?) с данными.
Да, да! Ответ на этот вот вопрос был бы гораздо полезнее.
Здравствуйте.
Использую отладочную плату NodeMCU. Ваш проект выкачал непосредственно с этой страницы (http://esp8266-arduinoide.ru/step5-datapages/) и вгрузил в ESP8266 без изменений. При корневом подключении (в поисковой строке Google Chrome – 192.168.4.1) web-страница загружается, но значения всех полей остаются дефолтными:
{{SSDP}}, {{ssid}}, {{timezone}} и т.д.
При просмотре JSON – запроса (в поисковой строке Google Chrome – 192.168.4.1/configs.json) всё нормально:
{“SSDP”: “SSDP-test”, “ssid”: “home”, “password”: “i12345678”, “ssidAP”: “WiFi”, “password”: “”, “ip”: “0.0.0.0”}.
В чём может быть ошибка? Почему данные не передаются на web-страницу?
это пуcтой файл json
зайдите на веб страницу с настройками и укажите ваши значения, сохраните их тем самым заполните файл config.json
Здравствуйте,Михаил. У меня в точности такая же проблема. 192.168.4.1/configs.json выдает нужные значения, но они на страницу не попадают. Я правильно понял что при таком запросе должен создаться файл configs.json с заполненными данными?
Не совсем понял что значит заполнить его данными. Какой формат у этого файла должен быть?
После прошивки, CUT HERE FOR EXCEPTION DECODER
циклично в порту. И светодиод моргает как сумасшедший.
Сделал декодинг, но не ясно(((
Decoding stack results
0x40100900: umm_init() at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 263
0x40100b50: realloc(void*, size_t) at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 822
0x4010027c: millis() at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 185
0x40100c2d: calloc(size_t, size_t) at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 902
0x40100c2d: calloc(size_t, size_t) at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 902
0x402018b4: getContentType(String) at C:\Users\antonin\Desktop\Step5-DataPages/FS.ino line 48
0x40201890: getContentType(String) at C:\Users\antonin\Desktop\Step5-DataPages/FS.ino line 46
0x401008cb: umm_malloc_core(size_t) at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 511
0x4010028c: millis() at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\core_esp8266_wiring.cpp line 188
0x402011e6: std::_Function_base::_Base_manager >::_M_manager(std::_Any_data&, std::_Any_data const&, std::_Manager_operation) at c:\users\antonin\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\2.5.0-4-b40a506\xtensa-lx106-elf\include\c++\4.8.2/functional line 1893
0x40201056: esp8266webserver::FunctionRequestHandler ::canUpload(String) at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/detail/RequestHandlersImpl.h line 35
0x402029cc: esp8266webserver::ESP8266WebServerTemplate ::_parseForm(WiFiClient&, String const&, unsigned int) at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\libraries\ESP8266WebServer\src/Parsing-impl.h line 413
0x40100b85: realloc(void*, size_t) at C:\Users\antonin\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.4\cores\esp8266\umm_malloc\umm_malloc.cpp line 829
Добрый день, Михаил. Подскажите как прикрутить свою страничку сайта в этот пример. Загружаю в файловую систему файлы своей странички, но ничего не получается. Подскажите, где нужно подправить код.
Разобрался. Всего то нужно было в функции (handleFileRead) заменить htm на html. Два дня мучался, и только сейчас заметил.