Удаленный WEB-сервер в устройстве
- Войдите на сайт для отправки комментариев
Поставлена задача управления удаленными устройствами с редактированием в них конфигурационных данных . Такие системы уже работают, для управление была написана прога и ей через usb управляю. Но теперь нужно удаленно, используя GSM. Изначально планировалось к уже установленному UNO/MEGA добавить модуль Simcom и управлять с помощью посылок СМС. Но объемы данных оказались внушительными и было решено, что в каждом устройстве должна быть своя "web-страничка" с постоянным адресом. Углубляться в пакеты UDP, TCP-IP, влазить в дебри на низом уровне нет возможности, поэтому хочется всё и сразу:-). Смотрю разные варианты - готовые модули c W5100, ENC28J60 с выходами прямо на Ethernet RJ-45, есть либы, но все примеры для работы с LAN, и как мне оттуда "выдернуть" нужное для отправки на GSM-модуль - тут у меня туман и пробелы... Смотрю также вариант одноплатника - типа ORANGE PI ONE или PC- тут свои сложности - если в случае с ARDUINO - там устройства уже работают и конфигурируются с компьютерного приложения через USB, то тут нужно всё начинать с нуля, опыта с этим нет, а нужно как всегда на вчера. В то же время заказчик кивает в сторону роутеров, модемов, мол зачем так сложно всё, вот во всех таких копеечных устройствах есть своя админ- страничка. И он таки прав... Учитывая, что устройств таких много, хочется "правильный" вариант. В общем, подскажите, люди добрые, в каком направлении правильней копать, чтоб лопату не сломать.
http://arduino.ru/forum/programmirovanie/microajax-dlya-arduino
А как аппаратно подключить к сети - типово W5100, но есть и варианты например по вайфаю и пр.
Типа ЭТОГО ?
Типа ЭТОГО ?
вот это круто
Да, это прикольно, нужно взять на вооружение, но сейчас пока вопрос принципиальный - какое железо и как всё это организовать, учитывая что оперировать нужно будет значениями, которых больше тысячи. Сейчас, при управлении с компа, имеется 10 страниц с таблицей 10x10, т.е. можно редактировать значения в ячейках и потом отправлять эту страницу или все сразу страницы со значениями в устройство . Но смогу ли я что-то подобное сотворить применяя, к примеру, модуль ENC28J60 ? Для хранение HTML нужно ставить доп. память? И вообще, "нарисовать " это всё реально ?
Про енс забудьте, толко w5100, код и скрипты лежат на sd, сделать код сколь угодно большим не проблема, проблема в скорости,с которй он вытряхивается по запросу. Зато , когда страница прогружена аякс уже быстро все делает.
Про енс забудьте, толко w5100
А что-то многие пишут что W5100 через 10-15 минут работы виснут.
Прведенная ссылка тестируется уже более года, подвисаний не было. Влюбом случае я до пятницы в командировке, перегрузить не смогу, а у Вас есть возможность проверить на подвисания :)
вот enc виснет ето ДААА...
Прведенная ссылка тестируется уже более года
т.е. по Вашей ссылке это выполнено именно на w5100 ? Интерфейс приятный, поделитесь секретом - где вообще посмотреть синтаксис для этого варианта html, какие тэги можно использовать , это же вроде не в чистом виде HTML.
PS.Только дата похоже загуляла
Да на w5100 и Mega2560
В гуглроме нажмите f12 кажется и все станет видно
интерфейс это просто таблица и чутьчуть стилей.
к нему прикучен скрипт на js который взаимодействует с ответной программой в контроллере
почитайте ниже указанное там все понятно
http://startingelectronics.org/tutorials/arduino/ethernet-shield-web-server-tutorial/web-server-read-switch-using-AJAX/
http://www.ibm.com/developerworks/ru/views/xml/libraryview.jsp?search_by=Ajax+master
особенно вот это
http://startingelectronics.org/tutorials/arduino/ethernet-shield-web-server-tutorial/SD-card-IO/
И еще ... Поищите в моих топиках переписку с уважаемым araris , там обсуждался правильный ресет w5100 без этого не работает корректно.
С нуля - это длинный путь.
Сохраняем данные в EEPROM.
Изменяем через страницу (arduino - сервер)
Я надеюсь, с белыми - серыми IP в 2G/3G сетях вы уже знакомы? С этого надо начать.
1) получаете белый IP на сим карту.
2) обращаетесь к человеку, который уже писал интерфейсы к ардуино серверу через html страницу. (делал такое, сотни строк кода только на ардуину + js+html)
Либо в интернете делаете сервер, который будет отвечать на периодические запросы ардуины. тут белых ай-пи не надо.(тоже делал, вообще никаких проблем)
собсна суть проблемы: из интернета обратиться к GPRS серверу(ардуине) невозможно. Можно будет когда IP ардуины будет связано с IP в интернете.(что для этого делать надо не вникал)
Я так и не смог получить у мтс настоящий белый статический ip, однако эту проблему можно обойти с помощью DDNS.
Работают же через lte-роутеры камеры наблюдения...
это "серый" IP называется?
всм. как сделать, чтобы из инета можно было обратиться к GPRS серверу? Я пока не понял как. это оператору надо доплатить?
(DDNS использую)
По данной теме мой заказчик не видит проблемы, на мой вопрос о необходимости статического белого IP , с уверенностью было сказано - цена вопроса - 30 грн/ месяц .
ну тогда в библиотеке GSM есть примерчик сервера (кажется)
Я так и не смог получить у мтс настоящий белый статический ip, однако эту проблему можно обойти с помощью DDNS.
Работают же через lte-роутеры камеры наблюдения...
Не выйдет решить проблему через DDNS. Все клиенты во внутренней сети сотового оператора сидят за NAT-ом и наружу прут через него. Снаружи они недоступны, даже если известен адрес дырки, через которую они вылазят.
В качестве одного из вариантов, проблема доступа, скажем, к "дачной" сети может быть решена подъемом SSH- или OpenVPN-сервера на домашнем белом адресе. Сответствующий клиент со стороны "дачи" устанавливает соедиениение с сервером и через этот линк можно уже шастать в дачную сеть чем угодно.
... внешний ip мтс дает, не дает статический (меняет три - четыле раза за сутки)
Важное уточнение. Выходит, у всех может быть по разному. Я говорил за мегафон в своем регионе.
в Украине статический IP:
http://www.mts.ua/ru/internet/for-laptop/3g-internet/contract/staticheskij-ip-adres/
в России : http://www.corp.spb.mts.ru/telematika/services/static_ip/
Я заменил шилд с W5100 на шилд W5500, немного дороже, но заметно лучше.
http://ru.aliexpress.com/item/W5500-Ethernet-Network-Modules-TCP-IP-51-STM32-SPI-Interface-for-Arduino/32593612576.html?spm=2114.13010608.0.73.ELl66P
А чем он лучше ?
да, оч интересно как новый шилд улучшает дырявую библиотеку.
(чип 5500 действительно лучше 5100)
Ну не шилд улучшает, а чип новый., хотя бы тем что работает быстрее. Про библиотеку согласен - кривовата, но написать свою - не смогу.
Напрмер: получаю с сайта http://openweathermap.org/ 3х часовой прогноз погоды на несколько дней, в XML формате. Объем информации получается 15 - 18 кБ.
W5100- если использовать обычный объем буфера 2кБ на сокет, то часть информации не удается распарсить, она прсто теряется. Вполне допускаю, что не оптимально написал код парсера. Однако, если в библиотечных файлах уменьшить количесво сокетов с 4 до 2, а объем буферов увеличить с 2кБ до 4кБ, то при таком раскладе вся информация успевает обрабатываться и ничего не теряется.
W500- при переходе на данный чип и библиотеку Ethernet2, которая в общем то отличается тольько файлом w5500.h, все работает как есть, т.е. обем RX TX буферов остается 2кБ (правда сокетов уже 8).
Так же на W5100 у меня были проблемы при одновременной работе web-клиента и web-сервера, на W5500 - все замечательно работает, web-клиент получает прогноз погоды из инета и пишет на внешний сервис различную инфу, а web-сервер используется для формирования собственного веб-интерфейса.
ЗЫ справедливости ради надо отметить, что проблемы эти были вызваны, скорее всего, только уменьшением кол-ва сокетов с 4х до 2х.
у меня сервер на меге + w5100. До меня часть запросов не доходит.
Ну например из 20 картинок грузится только 10.
В этом направлении улучшения есть?