Удаленный WEB-сервер в устройстве

alfik777
alfik777 аватар
Offline
Зарегистрирован: 29.06.2015

Поставлена задача управления удаленными устройствами с редактированием в них конфигурационных данных . Такие системы уже работают, для управление была написана прога и ей через usb управляю. Но теперь нужно удаленно, используя GSM. Изначально планировалось к уже установленному UNO/MEGA  добавить модуль Simcom и управлять  с помощью посылок СМС. Но объемы данных  оказались внушительными и было решено, что в каждом устройстве должна быть своя "web-страничка" с постоянным адресом. Углубляться в пакеты UDP, TCP-IP, влазить в дебри на низом уровне  нет возможности, поэтому хочется всё и сразу:-).  Смотрю разные варианты - готовые модули c W5100, ENC28J60 с  выходами прямо на Ethernet RJ-45, есть либы,  но все примеры для работы с LAN,  и как мне оттуда "выдернуть" нужное для отправки на GSM-модуль - тут у меня туман и пробелы... Смотрю также вариант одноплатника - типа ORANGE PI ONE  или PC- тут свои  сложности - если в случае с ARDUINO - там устройства уже работают и конфигурируются  с компьютерного приложения через USB, то тут нужно всё начинать с нуля,  опыта с этим нет, а нужно как всегда на вчера. В то же время заказчик кивает в сторону роутеров, модемов, мол зачем так сложно всё, вот во всех таких копеечных устройствах есть своя админ- страничка. И он таки прав... Учитывая, что устройств таких много, хочется "правильный" вариант.  В общем, подскажите,  люди добрые, в каком направлении  правильней копать, чтоб лопату не сломать. 

Logik
Offline
Зарегистрирован: 05.08.2014

http://arduino.ru/forum/programmirovanie/microajax-dlya-arduino

А как аппаратно подключить к сети - типово W5100, но есть и варианты например по вайфаю и пр. 

inspiritus
Offline
Зарегистрирован: 17.12.2012

Типа ЭТОГО ?

wifilan
Offline
Зарегистрирован: 01.12.2014

inspiritus пишет:

Типа ЭТОГО ?

вот это круто

alfik777
alfik777 аватар
Offline
Зарегистрирован: 29.06.2015

Да, это прикольно, нужно взять на вооружение, но сейчас пока вопрос принципиальный -  какое железо и  как всё  это организовать, учитывая что оперировать нужно будет значениями, которых больше тысячи. Сейчас, при управлении с компа, имеется 10 страниц с таблицей 10x10, т.е. можно редактировать значения  в ячейках и потом отправлять эту страницу или все сразу страницы со  значениями   в устройство . Но смогу ли я что-то подобное сотворить  применяя, к примеру,  модуль ENC28J60 ? Для хранение HTML нужно ставить доп. память? И вообще, "нарисовать " это всё реально ?

inspiritus
Offline
Зарегистрирован: 17.12.2012

Про енс забудьте, толко w5100, код и скрипты лежат на sd, сделать код сколь угодно большим не проблема, проблема в скорости,с которй он вытряхивается по запросу. Зато , когда страница прогружена аякс уже быстро все делает.

alfik777
alfik777 аватар
Offline
Зарегистрирован: 29.06.2015

inspiritus пишет:

Про енс забудьте, толко w5100

А что-то многие пишут что W5100 через 10-15 минут работы виснут.

 

inspiritus
Offline
Зарегистрирован: 17.12.2012

Прведенная ссылка тестируется уже более года, подвисаний не было. Влюбом случае я до пятницы в командировке, перегрузить не смогу, а у Вас есть возможность проверить на подвисания :)

вот enc виснет ето ДААА...

alfik777
alfik777 аватар
Offline
Зарегистрирован: 29.06.2015

inspiritus пишет:

Прведенная ссылка тестируется уже более года

т.е. по Вашей ссылке это выполнено именно на w5100 ? Интерфейс приятный, поделитесь секретом - где вообще посмотреть  синтаксис  для этого варианта  html, какие тэги можно использовать , это же вроде не в чистом виде HTML.  

PS.Только дата похоже загуляла

inspiritus
Offline
Зарегистрирован: 17.12.2012

Да на 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 без этого не работает корректно.

dmitron1036
Offline
Зарегистрирован: 10.01.2016

С нуля - это длинный путь.

Сохраняем данные в EEPROM.

Изменяем через страницу (arduino - сервер)

Я надеюсь, с белыми - серыми IP в 2G/3G сетях вы уже знакомы? С этого надо начать.

1) получаете белый IP на сим карту.

2) обращаетесь к человеку, который уже писал интерфейсы к ардуино серверу через html страницу. (делал такое, сотни строк кода только на ардуину + js+html)

