Arduino и Ethernet Shield W5100
|
|
|
Администратор
2015-12-08 16:13 #1
Arduino и Ethernet Shield W5100 обсуждение цикла статей.
Часть 1 - Начало проекта. Часть 2 - Добавлено динамическое обновление данных и работа с SD картой. Часть 3 - Добавлено оформление страницы. Часть 4 - Добавлено управление реле. Часть 5 - Добавлен регулятор мощности нагрузки в виде ползунка. NEW!!! Часть 6 - Реализация включения реле по таймеру
Профиль
|
|
|
|
|
AspiD
2016-01-15 13:28 #78
Цитата toto123 ( ) из глобала через роутер не работает из интернета есть доступ к страничке входа? какой у неё адрес?
нужно поправить в скрипте абсолютный адрес на относительный =)
Сообщение отредактировал AspiD - Пятница, 2016-01-15, 13:29
Профиль
|
|
|
AspiD
2016-01-15 13:36 #79
Код <script language="JavaScript">function password() {var a = document.form.text.value;if (a == 12345) { location.href += "/tipa-dofiga-secretno"; }else {document.write('<center><div style="width: 30%;"><p style="border-style: solid; border-width: 3px; border-color: ff0000; padding: 20; text-align: center; font-size: 20pt;">Password error!</p></div></center>'); }}</script> вот так вот должно получиться =)
Сообщение отредактировал AspiD - Пятница, 2016-01-15, 13:37
Профиль
|
|
|
|
toto123
2016-01-15 17:30 #81
Цитата AspiD ( ) Код <script language="JavaScript">function password() {var a = document.form.text.value;if (a == 12345) {location.href += "/tipa-dofiga-secretno"; }else {document.write('<center><div style="width: 30%;"><p style="border-style: solid; border-width: 3px; border-color: ff0000; padding: 20; text-align: center; font-size: 20pt;">Password error!</p></div></center>'); }}</script>
вот так вот должно получиться =) Доброго времени суток, AspiD ! Попробовал, пока ничего не получилось: в локалке всё окей, в глобале при наборе пароля - /tipa-dofiga-secretno добавляется теперь к глобальному IP, как и предполагалось Вами исправить. Обращение к новой странице есть, т.к. страничка с паролем исчезает, но на белом фоне вываливается надпись: Данные не получены, невозможно отобразить вэб-страничку, так как не поступили данные от сервера.
Получается переход получился, но ардуино не "отдаёт" index.htm. Честно не знаю откуда порыть это дело ?
Сообщение отредактировал toto123 - Пятница, 2016-01-15, 17:32
Профиль
|
|
|
ilnar
2016-01-15 21:40 #82
Цитата ilnar ( ) только показания разные Прошу меня простить великодушно, ввел всех в заблуждение :). Перепутаны показания температуры и влажности улицы(снаружи).
Профиль
|
|
|
|
toto123
2016-01-16 10:25 #84
Цитата toto123 ( ) Доброго времени суток, AspiD ! Попробовал, пока ничего не получилось: в локалке всё окей, в глобале при наборе пароля - /tipa-dofiga-secretno добавляется теперь к глобальному IP, как и предполагалось Вами исправить. Обращение к новой странице есть, т.к. страничка с паролем исчезает, но на белом фоне вываливается надпись: Данные не получены, невозможно отобразить вэб-страничку, так как не поступили данные от сервера.Получается переход получился, но ардуино не "отдаёт" index.htm. Честно не знаю откуда порыть это дело ? Странно, но сегодня всё заработало... Может внутренняя сеть была перегружена ? Маленький момент остался: получается когда пароль набираешь - его видно в адресной строке браузера. А вот когда к пинам реле обрашаешся, когда кнопки реле нажимаешь , то /setpin?pin=1 в адресной строке не появляется. Не подскажете, почему так происходит ?
Профиль
|
|
|
AspiD
2016-01-16 10:50 #85
Цитата toto123 ( ) когда к пинам реле обрашаешся, когда кнопки реле нажимаешь , то /setpin?pin=1 в адресной строке не появляется. Не подскажете, почему так происходит ? не уверен, что я правильно понял вопрос =) /setpin?pin=1 не появляется в адресной строке при нажатии на кнопку "Реле №1" по той простой причине, что это потребовало бы обновление странички, а этого мы допустить не можем =)) ардуинка довольно слаба и ограничена в ресурсах но флешку вставить можно =) мы учли сильные и слабые стороны и сделали так, как в русскоязычном сегменте интернета нам не встречалось - все статичные данные (страница, стили, скрипты) мы держим на флешке и передаём только один раз за сеанс в неизменном виде. а все динамически изменяемые данные (показания датчиков, состояния пинов) передаём "в фоновом режиме" и вставляем в уже загруженную страничку. с кнопками аналогично - при нажатии на неё запускается скрипт, который "в фоновом режиме" и обращается к /setpin?pin=1.
Профиль
|
|
|
toto123
2016-01-16 10:52 #86
На данном этапе вот так всё получилось, большое спасибо Aspid !
Профиль
|
|
|
|
toto123
2016-01-16 11:17 #88
Есть небольшая идея использовать всё это в летнее время на даче, в теплице, за городом, но проводного интернета там нет. Неплохо зарекомендовал себя в прошлом году TP-LINK TL-MR3020 в связке с GSM модемом и LAN входом. Но думаю встанет проблема по трафику, если открыта наша WEB-станичка. Можно уменьшить расход трафика, поменяя 1000 например на 10000 тут
Код request.open("GET", "ajax_flame" + nocache, true); request.send(null); setTimeout('GetFlameState()', [color=#ff0000]1000); В принципе показания температуры - вещь достаточно статичная ,нет смысла её обновлять каждые 1 сек. можно и подольше, но блин тогда и цвет изменения при нажатии на кнопки реле на станичке будет меняться только через 10 сек, а это не очень приятно...
Профиль
|
|
|
AspiD
2016-01-16 11:49 #89
toto123, стоит попробовать так: Код function onClick(pin){ var request = new XMLHttpRequest(); request.onreadystatechange = function() { GetFlameState(); } request.open("GET", "\setpin?pin=" + pin , false); request.send(null); } function PWM(){ value = document.getElementById("led_PWM").value; var request = new XMLHttpRequest(); request.onreadystatechange = function() { GetFlameState(); } request.open("GET", "\setpin?pin=5?value=" + value, false); request.send(null); }
Профиль
|
|
|
toto123
2016-01-16 17:21 #90
Да, AspiD, сработало. Обновления показаний температуры при Код setTimeout('GetFlameState()', 10000);
стали секунд через 10 обновляться. При нажатии на кнопки реле и изменении состояний доп. входов всё работает без задержек. Спасибо за помощь !
Профиль
|
|