Как мы хакатон про Интернет вещей делали
Привет, Geektimes!
Этим полукреслом мастер Гамбс начинает новую партию мебели…
И. Ильф, Е. Петров, «Двенадцать стульев»
Совсем недавно мы — Mail.Ru Group, Intel и Unwired Devices — делали хакатон по Интернету вещей. В принципе, это могло бы быть рядовым событием — хакатоны по IoT сейчас не делает только ленивый. Но мы решили придумать формат, который выгодно отличал бы нас от других подобных мероприятий.
И если отбросить излишнюю скромность, то можно сказать, что этим хакатоном мы начинаем новую серию мероприятий по IoT — мероприятий, на базе которых мы хотим сформировать площадку для обсуждения современных IoT-технологий, на которой будут присутствовать не только энтузиасты, но и разработчики самих технологий, представители индустрии и инвесторы, заинтересованные в тематике Интернета вещей.
Ничтожная часть выпитого за два дня кофе
Начали же мы с хакатона. И теперь хотим рассказать вам, почему мы его сделали, что получилось и какие выводы мы извлекли.
Что же нам не нравилось в типичных IoT-хакатонах? В первую очередь то, что в них, как правило, нет IoT как такового — в том виде, в каком его понимают в промышленности, ЖКХ или даже умном доме. К сожалению, в образовательном IoT (а хакатоны можно отнести к образовательному сегменту) сейчас царит вакуум. Если в умном доме живут и здравствуют Z-Wave и ZigBee, промышленность с интересом смотрит на 6LoWPAN, а ЖКХ планирует переезжать на LoRa, то на среднестатистическом хакатоне вам, скорее всего, предложат написать что-нибудь для железки с обычным Wi-Fi. В среде разработки Arduino или подобной. С аналитикой и визуализацией — и это будет единственная серьёзная часть такого мероприятия — в облаке ThingWorx, Azure или подобном.
Да, даже на таких платформах можно отработать различные программные решения и сделать наброски IoT-сервисов, но вообще говоря, всё то же самое можно отработать и на обычном ноутбуке. Если вам надо показать, как вообще можно данные с какого-нибудь электросчётчика отправлять в облако, то одинаково подойдёт и Raspberry Pi, и ноутбук. А если вам эти данные надо отправлять с каждого из 236 электросчётчиков настоящего многоквартирного дома — и Raspberry Pi, и ноутбук для этого одинаково не подойдут. То есть, между ноутбуком и RPi в такой задаче есть количественная разница, но никак не качественная.
Мы решили это изменить и организовать хакатон на тех IoT-технологиях, которые не просто используются в промышленности сегодня, а будут использоваться завтра. И аппаратных, и программных.
Вторая проблема многих хакатонов — это замкнутые, герметичные мероприятия, в которых на входе команды получают некие наборы и инструкции, а на выходе — призы. Часто больше ничего не происходит: ни до, ни после, ни во время (за исключением, конечно, написания командами кода). Это мы тоже решили изменить — и, как я сказал выше, превратить хакатон в площадку, на которой есть и команды, и разработчики собственно базовых технологий, и представители индустрии, и инвесторы, заинтересованные в тематике IoT.
Технологии
С точки зрения технологий интернет вещей распадается на три направления:
- передать данные: беспроводные технологии связи, позволяющие подключить датчики и системы управления;
- собрать данные: программно-аппаратная система сбора данных с подключённых систем и их хранения;
- обработать данные: программная среда анализа и визуализации накопленных данных.
Из этих трёх подсистем мы решили предоставить участникам хакатона… разумеется, все три!
- Передать данные: участникам были доступны комплекты для построения небольших меш-сетей с протоколом 6LoWPAN на базе модулей Unwired Kit — в них входили датчики температуры и влажности воздуха, влажности почвы, гироакселерометры, реле, дополнительно имелись кнопки, GPS и другие модули. К комплектам можно было подключать проводные датчики Seeedstudio.
- Собрать данные: шлюз между сетью 6LoWPAN и Wi-Fi на базе микрокомпьютера Intel Edison, который мы специально сделали для мероприятия (но и, конечно, с заделом на будущее: Edison весьма интересен, когда нужна хорошая вычислительная мощность и много памяти в предельном компактном размере).
- Обработать данные: СУБД Tarantool, которая в данной ипостаси превратилась из СУБД в платформу Интернета вещей. У Tarantool есть встроенный сервер приложений с Lua — и он позволяет написать как скрипты для сбора данных (наша система отдаёт их в MQTT, например), так и собственно обработку этих данных с последующей передачей их в системы более высокого уровня.
Фактически, на таких компонентах вполне можно построить беспроводную SCADA-систему какого-нибудь объекта — от офисного здания до заводской площадки (особенный интерес в промышленности беспроводные SCADA вызывают применительно к открытым площадкам: если в здании ещё можно худо-бедно проложить слаботочку и гонять по ней старый добрый RS-485 + Modbus, то в каком-нибудь карьере это просто невозможно, а на какой-нибудь крупной подстанции или станции водоочистки — хоть и возможно, но совершенно негуманно по деньгам).
Участники
За тем, как используемые технологии влияют на содержание хакатона, было интересно смотреть уже на примере списка участников: к началу мероприятия в нём чётко сформировались три основные категории.
Первая — классическая: команды, в том числе и студенческие, у которых есть свой проект, и они хотели бы попробовать в рамках хакатона его развить. Впрочем, и здесь список доступного оборудования и ПО уже оказал влияние: некоторые из команд прямо попросили принести им те или иные модули, например, GPS или акселерометр.
Вторая — профессиональные разработчики, которым было интересно размять руки, а заодно поупражняться с новыми для них вещами, будь то работа с MQTT и «беспроводкой» или же с Tarantool.
Третья — команды из бизнеса, не обязательно как-то связанного с IT, но интересующегося теми технологиями, которые мы давали участникам хакатона. Например, была команда из успешного агрохозяйства, занимающегося круглогодичным выращиванием зелени. По их собственному признанию, их интересовал не столько сам процесс создания чего-то за два дня, сколько само по себе личное знакомство с современными технологиями. Круглогодичное агрохозяйство в наших широтах — дело хлопотное, требующее непрерывного контроля климата, полива и освещения (для меня, например, стало новостью, что у некоторых растений есть суточные циклы, и светить на них одними и теми же люменами 24 часа в сутки — не лучший способ их выращивать), и многие такие хозяйства сейчас присматриваются к технологиям беспроводного мониторинга и автоматического управления теплицами.
В целом получилась интересная смесь: команды из первой группы продвинули свои проекты, команды из второй показали первым, как надо работать профессионально и целенаправленно, а с третьей было о чём пообщаться и нам, и некоторым из инвесторов — им тоже интересно, какие технологии интересны с точки зрения потенциальных заказчиков.
Гости
На первый хакатон мы не приглашали целенаправленно представителей индустрии, хотя в результате пришли и они, и не только в составе команд.
В дальнейшем нам крайне интересно развивать сотрудничество с потенциальными заказчиками того, что на хакатоне могут сделать различные команды — вплоть до формата, при котором хакатон проводится под руководством одного крупного заказчика, который в качестве вводных данных предлагает командам свои бизнес-проблемы, требующие решения. Преимущества для заказчиков здесь очевидны, а для команд же это — прекрасный случай пообщаться с людьми, представляющими реальный бизнес и знающими о его реальных проблемах, причём не только тех, которые команда собралась решать, но и тех, которые на пути этого решения возникнут.
На самом деле, такой информации часто не хватает даже вполне оформившимся (но ещё не вышедшим на большой рынок) стартапам. Даже при хорошо проработанной технологической основе они часто не осознают, какой объём экономических, юридических и политических проблем их может ожидать впереди. И для нас было бы крайне интересно дать им фидбек от бизнеса, причём фидбек настоящий, иногда даже злой, а не формальное «молодцы, отличный проект, трудитесь дальше».
Здесь, конечно, существует опасный разрыв между реальностью бизнеса и реальностью хакатона: первый ожидает увидеть законченное решение в красивой коробочке и с поставкой 10 рабочих дней с момента оплаты, второй же показывает сделанную за два дня и одну ночь конструкцию из проводков и костылей, от которой постоянно что-то отваливается. Но как показывает практика, если подходить к делу с умом — и бизнес можно научить понимать, чем заняты стартапы.
Если говорить про инвесторов, то, конечно, с одной стороны, проекты хакатона — не венчурный материал, разве что какой-нибудь случайно забредший ангел возьмёт под крыло. С другой — инвесторы интересуются положением вещей в самой по себе отрасли, им бывает интересно посмотреть и послушать, о чём в принципе думают начинающие команды, а иногда и проследить за их судьбой.
Например, наш хакатон, хоть и проходил в нерабочее время — финал был вечером воскресенья — посетили представители CommIT Capital, ФРИИ, Сколково и другие. Беседовали со многими, контакты некоторых команд попросили им передать.
Жюри и судейство
Каждая команда по итогам двухдневной работы делала 6-минутный доклад о своей разработке — и после двух часов докладов (два десятка команд плюс перерывы на кофе, чтобы все желающие успели с только что доложившейся командой пообщаться подробнее) жюри удалилось на совещание.
Жюри мы собрали из представителей всех трёх организаторов — и сразу отказались от системы простого подсчёта баллов, когда каждый член жюри что-то ставит каждой команде, а потом оценки суммируются. Основным возражением против такой системы было то, что один член жюри будет ставить за артистизм, другой за технику — и получится средняя температура по больнице.
Подтвердилось это полностью: с первой же минуты обсуждения проектов жюри разделилось на три части. У представителей Mail.Ru Group перевешивала техническая сторона реализации проекта, у представителей Intel — коммерческая, ну, а мы были где-то посередине, хотя и со склонностью к коммерческой стороне. В результате вместо формального сухого голосования вышла оживлённая дискуссия: если отсеять однозначных аутсайдеров получилось единогласно, то лидеры, а уж тем более распределение мест между ними менялись в ходе обсуждения несколько раз.
Что мы учитывали:
- Работа на хакатоне. Так как примерно половина членов жюри в течение хакатона занималась непрерывным консультированием команд по техническим вопросам, а некоторые даже не уезжали из офиса на ночь, то мы хорошо знали, какая команда сколько времени и чем занималась, а также какую часть из этого сделала самостоятельно.
- Использование предложенных технологий. Как минимум Tarantool надо было использовать обязательно.
- Коммерческая составляющая. Насколько проект (или хотя бы его идея) интересны с точки зрения воплощения в реальности.
- Качество презентации. Разумеется, профессионального выступления не требовалось, на технические проблемы с демонстрацией проектов (а они были примерно у всех, кто пробовал продемонстрировать что-то в работе) также внимания не обращали — но, как минимум, надо было объяснить, в чём проект заключается и почему он нужен в этом мире так, чтобы все члены жюри это поняли.
Собственно, о поиске баланса между первым и третьим пунктом и шла основная дискуссия. С одной стороны, хакатон — это конкурс по написанию кода; с другой, мы, во-первых, устраиваем нечто большее, чем обычный хакатон, а во-вторых, среди участников есть профессиональные команды — и при учёте только написанного кода можно сразу все призы отдать им.
Кроме того (и в этом отличие от механизированной системы суммирования баллов), выбить команду из числа финалистов мог провал по любому из пунктов. Например, даже самой красивой презентацией невозможно было спасти команду, не использовавшую Tarantool или, например, потратившую львиную долю времени на обсуждение бизнес-моделей вместо написания кода.
Победители
Первое место — проект «Агрогенез»: система мониторинга для сельского хозяйства (нет, не та, о которой речь была выше, та называлась «ГудФарм» — IoT в с/х вообще становится очень популярен). Команда, быстро попавшая в список победителей и расколовшая жюри надвое при попытках договориться о её месте в нём: с одной стороны, видно сложившуюся команду и проект, над которым она работала до хакатона и явно продолжит после, с другой — на хакатоне было сделано не очень много, и часто требовалась помощь разработчиков с нашей стороны.
Второе место — команда «Cool-IoT» с проектом беспроводных датчиков для спортзала: тренажёры (вплоть до гантелей) оснащаются акселерометрами и другими датчиками, позволяющими собирать статистику о количестве подходов, поднятом весе и т.п. Подобными системами оснащаются современные тренажёры, однако они весьма недёшевы, и многим спортцентрам просто не по карману. Команда за два дня сделала прототип гантели с акселерометром (за отсутствием чугуния — в виде пластмассовой коробки), который действительно сбрасывал данные по количеству подъёмов этой гантели по 6LoWPAN в Tarantool, а последний даже отображал их в веб-интерфейсе. Немного подвела команду презентация: было мало сказано про возможные детали реализации и коммерциализации, а потому у части членов жюри возникли сомнения, что такой проект технически и коммерчески возможен.
Синяя коробочка — гантель, хотя так и не очень похожа
Третье место — проект «ColorControl», умная лампа, цвет освещения которой меняется в зависимости от произносимых рядом слов: скажете «глубокий океан» — лампа плавно сменит цвет на синий, скажете «пустыня Сахара» — на жёлтый. Проект не использовал сеть 6LoWPAN: речь обрабатывалась на Intel Edison с распознаванием через Google API. У команды была отличная презентация с рассказом о том, какую атмосферу способна создать такая лампа, например, при чтении сказки детям на ночь, но немного подвело использование исключительно сторонних облачных сервисов для основной обработки данных и непонятные перспективы коммерциализации: такая лампа интересна как отдельный продукт, но вряд ли вокруг неё получится построить бизнес.
В общем, как вы видите, выбрать победителей было действительно трудно. Даже сейчас, когда я пишу описания проектов, начинают закрадываться мысли, что ведь и другое распределение мест можно было тоже убедительно обосновать. В целом, была бы наша воля, я думаю, всё жюри согласилось бы просто дать 5–7 лучшим проектам по первому месту каждому.
Опыт, сын ошибок трудных
Основной вывод из хакатона: в следующий раз требуется ещё больше подготовки с нашей стороны. Фактически, команды получили в своё распоряжение две аппаратные и три программные платформы, которые стыкуются друг с другом и ни с одной из которых у многих не было опыта. Поэтому часто было даже трудно с первого подхода понять, в какой именно части всей системы вылезает проблема: в 6LoWPAN-модулях, в нашем ПО на Edison, в Yocto Linux, в Tarantool или в том, как со всем этим работает написанный ночью с субботы на воскресенье код. На практике встречались все варианты, а также их комбинации.
До самой презентации для организаторов было загадкой, что это такое и куда оно едет. Оказалось — ищет утечки вредных газов
Но, впрочем, такой опыт был полезен и для нас: стало понятнее, какие вопросы (и не только технические) чаще задают неопытные пользователи, чего они ожидают и какую ещё документацию и примеры надо подготовить на следующий раз.
Если говорить тезисно:
- будем стараться больше популяризировать возможности Tarantool и Lua — участникам хакатона были интересны в первую очередь конкретные примеры проектов и возможностей;
- будем больше внимания уделять документации класса Getting started — и для железа, и для ПО;
- следующую версию набора Unwired Kit сделаем полностью plug’n'play — сейчас у радиомодулей прошивки не универсальны, их надо иногда менять в зависимости от подключённых плат расширения.
Но это — технические моменты. Если же говорить в целом, то и нам, и участникам понравилось, и мы надеемся в дальнейшем развивать тему таких мероприятий, постепенно стирая грань между хакатонами, конкурсами стартапов и просто тематической площадкой для обсуждения развития и потребностей в IoT.
Что дальше?
Мы надеемся, что этот хакатон по Industrial IoT (да, у нас не было ни одного умного дома или браслета-шагомера, зато было сразу несколько команд с проектами в сельском хозяйстве!) — первый, но отнюдь не последний. Мы заинтересованы в популяризации IoT, в демонстрации современной элементной, сетевой и программной базы — для всех, кто в этом заинтересован так же, как и мы.
Но нам не очень интересно проводить хакатон ради хакатона, поэтому мы ищем партнёров среди бизнеса. Если вашей компании интересно стать организатором такого хакатона — для продвижения своих продуктов, для решения своих проблем или с какими-либо другими благими целями — мы готовы с удовольствием обсудить возможное партнёрство.
Обращайтесь.