Либо в интернете делаете сервер, который будет отвечать на периодические запросы ардуины. тут белых ай-пи не надо.(тоже делал, вообще никаких проблем)

dmitron1036
Offline
Зарегистрирован: 10.01.2016

собсна суть проблемы: из интернета обратиться к GPRS серверу(ардуине) невозможно. Можно будет когда IP ардуины будет связано с IP в интернете.(что для этого делать надо не вникал) 

inspiritus
Offline
Зарегистрирован: 17.12.2012

Я так и не смог получить у мтс настоящий белый статический ip, однако эту проблему можно обойти с помощью DDNS.

Работают же через lte-роутеры камеры наблюдения... 

dmitron1036
Offline
Зарегистрирован: 10.01.2016

это "серый" IP называется?

всм. как сделать, чтобы из инета можно было обратиться к GPRS серверу? Я пока не понял как. это оператору надо доплатить?

(DDNS использую)

alfik777
alfik777 аватар
Offline
Зарегистрирован: 29.06.2015

По данной теме  мой заказчик не видит проблемы, на мой вопрос о необходимости статического белого IP , с уверенностью было сказано - цена вопроса  - 30 грн/ месяц .

dmitron1036
Offline
Зарегистрирован: 10.01.2016

ну тогда в библиотеке GSM есть примерчик сервера (кажется)

a5021
Offline
Зарегистрирован: 07.07.2013

inspiritus пишет:

Я так и не смог получить у мтс настоящий белый статический ip, однако эту проблему можно обойти с помощью DDNS.

Работают же через lte-роутеры камеры наблюдения... 

Не выйдет решить проблему через DDNS. Все клиенты во внутренней сети сотового оператора сидят за NAT-ом и наружу прут через него. Снаружи они недоступны, даже если известен адрес дырки, через которую они вылазят.

В качестве одного из вариантов, проблема доступа, скажем, к "дачной" сети может быть решена подъемом SSH- или OpenVPN-сервера на домашнем белом адресе. Сответствующий клиент со стороны "дачи" устанавливает соедиениение с сервером и через этот линк можно уже шастать в дачную сеть чем угодно.

inspiritus
Offline
Зарегистрирован: 17.12.2012

... внешний ip мтс дает, не дает статический (меняет три - четыле раза за сутки)

a5021
Offline
Зарегистрирован: 07.07.2013

Важное уточнение. Выходит, у всех может быть по разному. Я говорил за мегафон в своем регионе.

dmitron1036
Offline
Зарегистрирован: 10.01.2016
alexvs
Offline
Зарегистрирован: 22.07.2014

Я заменил шилд с 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

inspiritus
Offline
Зарегистрирован: 17.12.2012

А чем он лучше ? 

dmitron1036
Offline
Зарегистрирован: 10.01.2016

да, оч интересно как новый шилд улучшает дырявую библиотеку.

(чип 5500 действительно лучше 5100)

alexvs
Offline
Зарегистрирован: 22.07.2014

Ну не шилд улучшает, а чип новый., хотя бы тем что работает быстрее. Про библиотеку согласен - кривовата, но написать свою - не смогу. 

Напрмер: получаю с сайта http://openweathermap.org/ 3х часовой прогноз погоды на несколько дней, в XML формате. Объем информации получается 15 - 18 кБ. 

W5100-  если использовать обычный объем буфера 2кБ на сокет, то часть информации не удается распарсить, она прсто теряется. Вполне допускаю, что не оптимально написал код парсера. Однако, если в библиотечных файлах уменьшить количесво сокетов с 4 до 2, а объем буферов увеличить с 2кБ до 4кБ, то при таком раскладе вся информация успевает обрабатываться и ничего не теряется.

W500- при переходе на данный чип и библиотеку Ethernet2, которая в общем то отличается тольько файлом w5500.h, все работает как есть, т.е. обем RX TX буферов остается 2кБ (правда сокетов уже 8).

 

alexvs
Offline
Зарегистрирован: 22.07.2014

Так же на W5100 у меня были проблемы при одновременной работе web-клиента и web-сервера, на W5500 - все замечательно работает,  web-клиент получает прогноз погоды из инета и пишет на внешний сервис различную инфу, а  web-сервер используется для формирования собственного веб-интерфейса.

ЗЫ справедливости ради надо отметить, что проблемы эти были вызваны, скорее всего, только уменьшением кол-ва сокетов с 4х до 2х.

dmitron1036
Offline
Зарегистрирован: 10.01.2016

у меня сервер на меге + w5100. До меня часть запросов не доходит.

Ну например из 20 картинок грузится только 10.

В этом направлении улучшения есть?