Pull to refresh

Comments 41

По-моему к Arduino даже были Ethernet-шильды. Так что в идеале её саму можно научить цепляться к серверу.
Да, есть и Ethernet и wifi шилды. Но в наличии у меня пока нет ни того, ни другого. Да и когда надо будет управлять чем-то большим, чем дисплей и светодиод, компьютер будет как нельзя кстати.
ИМХО, ПК в таких целях (если только речь не об умном доме целиком) — слишком много. Кстати, а с КПК пробовали играться в качестве ядра системы управления? По-моему некий компромисс между ПК и контроллером все же.
С КПК не пробовал. А вообще интересный вариант — и шума нету как от компьютера, и возможностей больше, чем у контроллера. Пока хочу подключить в качестве ядра старенький компьютер. А потом в идеале — raspberry.
Тогда мой совет — ищите либо с USB-хостом, либо с аппаратным COM-ом — очень облегчает жизнь. Но без контроллера в качестве GPIO платы там все равно не обойтись. Можно еще использовать IrDA и Bluetooth — но накладные расходы выше.
Возьмите ARM на заметку (Cortex-M3), там и нормальная производительности 100 МГЦ большое количество различных функций, и на ebay и куча различных отладок со всем чем надо))) Экран 3.2 + тач+Ethernet+232 х2+CAN x2+ 485 + USB host и все это за 70$ с доставкой)
скиньте линк пожалуйста
Да-да, плюсуюсь по поводу линка. И еще — он обычно прошит чем-то? Или на усмотрение утопающих? Вот только ebay меня настораживает.
Запрос на ебай """ ARM LCD board """, я заказывал ARM NXP LPC1768 Development Board, (у этого продавца или нет не помню… но точно эту плату),
к.с если интересно сделаю мини обзор.
Спасибо! По-моему на этом чипе даже .NET MF идет.
С КПК не пробовал. А вообще интересный вариант — и шума нету как от компьютера, и возможностей больше, чем у контроллера. Пока хочу подключить в качестве ядра старенький компьютер. А потом в идеале — 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, но это уже другая реализация получится.
Послание было дружественным?
А какую практическую пользу это может принести?
Как первое что пришло в голову («спасибо» активной рекламе) — управлять коптером/вертолетом прямо с мобильного телефона. Вариантов применения — безумное количество.
Управление, например, освещением или включением/выключением телевизора позволит создать видимость того, что в помещении кто-то находится. А включать/выключать диод и выводить сообщение на ЖК дисплей — от этого какая практическая польза?

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

А насчет управления вертолетом с мобильника — наоборот очень удобно. Особенно если привязать его к гироскопу в телефоне. Однажды видел, как с планшетника так управляли квадрокоптером — очень впечатлило.
Лучше делать так: у мобильника и устройства есть два jabber-аккаунта. Jabber-клиенты примитивны и есть для всего. Всё.
Если вы на андроиде залогинены в гуглоаккаунт, то у вас уже есть активный джаббер на телефоне. Но не знаю, есть ли простой доступ другим программам, или проще поднять отдельный джаббер.
Передавать специфические команды через пользовательский гуглталк не лучшая идея.
А сырые сокеты с readLine/writeLine в цикле разве не проще? Один же фиг полученную команду потом надо отпарсить.
Смысл в том чтобы в моменты потери связи команды бы накапливались в каком-нибудь буфере. Сокеты же требуют прямого сетевого подключения между мобильником и конечным устройством.
А что мешает реализовать socket-based сервер, и простой message-oriented протокол. И пусть себе накапливаются. Jabber — это XML. А XML в embedded — это всегда оверхед. Вы же не будете спорить, что обработка бинарного формата, или простых строк куда проще?
Дык фишка в том, что в Jabber это всё уже есть, тем более не нужно подымать свой сервер.
Для работы с телеметрией я бы даже свой поднял, имхо публичные сервисы — это менее безопасно.
Какой аспект безопасности вас тревожит?
езренет шилд стоит 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в.
А чем сокеты обычные не угодили? Баз данных, web сервер для этого как то уж слишком.
Да ничем, просто это альтернативный вариант. А вообще, как уже выше написали, оптимальным наверное было бы использовать ethernet-шилд.
Стив бы такую архитектуру не одобрил. WifiShield + TCP/IP stack и для особо утонченных autodiscovery via Zeroconf. Надо чтобы было проще.
>import de.bezier.data.sql.*; //библиотека для работы с БД MySQL
У меня почему-то на эту строчку ругается и говорит, что «No library found for de.bezier.data.sql», хотя, вроде, папку libraries создал в корне папки скетчбука, .zip с библиотекой распаковал, переименовал в SQLibrary распакованную папку, как сказано у автора тут bezier.de/processing/libs/sql/.

Автор, вы дополнительно что-то с этим моментом колдовали, или у вас без проблем прошло?
Sign up to leave a comment.

Articles