Как стать автором
Обновить

Контроллер умного дома (с Ethernet, WiFi, USB, блэкджеком и плюшками) за $20?

Время на прочтение 7 мин
Количество просмотров 217K
Некоторое время назад к нам обратился один потенциальный заказчик со своей идеей проекта «умного дома». Мы заказчикам всегда рады, особенно если у них есть более-менее внятная идея и достаточно денег для ее воплощения (сразу скажу — этот заказчик пока что является идеалом сферического заказчика в вакууме, повезло нам с ним). Так что после пары встреч родилось общее описание проекта, и мы приступили к поиску вариантов технической реализации. Нужен был недорогой контроллер с поддержкой WiFi и USB, небольшим энергопотреблением и, главное, с достаточно открытой архитектурой, чтобы мы могли сделать на его базе собственное кастомизированное решение.

И тут очень удачно попалась нам на глаза статья. Ух ты, какие штуки бывают, оказывается! У меня самого в качестве передвижной точки доступа для поездок по Китаю (где до сих пор RJ-45 розетка в номере при отсутствии WiFi — довольно частое явление) давно уже используется мини-роутер TP-LINK TL-WR702N, купленный рублей за 700, но тот факт, что внутри живет вполне приличный одноплатный компьютер с кучей дополнительных возможностей, стал для меня приятным сюрпризом. А поскольку мы по своему основному бизнесу плотно завязаны с Китаем (и китайскими производителями электроники в частности), стало нам интересно — во сколько же нам обойдется собственная плата на базе SoC AR9331, если целое законченное решение в корпусе, в коробке, с проводами и блоком питания, стоит в России 700р (на то время — $22) в рознице?

image

1. Чем так привлекательна SoC AR9331?

Для начала, что же лежит в основе всех этих крайне дешевых мини-роутеров? Это SoC (system-on-chip) Atheros AR9331 (даташит). В одном небольшом чипе (12х12мм) сосредоточены:
  • 32-разрядный процессор MIPS 400МГц
  • интерфейсы памяти (DRAM и serial Flash)
  • пятипортовый Ethernet switch
  • радиоинтерфейс 2.4 ГГц WiFi 802.11b/g/n (до 130Мбит)
  • контроллер USB 2.0 (хост/клиент)
  • UART, I2S/SPDIF, SLIC интерфейсы
  • до 28 GPIO (!!!).

Работает это все (помимо проприетарных прошивок) под управлением OpenWRT. Но самое интересное — этот чип в Китае оптом стоит в районе 5-6 USD! Однако…

2. Дайте две!

Очень захотелось посмотреть на это чудо живьем, провести пару-тройку бесчеловечных экспериментов. Выяснилось, что в «шаговой доступности» есть два варианта CPU board на основе AR9331. Это литовская Карамбола2 и китайские платы EL-M150. Конечно, для удобства мы заказали по паре-тройке development board (эту и вот такую, соответственно).

imageimage
Понятно, что китайские платы мы заказывали по своим каналам в Шеньжене, и обошлись они гораздо дешевле (65 USD с доставкой). Заодно у китайцев приобрели несколько штук процессорных плат, чтобы узнать, сколько же на самом деле стоит их производство? (в розницу китайцы ими торгуют по $25). Вот таких:

image

3. Carambola2 development board

Лирическое отступление.
Не могу не поделиться своими воспоминаниями о первом случае, когда я столкнулся с этим забавным словом — «карамбола». На заре перестройки в СССР начали издавать местный вариант журнала «Бурда моден». Это был безусловный хит, наши женщины (в моем случае — мама) стояли в очереди, чтобы ознакомиться с передовыми западными идеями кройки и шитья. Меня в то время тряпки интересовали мало, но вот встречались там всякие интересные кулинарные рецепты (а пожрать я всегда любил, да и сейчас… эх...), которые я всегда читал с удовольствием и крайней степенью любопытства. Уж больно все это глянцевое великолепие заметно отличалось от любимой настольной «Книги о вкусной и здоровой пище» 1976 года издания. Так вот, в одном из рецептов мне встретились золотые слова: "… возьмите две карамболы". Сказать, что я впал в ступор — это значит ничего не сказать. Мало того, что я совершенно не представлял себе, где их можно взять в конце 80х годов в г. Ленинграде? К моему глубочайшему потрясению, я не мог даже представить себе — что это вообще такое?! Овощ? Фрукт? Орех? Приправа? Специя? А фото волшебного предмета с чУдным (или чуднЫм) названием «карамбола», увы, не было… Вот так и пришлось мне жить в неведении вплоть до появления Интернета.

