Как открыть ссылку по условию?

Тема в разделе "Arduino & Shields", создана пользователем Саша_да_да_Саша, 24 июн 2018.

  1. Подскажите, как по условию, скажем времени. Через дигиталрид, открыть ссылку, модуль 5100 client.print

    HTML:
    <form method="post" action="http://megalink.free/login?dst=http://megalink.free">
    <input type="submit" value="Вход без логина/пароля " />
    </form>
    это как Я понял должно быть в файле Index
    А это отрывок ino
    Код (C++):
      EthernetClient client = server.available();
      if (client) {
        boolean currentLineIsBlank = true;
        while (client.connected()) {
          if (client.available()) {
            char c = client.read();
            if (req_index < (REQ_BUF_SZ - 1)) {
              HTTP_req[req_index] = c;
              req_index++;
            }
            if (c == '\n' && currentLineIsBlank) {
              if (StrContains(HTTP_req, "GET /")) {
                if (StrContains(HTTP_req, "/ ")
                    || StrContains(HTTP_req, "/index.htm")) {
                  sendHtmlFile(client, "index.htm");
                } else if (StrContains(HTTP_req, "/favicon.ico")) {
                  sendFile(client, "favicon.ico");
                } else if (StrContains(HTTP_req, "/input_1.png")) {
                  sendFile(client, "input_1.png");
       
    Такое разделение ещё больше сбило меня с толка, но всё же хочется сделать всё без обновления всей страницы
     
    Последнее редактирование: 24 июн 2018
  2. DIYMan

    DIYMan Guest

    Из браузера перейти по адресу нужному через какое-то время? См. тег META с HTTP-EQUIV="refresh": http://redirekt.info/article/redirekt-na-html-s-zaderzhkojj-meta-refresh.html

    Или из JavaScript, см. setTimeout и window.location.href.

    digitalRead тут не при чём - ардуина в представленном скетче выступает в роли сервера, т.е. без запроса от клиента никуда ничего отдавать не может.
     
    Саша_да_да_Саша, arkadyf и Igor68 нравится это.
  3. Вы неправильно поняли. Мне надо не отдавать а забирать ))) просто открыть ссылку не нажатием мышью по кнопке, а с таймера по наступлению условия скажем, изменением статуса или флага. Как Я понял только при открытом браузере получится. Страница должна появиться один раз и всё. Закрыть её в автоматическом режиме не обязательно, но хотелось бы
     
    Последнее редактирование: 24 июн 2018
  4. Mitrandir

    Mitrandir Гуру

    Не понял, вы хотите реализовать такой сценарий:
    1) пользователь открыл страницу
    2) пользователь ждёт
    3)на ардуино происходит событие
    4) ардуино перерисовывает страницу на браузере
    Так?
     
  5. Нет, Открыт браузер, на сервере с W5100, идёт старт питания на одну из 2х точек доступа (по очереди, за минуту до конца часа включается звуковой сигнализатор доходит до 60 00 отключает питание на первой включает вторую. по истечении 40сек(старт точки) должна открыться по таймеру страница (ссылка) авторизации
    HTML:
    <form method="post" action="http://megalink.free/login?dst=http://megalink.free">
    <input type="submit" value="Вход без логина/пароля " />
    </form>
    Так или по другому нее знаю, сейчас открываю в ручном режиме мышью по кнопке на вэб сервере 5100
     
  6. Mitrandir

    Mitrandir Гуру

    На странице через setInterval
    Делаете запрос на ардуино и спрашиваете что надо обновить.

    Увы ардуино не может по своему желанию что то заталкивать на страницу, только отвечать на вопросы.

    Пусть джаваскрипт скажем раз в 30 секунд спрашивает ардуины что надо обновить и обновляет
     
    Саша_да_да_Саша нравится это.
  7. А как получается не пойму, что нажимая на кнопку, ссылка открывается, а заставить эту кнопку активироваться по условию изнутри не получается.
    Мне же не надо получить ответ , запрос или какие то данные с сайта и т д, это же просто ссылка на страницу.
    <button type="button" id="led_3" class="button_disabled" onClick="onClick(1)">Router # 1</button>
    Вот сюда никак нельзя прикрутить?
    'http://megalink.free/login?dst=http://megalink.free&amp;username
    Наверно если так просто всё было я бы это где то уже прочитал, наверно бутон тинп такое не потерпит ))
     
    Последнее редактирование: 24 июн 2018
  8. А авто-рефреш каждую минуту например как делают? Может мне вместо перерисовки вставить адрес страницы?
     
  9. Тут есть свои трудности в адресе в конце на каждую точку дописывается в хвосте мак адрес несколько символов, на каждой кнопке это бы решалось просто, или тот хвост или тот, иначе авторизация не пройдёт
     
  10. DIYMan

    DIYMan Guest

    Я всё правильно понял. Правильный ответ - вот:

     
  11. А на 8266 такая же история ?? Что то Я не нашел на Ютубе похожего ничего
     
  12. DIYMan

    DIYMan Guest

    Какое отношение стандарт HTML и JavaScript имеют к ESP8266? Правильный ответ - никакого. Поймите наконец: кто отдаёт клиенту страницу - неважно: это может быть хоть ESP, хоть что. Важно, что если КЛИЕНТ умеет в JavaScript или в тег <META HTTP-EQUIV="refresh" ...> - то на таком КЛИЕНТЕ можно перейти по другому URI через энное кол-во времени. Вы именно об этом и спрашивали.

    У вас ESP чем является - сервером, отдающим код страницы, или клиентом? Если второе - тогда пишите парсер HTML, как минимум.
     
  13. Нет просто Я думал, что на8266 есть готовая библиотека, Я же делал Gsender, работает..., данные на почту отсылает, температуру, напряжение., это посложнее будет чем просто ссылку открыть, ладно тему надо закрывать, Я пока до этого не дорос, только что методом копирования - разбора, но там ещё HTML и JavaScript, не всё сразу ))