Да, есть и Ethernet и wifi шилды. Но в наличии у меня пока нет ни того, ни другого. Да и когда надо будет управлять чем-то большим, чем дисплей и светодиод, компьютер будет как нельзя кстати.
ИМХО, ПК в таких целях (если только речь не об умном доме целиком) — слишком много. Кстати, а с КПК пробовали играться в качестве ядра системы управления? По-моему некий компромисс между ПК и контроллером все же.
С КПК не пробовал. А вообще интересный вариант — и шума нету как от компьютера, и возможностей больше, чем у контроллера. Пока хочу подключить в качестве ядра старенький компьютер. А потом в идеале — raspberry.
Тогда мой совет — ищите либо с USB-хостом, либо с аппаратным COM-ом — очень облегчает жизнь. Но без контроллера в качестве GPIO платы там все равно не обойтись. Можно еще использовать IrDA и Bluetooth — но накладные расходы выше.
Возьмите ARM на заметку (Cortex-M3), там и нормальная производительности 100 МГЦ большое количество различных функций, и на ebay и куча различных отладок со всем чем надо))) Экран 3.2 + тач+Ethernet+232 х2+CAN x2+ 485 + USB host и все это за 70$ с доставкой)
Запрос на ебай """ ARM LCD board """, я заказывал ARM NXP LPC1768 Development Board, (у этого продавца или нет не помню… но точно эту плату),
к.с если интересно сделаю мини обзор.
С КПК не пробовал. А вообще интересный вариант — и шума нету как от компьютера, и возможностей больше, чем у контроллера. Пока хочу подключить в качестве ядра старенький компьютер. А потом в идеале — raspberry.
Я реализовываю похожую систему. Только в качестве домашнего сервера — роутер на прошивке OpenWRT. На роутере крутится легкий веб-сервер Lighttpd. Камень преткновения — считывание информации с Arduino. Не нашел ничего адекватного, чтобы и роутер не загнулся от недостатка памяти и производительности, и работало на низком уровне. Пробовал и perl, и bash, и даже скрипты на Lua. Чтобы было понятно — почти всё в embedded linux обрезано донельзя. Причем проблем писать в порт нет, чтобы послать управляющую команду Arduino, проблема именно в считывании данных с датчиков. Кстати, как и некоторые отписавшиеся смотрю в сторону замены роутера на raspberry pi.
1. Запрашивать базу раз в 50 мс + время самого запроса — это немного жестоко, может быть стоит снизить частоту до хотя бы раз в секунду? Хотя, понятное дело, зависит от применения.
2. Лазить в базу напрямую через веб нежелательно — установка соединения с базой занимает время, плюс есть определенные вопросы по безопасности (которые приходится решать селективным доступом по IP — а если домашний IP поменяется?). ИМХО было бы лучше закрыть доступ к базе извне (читай — перекрыть порт 3306), и отдавать информацию через промежуточный PHP скрипт, естественно с каким-то контролем доступа (пусть даже пароль через $_GET). Можно еще конечно SSL прикрутить, чтобы не светиться, но это для совсем серьезных случаев.
1. 50 мс — это просто наобум взятая цифра. Тут действительно, все зависит от применения.
2. Вариант с промежуточным скриптом очень интересен. Я думаю, что даже наверное лучше оставить веб-сервер и домашний компьютер разделенными (не покупать внешний ip для компьютера и не размещать БД на нем). Именно в целях безопасности, чтобы все что могло воздействовать на компьютер — это была информация по запросу из БД.
P.S. По поводу безопасности при написании статьи я вообще не задумывался и в одной из программ засветил свой домен с БД. Кто-то очень внимательно видимо прочел статью и уже отправил мне послание. =)
Да, лучше это разделить, и как уже написано, реализовать запрос с самой Ардуино… ну или переползти на Raspberry, но это уже другая реализация получится.
Как первое что пришло в голову («спасибо» активной рекламе) — управлять коптером/вертолетом прямо с мобильного телефона. Вариантов применения — безумное количество.
Управление, например, освещением или включением/выключением телевизора позволит создать видимость того, что в помещении кто-то находится. А включать/выключать диод и выводить сообщение на ЖК дисплей — от этого какая практическая польза?
И, мне кажется, с мобильного будет крайне неудобно управлять вертолётом. Да и возможные задержки сигнала не пойдёт на пользу.
Диод и дисплей были в учебных целях. Вместо у них уже можно подключать, например, освещение.
А насчет управления вертолетом с мобильника — наоборот очень удобно. Особенно если привязать его к гироскопу в телефоне. Однажды видел, как с планшетника так управляли квадрокоптером — очень впечатлило.
Если вы на андроиде залогинены в гуглоаккаунт, то у вас уже есть активный джаббер на телефоне. Но не знаю, есть ли простой доступ другим программам, или проще поднять отдельный джаббер.
Смысл в том чтобы в моменты потери связи команды бы накапливались в каком-нибудь буфере. Сокеты же требуют прямого сетевого подключения между мобильником и конечным устройством.
А что мешает реализовать socket-based сервер, и простой message-oriented протокол. И пусть себе накапливаются. Jabber — это XML. А XML в embedded — это всегда оверхед. Вы же не будете спорить, что обработка бинарного формата, или простых строк куда проще?
езренет шилд стоит 7 баксов. рекомендую.
из минусов очень тяжелая библиотека tcp/ip стека, занимает около 10кбайт памяти.
делал себе езернет контроллер для IR пульта. принимает команды с любого пульта и формирует соотвествующий http запрос в сеть. глюки не замечены.
Где можно найти такой дешевый Ethernet Shield? На всём ebay я самое дешевое что видел $16. На Dealextreme и того дороже — $20.
За $6.5 видел только чисто кусок текстолита с вытравленными дорожками (PCB), видимо, чтобы напаять нужные детали самостоятельно. Вы может спутали с ним?
я вот такой использовал. www.ebay.com/itm/280706213546. если внимательно читать документацию проблем нет. из нюансов 1) потребляет значительный ток по шине 3.3 вольта. не все ардуины могут столько выдать. 2) логические уровни 3.3в, но ардуина их понимает, преобразователь уровней не обязательно 3) не забыть подтянуть ресет к +5в.
>import de.bezier.data.sql.*; //библиотека для работы с БД MySQL
У меня почему-то на эту строчку ругается и говорит, что «No library found for de.bezier.data.sql», хотя, вроде, папку libraries создал в корне папки скетчбука, .zip с библиотекой распаковал, переименовал в SQLibrary распакованную папку, как сказано у автора тут bezier.de/processing/libs/sql/.
Автор, вы дополнительно что-то с этим моментом колдовали, или у вас без проблем прошло?
Управление Arduino с телефона