image

image

Что хорошо:
  • недорогая (33 Euro)
  • разъём miniUSB (подсоединяем к компу и сразу получаем питание плюс консоль)
  • маленькая (84х63х12мм вместе с разъемами)
  • керамическая антенна WiFi плюс разъем для маленькой внешней антенны
  • 16Мб флеш-памяти
  • развитое сообщество энтузиастов.

Что не очень хорошо:
  • мало всего: разъемов, кнопок, LEDов и т.п.
  • WiFi по умолчанию отключен, SCP и консоль — недоступны, из коробки — только WEB-доступ через Ethernet
  • неинформативная индикация текущего состояния
  • мне пришел вариант с какой-то сильно усеченной прошивкой
  • непонятно, что с доступностью: я до Нового года покупал, а вот сейчас на сайте доступен только предзаказ.

Поскольку питание — от компа через miniUSB, потребляемую мощность пока не замеряли.

4. EL-M150 development board

image
Что хорошо:
  • дофига всего на плате (14 LEDов, две релюхи, три Ethernet разъема, три USB (полноразмерных), слот для карт SD, кнопка включения с фиксацией, три кнопки без фиксации (включая Reset), 16 джамперов), разъем для большой антенны WiFi
  • прошивка сразу вполне полноценная, перепрошивать сходу не понадобилось
  • WiFi включен из коробки в режиме «точка доступа» — первоначальная настройка без проблем
  • SCP и консоль доступны сразу (если покупатель достаточно догадлив, чтобы угадать пароль «admin» для пользователя «root»).

Что не очень хорошо:
  • подороже и побольше Карамболы (это не недостаток — см. список возможностей чуть выше)
  • нужен отдельный блок питания (7-12В)
  • флеш-памяти — 8Мб
  • встроенная WiFi антенна (дорожка на плате) — не фонтан (хотя и работает)
  • изначально WEB-интерфейс — на китайском языке (ох, как же я матерился!)
  • 2 реле волшебного бренда «HUI KE» почему-то в номинале 1А 125В (что мешало 230В поставить — непонятно)
  • китайская специфика — технической поддержки не дождешься
  • одну плату мне каким-то образом удалось превратить в кирпич.

Потребляемая мощность (без внешних подключенных устройств) — порядка 1.1 Вт.

5. Процессорная плата EL-M150

Как я уже упоминал, нам было очень интересно — какова же себестоимость изделия наших китайских друзей (напоминаю, в розницу они продают эту плату в среднем за $25)? Мы посчитали. Итак, на тираже в 1000 шт. себестоимость платы выходит чуть меньше $12:
SoC AR9331 $5.4
RAM DDR2 64Мб $1.5
Serial flash 8Мб $1.1
Изготовление печатной платы (4 слоя) плюс монтаж — $3.2
Плюс мелочевка, тестирование и прошивка.

imageimage

Наша собственная плата получится в себестоимости чуть подороже, чем китайская, т.к. мы делаем вход питания 5В (у китайцев — 3.3В), чтобы можно было сразу на процессорную плату подключать USB клиентов (и питать ее от USB же). В общем, $20 в розницу в России — вполне реально. Опять же, китайские друзья сделали нижнюю поверхность гладкой как попка младенца, чтобы использовать свой любимый способ монтажа на «несущую плату» — трудолюбивыми вчерашними крестьянами с горячими (очень горячими — припой-то у всех уже бессвинцовый!) паяльниками в мозолистых руках. Мы же хотим сделать плату «двухсторонней» и уменьшить габариты раза в полтора. Как сделаем опытные образцы — всю документацию на плату откроем.

Да, кстати. Процессорная плата «в сборе» потребляет порядка 0.4Вт и не греется (вообще!).




Ну а сейчас в качестве эксперимента попробуем сделать с каждой из этих двух development boards и самой дешевой USB WEB-камеры (в тумбочке валялась Logitech какая-то, покупалась когда-то дешвле 500р) IP-камеру с трансляцией видео по локальной сети через WiFi. Надо же с чего-то начинать?
image

