Модератор: Alex
eGorka
Сообщения: 182 Зарегистрирован: Чт ноя 24, 2016 10:47 am
Сообщение
eGorka » Сб янв 19, 2019 4:35 pm
ser009 писал(а): Пт янв 18, 2019 3:29 pm Базовый код AMS не видит "/" в GET запросе.
Оно?
Код: Выделить всё
fileName = strtok(HTTP_req, GET); // #define GET "GET /"
ser009
Сообщения: 595 Зарегистрирован: Сб окт 13, 2012 9:55 am
Сообщение
ser009 » Сб янв 19, 2019 5:21 pm
Если я правильно понимаю в библиотеке sdfat уже есть готовые функции работы с папками. dir. Времени пока нет. Позже посмотрю
serghei
Сообщения: 2575 Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Сообщение
serghei » Сб янв 19, 2019 5:37 pm
Тут скорее всего разговор про стандартную библиотеку SD , но применительно к ESP32. Что то можно сделать в коде , что то на странице.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ja_rus
Сообщения: 17 Зарегистрирован: Ср янв 16, 2019 9:12 am
Сообщение
Ja_rus » Пн янв 28, 2019 10:04 am
Здравствуйте, кто-то может объяснить, как тут все работает v 0.17 для Mega2560. Конкретно интересует, как переменная о том. что нажата кнопка (чекбокс) попадает в файл .ino Приведите пожалуйста пример всей последовательности, выдержки кода с пояснениями (веб, скрипт, код ардуино) подобно примеру: как добавить дополнительный датчик температуры на dash-панель. Спасибо.
serghei
Сообщения: 2575 Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Сообщение
serghei » Пн янв 28, 2019 10:22 am
Приветствуем. Только вечером когда буду дома.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
ser009
Сообщения: 595 Зарегистрирован: Сб окт 13, 2012 9:55 am
Сообщение
ser009 » Пн янв 28, 2019 11:31 am
Ja_rus писал(а): Пн янв 28, 2019 10:04 am
...как тут все работает v 0.17 для Mega2560
на странице HTML
Код: Выделить всё
<h3>Чекбоксы</h3>
<form id="check_LEDs" name="LED_form">
<input type="checkbox" name="LED1" value="0" onclick="GetCheckboxes()" /> D6<br /><br>
<input type="checkbox" name="LED2" value="0" onclick="GetCheckboxes()" /> D7<br /><br>
</form>
при нажатии выполняется функция GetCheckboxes() меняя значения strLED1
Код: Выделить всё
function GetCheckboxes() {
if (LED_form.LED1.checked) {strLED1 = '&LED1=1';}
else {strLED1 = '&LED1=0';}
if (LED_form.LED2.checked) {strLED2 = '&LED2=1';}
else {strLED2 = '&LED2=0';}
}
Далее значения отправляются каждые 2100 мсек
Код: Выделить всё
request.open('GET', 'reqGeneric' + strLED1 + strLED2 + strLED3 + strLED4 + randomNoCache(), true);
request.send(null);
setTimeout('getGeneric()', 2100);
на стороне Arduino. Вкладка server_ajax. Запрос обрабатывается
Код: Выделить всё
else if (StrContains(HTTP_req, "reqGeneric")) {sendXmlAnswer(cl); setGeneric(); respGeneric(cl);}
Далее выполняется функция setGeneric()
Код: Выделить всё
void setGeneric() {
// D3
if (StrContains(HTTP_req, "LED4=1")) {
LED_state[3] = 1;
digitalWrite(3, HIGH);
} else if (StrContains(HTTP_req, "LED4=0")) {
LED_state[3] = 0;
digitalWrite(3, LOW);
}
// D5
if (StrContains(HTTP_req, "LED3=1")) {
LED_state[2] = 1;
digitalWrite(5, HIGH);
} else if (StrContains(HTTP_req, "LED3=0")) {
LED_state[2] = 0;
digitalWrite(5, LOW);
}
// D6
if (StrContains(HTTP_req, "LED1=1")) {
LED_state[0] = 1; // save LED state
digitalWrite(6, HIGH);
} else if (StrContains(HTTP_req, "LED1=0")) {
LED_state[0] = 0; // save LED state
digitalWrite(6, LOW);
}
// D7
if (StrContains(HTTP_req, "LED2=1")) {
LED_state[1] = 1;
digitalWrite(7, HIGH);
} else if (StrContains(HTTP_req, "LED2=0")) {
LED_state[1] = 0;
digitalWrite(7, LOW);
}
} // SetGeneric()
alexsis_76
Сообщения: 792 Зарегистрирован: Пт янв 22, 2016 10:08 am
Сообщение
alexsis_76 » Пн янв 28, 2019 11:54 am
а что сама GetCheckboxes() не может инициировать запрос, зачем ждать 2100 мс если запрос можно послать немедленно, т.е. при нажатии на кнопку нужно будет подождать 2 сек
ser009
Сообщения: 595 Зарегистрирован: Сб окт 13, 2012 9:55 am
Сообщение
ser009 » Пн янв 28, 2019 12:03 pm
Может конечно.
Ja_rus
Сообщения: 17 Зарегистрирован: Ср янв 16, 2019 9:12 am
Сообщение
Ja_rus » Вт янв 29, 2019 9:31 am
Здравствуйте, за объяснение принципа работы чекбокса ser009 огромное спасибо. Пытался изменить IP с веб страницы, я так понимаю на вебе все и заканчивается, зачем столько "пустых" страниц которые ничего не делают...