Arduino Mega Server

Модератор: Alex

eGorka
Сообщения: 182
Зарегистрирован: Чт ноя 24, 2016 10:47 am

Re: Arduino Mega Server

Сообщение eGorka »

ser009 писал(а): Пт янв 18, 2019 3:29 pmБазовый код AMS не видит "/" в GET запросе.
Оно?

Код: Выделить всё

fileName = strtok(HTTP_req, GET);  //  #define GET  "GET /"
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am

Re: Arduino Mega Server

Сообщение ser009 »

Если я правильно понимаю в библиотеке sdfat уже есть готовые функции работы с папками. dir. Времени пока нет. Позже посмотрю
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

Тут скорее всего разговор про стандартную библиотеку SD , но применительно к ESP32. Что то можно сделать в коде , что то на странице.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ja_rus
Сообщения: 17
Зарегистрирован: Ср янв 16, 2019 9:12 am

Re: Arduino Mega Server

Сообщение Ja_rus »

Здравствуйте, кто-то может объяснить, как тут все работает v 0.17 для Mega2560. Конкретно интересует, как переменная о том. что нажата кнопка (чекбокс) попадает в файл .ino Приведите пожалуйста пример всей последовательности, выдержки кода с пояснениями (веб, скрипт, код ардуино) подобно примеру: как добавить дополнительный датчик температуры на dash-панель. Спасибо.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

Приветствуем. Только вечером когда буду дома.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am

Re: Arduino Mega Server

Сообщение ser009 »

Ja_rus писал(а): Пн янв 28, 2019 10:04 am ...как тут все работает v 0.17 для Mega2560
на странице HTML
SPOILERSPOILER_SHOW

Код: Выделить всё

          <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
SPOILERSPOILER_SHOW

Код: Выделить всё

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 мсек
SPOILERSPOILER_SHOW

Код: Выделить всё

  request.open('GET', 'reqGeneric' + strLED1 + strLED2 + strLED3 + strLED4 + randomNoCache(), true);
  request.send(null);
  setTimeout('getGeneric()', 2100);
на стороне Arduino. Вкладка server_ajax. Запрос обрабатывается
SPOILERSPOILER_SHOW

Код: Выделить всё

else if (StrContains(HTTP_req, "reqGeneric"))      {sendXmlAnswer(cl); setGeneric();     respGeneric(cl);}
Далее выполняется функция setGeneric()
SPOILERSPOILER_SHOW

Код: Выделить всё

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

Re: Arduino Mega Server

Сообщение alexsis_76 »

а что сама GetCheckboxes() не может инициировать запрос, зачем ждать 2100 мс если запрос можно послать немедленно, т.е. при нажатии на кнопку нужно будет подождать 2 сек
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am

Re: Arduino Mega Server

Сообщение ser009 »

Может конечно.
alexsis_76
Сообщения: 792
Зарегистрирован: Пт янв 22, 2016 10:08 am

Re: Arduino Mega Server

Сообщение alexsis_76 »

Так это надо немедленно переделать
Ja_rus
Сообщения: 17
Зарегистрирован: Ср янв 16, 2019 9:12 am

Re: Arduino Mega Server

Сообщение Ja_rus »

Здравствуйте, за объяснение принципа работы чекбокса ser009 огромное спасибо. Пытался изменить IP с веб страницы, я так понимаю на вебе все и заканчивается, зачем столько "пустых" страниц которые ничего не делают...
Ответить