1. EL-M150

Начнем с китайской платы, т.к. с ней все проще простого.
1. Включаем питание. Секунд 20 плата мигает огоньками, как новогодняя елочка, после чего пара светодиодов начинают гореть постоянно. Плата готова к экспериментам.
2. Смотрим доступные WiFi сети. Обнаруживаем что-то вроде «Небезопасная беспроводная сеть OpenWRT_el-m150_020020». Цепляемся за нее, получаем IP адрес.
3. Лезем браузером на 192.168.1.1. Вводим пароль «admin». Видим неземную красотищу и радуемся, блин.

image

4. Переключаем язык на английский, радуемся еще раз, но гораздо сильнее. (я нашел видео на YouTube, где переключали немножко другой интерфейс OpenWRT, и сравнивал иероглифы, ...!!!). Заодно устанавливаем дату/время и сохраняем все конфиги. Еще можно зайти на вкладку «LEDX/RELAYX», посмотреть на мигающие светодиоды и послушать щелчки реле.
5. Переводим плату из режима «точка доступа» в режим клиента своей (домашней или рабочей) сети WiFi. Как это делать — подробно написано здесь. Запоминаем IP-адрес платы.
6. Подключаем камеру к порту USB.
7. Заходим на плату уже по новому IP-адресу в своей родной локальной сети. В WEB-интерфейсе выбираем вкладку usbd/webcam и ставим флажок на поле «enable or disable mjpg-streamer webcam». Сохраняем изменения — вуаля, на камере загорается зеленый светодиод, мы в эфире!
Теперь можно смотреть видео (например, в плеере VLC) по адресу http://<IP-адрес платы>:8080/?action=stream, или ловить скриншоты по ссылке http://<IP-адрес платы>:8080/?action=snapshot.

2. Carambola2

Здесь работы побольше (ну, хоть приключений с китайским языком нет).

1. Подключаем плату к компьютеру шнурком USB-miniUSB. Плата радостно мигает (один раз) зеленым светодиодиком. В консоли ничего нет. Новых WiFi сетей нет. Только ласково (и постоянно!) горят зеленые светодиоды на двух разъемах RJ-45. Что вообще происходит?!

2. Цепляем витой парой порт J4 на Карамболе к сетевой карте компа. Ага, комп получил IP-адрес! Идем на 192.168.1.1, видим LuCI, ура!

image

3. Устанавливаем пароль для рута. Теперь плата «видна» в консоли и по SCP. Круто.

image

4. Включаем WiFi, меняем режим с «точки доступа» на «клиент». Цепляемся за плату в локальной сети через WiFi — ура! Теперь плата может выйти в Интернет (нужно для следующего пункта).

5. Хотим поставить пакет mjpg-streamer. Облом!!! Нет такого пакета в репозитории! Нифига себе…

image

6. Скачиваем с сайта последнюю прошивку, перепрошиваем плату через WEB-интерфейс с сохранением настроек.

image

Ура, mjpg-streamer появился в списке пакетов! Устанавливаем.

7. Подключаем камеру к USB.

8. Все круто, только mjpg_streamer не запускается. Ошибка «Init v4L2 failed». Сравниваем установленные пакеты на M150 (где видео работает) и на Карамболе. Оказывается, не хватает еще пакета kmod-video-videobuf2. Устанавливаем пакет, перезапускаем стример — ура! Заработало.




С подключением и использованием USB флешек проблем никаких. Сейчас потихоньку мучаем GPIO, подключение 3G модема, собираем собственные прошивки OpenWRT и т.д. За эти деньги, я считаю, обе development boards — просто подарок. А сама процессорная плата — сказка.

Насколько решение на AR9331 подходит в качестве контроллера «умного дома»? По-моему, идеально подходит. В локальную сеть интегрируется без каких-либо проблем (хочешь — по кабелю Ethernet, причем PoE никто не отменял, хочешь — по WiFi). Мощности 400МГц MIPS процессора более чем достаточно. OpenWRT позволяет делать с этой платой что угодно без особых трудностей в программировании, множество пакетов доступно из репозитория в готовом виде. Периферия подключается легко. Стоит вполне разумных денег. В общем, если не нужно аппаратное кодирование/декодирование видео — по-моему, просто чума.
Теги:
Хабы:
+53
Комментарии 146
Комментарии Комментарии 146

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн