Возможно ли это сделать на Ардуино?

Samodelkin
Offline
Зарегистрирован: 07.06.2012

Такой вопросец. Есть Ардуино Нано + эзернет шилд на визнете. Возможно ли сделать так, что бы дуина самостоятельно авторизовалась на странице в инете, причем протокол https, выдерала нужные данные, показания и выводила на дисплей? Или всетаки тут без компа со скриптами (на php или java) не обойтись ?!

vworld
vworld аватар
Offline
Зарегистрирован: 26.09.2011

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

вот смотрите сами...то, что вы хотите сделать называется умным словом парсинг.

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

Я бы посоветовал посмотреть для начала в сторону например работы ардуино как проверки почты на gmail

Samodelkin
Offline
Зарегистрирован: 07.06.2012

Спасибо за ответ. Мне хотя бы понять направление куда двигаться. Буду изучать..

leshak
Offline
Зарегистрирован: 29.09.2011

 >Парсят на "чем-то", т.е. имется в виду язык программирования, вы сами отметили пхп, яву и т.д. теперь далее рассуждая получается

Ну да. Или на C++. Ардуино скетч это же тоже "язык программирования", и "парсить" на нем тоже вполне можно. Чем и занимаются собственно любые скетчи работы по http для дуины. Если "сервер" - парсят запросы, если "клиент" - парсят ответы.

>что вам как минимум нужно на ардуино с шилдом вкорячить интерпретатор языка

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

К парсеру это не имеет никакого отношения. Да и "полноценный парсер" (разбор на токены или в DOM-дерево)  писать,  в большинстве случаев не нужно. В ситуации с логин формой - на ее парсинг можно вообще плюнуть. Тупо сразу слать login/password POST-том, а "парсинг ответа" будет состоять в банальном нахождение в ответе наличия характерной строки типа "invalid password" - значит не залогинились, или "success" - залогинились.

ну и потом, ведь скорее всего логин означает что мы хотим работать дальше с ресурсом "авторизированными", что-бы он "узнавал нас" нужно ему каждый раз сообщать что мы "из залогиненой сессии". Тут, конечно сильно зависит от механизма идентификации на самом ресурсе. Обычно это какаяю-нибудь cookies, которую он шлет при удачном логине. Поэтому, со стороны арудины, нужно будет еще реализовать запоминание куков и слать их при следующих обращениях.

>как проверки почты на gmail

А вы жестокий :) Посоветовать gmail, у которого "ajax на ajax-e и аджаксом погоняет" (очень много javascript-логики и сама страница формируется динамически на клиенте). Плюс еще и капчи могут быть :( Тут уж проще по pop3, а не http почту проверять.

А вообще, вот что-бы упросить подобную задачу "программно работать с сайтом" - нормальный сайты как раз и дают отдельное API (в том числе и гугл, кстати, для многих своих сервисов). Типа "для людей удобный им интерфейс", для программ - удобный им (без всякой визуальщины и т.п.)

Вообщем изначальную задачу - решить вполне можно (но есть одно большое НО, про него ниже). Естественно, вначале нужно хорошо представлять протокол http. Или хотя-бы взять Fiddler2, подергать сайт в браузере, посмотреть что шлете вы, а что он в ответ. Со всеми заголовками и проч. Попытатся руками собрать запрос.... ну а потом повторить это кодом ардуины.

А теперь "засада". Могу ошибатся, конечно, но насколько я знаю https ставит жирный крест на всех этих начинаниях :(

У Ардуины банально "не хватит сил" для всей этой криптографии (а https это именно криптография, SSL). Так что "если шибко нужно" - прийдется смотреть в сторону "более взрослых камней". На армы какие-нибудь.

Или что-то типа Netduino или Fez Panda. Не помню точно, но вроде MicroFramework (библиотеки для этих плат) поддерживает криптография, а значит есть шансы что и https зафурычит.

vworld
vworld аватар
Offline
Зарегистрирован: 26.09.2011

leshak как всегда не превзойденно объяснил так популярно, что мне даже стыдно стало что я ранее отписывал :(

а про пример работы с gmail собственно говоря простейшее решение - http://habrahabr.ru/post/137179/

мое имхо...прежде чем садиться за что-то достаточно серьезное, стоит пощупать попроще что-то предварительно...заработало простое...можно далее усложнять задачу.

leshak
Offline
Зарегистрирован: 29.09.2011

vworld пишет:

а про пример работы с gmail собственно говоря простейшее решение - http://habrahabr.ru/post/137179/

Это из другой "оперы" пример.

Во первых это доступ не по http, а по IMAP. Как раз то что я писал "проще по POP3" IMAP и POP3 это "родственники". IMAP - чуток более "продвинутый". Оба являются протоколами "доступа к почтовому ящику" (и ни на что другое - не способны), а не вебовскими протоколами.

Во вторых. В этом примере работа с ящиком, вообщем-то спрятанна в "сторонюю dll-ку", так что самого протокола - не видно :)

Ну и в третьих, к ардуине он имеет "далекое отношение", она тут "приблудилась". Вся "работа" происходит на стороне компа, а арудино используются просто в качестве "лампочки" через Serial.