Парсинг страницы сайта ардуинкой

yden
Offline
Зарегистрирован: 30.01.2016

Здраствуйте.

Подскажите пожалуйста. Есть сайт на joomla, есть ардуинка нано с w5500. Возможно ли сделать следующее: на сайте создать страницу с радиокнопками, ардуинка читатет эту страницу, в зависимости от выбранной радиокнопки выполняет тот или оной код?

Благодарю

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Конечно можно.

Только "читает эту страницу" не совсем правильно. Страница это просто текстовой файл на сервере. Если открыть эту страницу в двух вкладках браузера то переключатели на каждой из них будут жить своей жизнью. Обычно состояние системы пишется в базу а ардуинка оттуда уже берет все что надо по средствам обычных запросов. Но это надо клиенту постоянно к серверу стучаться. Можно ардуино в качестве сервера использовать.

Короче вариантов море все зависит от конкретной задачи от требований к отклику и прочего.

kost82
Offline
Зарегистрирован: 30.11.2015

То что Вы видите в браузере - это ответ на запрос, который браузер послал серверу с сайтом (на joomla в вашем случае). На тот момент, когда Вы увидите в браузере радиокнопки - запрос сервером уже будет давно выполнен и ардуину в этот промежуток вряд ли получится включить.

Но зато на странице сайта можно сделать так, чтобы эта форма отправлялась на ардуину, работающую в качестве сервера. Вот тогда то и можно заполучить значения этих радио кнопок. Самым красивым при этом будет использование AJAX-запроса, чтобы страница не перезагружалась при выборе той или иной радиокнопки (при отправке формы).

kost82
Offline
Зарегистрирован: 30.11.2015

Если не нужна моментальная реакция ардуины на действия - то да, можно сохранять значения радиокнопок в базе и затем, например раз в минуту, ардуина будет пинать сервер по определенному адресу, где будет находиться скрипт, читающий записи из базы данных и выдающий ответ ардуине на ее запрос. Это если не хотите использовать ардуинку в качестве сервера.

yden
Offline
Зарегистрирован: 30.01.2016

Penni пишет:

Конечно можно.

Только "читает эту страницу" не совсем правильно. Страница это просто текстовой файл на сервере. Если открыть эту страницу в двух вкладках браузера то переключатели на каждой из них будут жить своей жизнью. Обычно состояние системы пишется в базу а ардуинка оттуда уже берет все что надо по средствам обычных запросов. Но это надо клиенту постоянно к серверу стучаться. Можно ардуино в качестве сервера использовать.

Короче вариантов море все зависит от конкретной задачи от требований к отклику и прочего.

Благодарю.

Суть: средняя школа, автоматизация подачи звонка, не ученик. Есть с десяток-полтора схем звонка, эти схемы должны быть размещены на одной странице, радиокнопки, кнопка Сохранить. Доступ к странице по паролю. Пользователей мало 5 человек, одновременных подключений нет. В зависимости от выбранной схемы ардуинка дергает релюшку. Платформа - esp8266 (nodemcu Lua)или ardiuno nano+w5500\5100. Для запоминания настроек планирую использовать модуль EEPROM I2C.

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Делайте страничку со схемами и кнопками. По нажатиию кнопки сохранить это все пишется в базу данных в удобном виде. Ардуино в качестве клиента раз в минуту запрашивает с сервера данные и смотрит изменилась ли схема или нет. Если изменилась забирает в свой еепром новую схему.

Можно вообще поле сделать в таблице что-то типа isUpdate по этому полю скрипт будет определять надо ли вообще отправлять схемы ардуине или просто ответить что схемы не изменились. Ардуино получив ответ либо продолжит работать в текущем режиме, либо обновит схемы и перейдет на новый режим работы.

sadman41
Offline
Зарегистрирован: 19.10.2016

А CMS вообще как связана с данной задачей - просто как точка администрирования?

yden
Offline
Зарегистрирован: 30.01.2016

sadman41 пишет:

А CMS вообще как связана с данной задачей - просто как точка администрирования?

Как точка администрирования.

Все больше убеждаюсь, что проще и надежнее поднять веб на самой ардуинке.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

yden пишет:

sadman41 пишет:

А CMS вообще как связана с данной задачей - просто как точка администрирования?

Как точка администрирования.

Все больше убеждаюсь, что проще и надежнее поднять веб на самой ардуинке.

И тормознутее :)

b707
Offline
Зарегистрирован: 26.05.2017

yden пишет:

Все больше убеждаюсь, что проще и надежнее поднять веб на самой ардуинке.

это вам так кажется, потому что вы еще не пробовали.  На самом деле задача парсить страничку с ардуины - на порядок проще и куда меньше нагрузит МК. Если даже эта задача для вас сложная.,то сомневаюсь, чтозапуск веба на ардуине вас поможет....

yden
Offline
Зарегистрирован: 30.01.2016

b707 пишет:

yden пишет:

Все больше убеждаюсь, что проще и надежнее поднять веб на самой ардуинке.

это вам так кажется, потому что вы еще не пробовали.  На самом деле задача парсить страничку с ардуины - на порядок проще и куда меньше нагрузит МК. Если даже эта задача для вас сложная.,то сомневаюсь, чтозапуск веба на ардуине вас поможет....

Подскажите плиз в какую сторону копать если все же парсить с ардуинки.

 

благодарю

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

yden пишет:

Подскажите плиз в какую сторону копать если все же парсить с ардуинки.

Если память не изменяет то для 5500 есть библиотека Ethernet2.

GET запросом с сервера тянете, например, shema.php. На сервера этот пхп скрипт берет информацию о схемах из базы данных и выдает ее вам в удобном виде. Ардуинка принимает и разбирает что пришло. По парсингу ответа от сервера на этом форуме полно тем.

yden
Offline
Зарегистрирован: 30.01.2016

Penni пишет:

yden пишет:

Подскажите плиз в какую сторону копать если все же парсить с ардуинки.

Если память не изменяет то для 5500 есть библиотека Ethernet2.

GET запросом с сервера тянете, например, shema.php. На сервера этот пхп скрипт берет информацию о схемах из базы данных и выдает ее вам в удобном виде. Ардуинка принимает и разбирает что пришло. По парсингу ответа от сервера на этом форуме полно тем.

 

спасибо