Arduino Mega Server

Модератор: Alex

serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение 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
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение Ja_rus » Пн янв 28, 2019 10:04 am

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

Re: Arduino Mega Server

Сообщение serghei » Пн янв 28, 2019 10:22 am

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

Re: Arduino Mega Server

Сообщение 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()
За это сообщение автора ser009 поблагодарил:
Ja_rus (Вт янв 29, 2019 9:31 am)
Рейтинг: 1.16%
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Пн янв 28, 2019 11:54 am

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

Re: Arduino Mega Server

Сообщение ser009 » Пн янв 28, 2019 12:03 pm

Может конечно.
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Пн янв 28, 2019 12:36 pm

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

Re: Arduino Mega Server

Сообщение Ja_rus » Вт янв 29, 2019 9:31 am

Здравствуйте, за объяснение принципа работы чекбокса ser009 огромное спасибо. Пытался изменить IP с веб страницы, я так понимаю на вебе все и заканчивается, зачем столько "пустых" страниц которые ничего не делают...
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server

Сообщение ser009 » Вт янв 29, 2019 9:44 am

Это пример.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вт янв 29, 2019 10:01 am

90 % кода AMS это работа в браузере. А в дистрибутиве на " пустых" страницах показано как и что можно сделать с теми данными что отправляет Мега. Все они конечно не нужны. Но можно переделать " под себя".
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить