Присоединяйтесь

8 Articulos

Максим Вольнов

|

Что должны знать IoT разработчики

Вместе с ростом Интернета вещей, растет и потребность в программистах. В последнем отчете VisionMobile говорится о том, что до 2020 года потребность рынка труда составит 4.5 миллиона IoT разработчиков. Это говорит о том, какие возможности откроются для них в ближайшие годы.

Традиционно, разработчики занимаются или софтом или железом, но IoT потребует знаний во обоих областях. Сейчас таких экспертов немного. Но со временем, знание того, чем занимаются твои коллеги в соседней комнате, будет давать существенное преимущество. Давайте рассмотрим основные проблемы с которыми сталкиваются IoT разработчики.

Навыки для работы с железом

Интернет вещей имеет настолько широкое применение, что разработчик может выбрать язык программирования по своему вкусу. Низкоуровневое программирование на ассемблер или C/C++ понадобится для встраиваемых систем. Языки высокого уровня, такие как Node.js или Java понадобится для устройств с большим количеством ресурсов. А знание протоколов передачи данных будет иметь особое значение, потому что IoT устройство станет бесполезной железкой, если не сможет передавать данные.

Но какие навыки понадобятся именно для работы с железом? Вероятно будет достаточно базовых знаний, вряд ли вам придется проектировать печатные платы, но вы точно должны иметь базовое понимание электроники и построения электронных схем. Как ведут себя компоненты на схеме - резисторы, конденсаторы, транзисторы и тд.

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

Навыки для работы с софтом

Если вы работаете с железом, то в ваши задачи входит дизайн новой версии печатной платы устройства. Вы выбираете и интегрируете микропроцессоры и датчики. И какие софтварные навыки вам понадобятся для работы с железом? Опять же, это будет что-то базовое. Вашей цель - не написать пол миллиона строк кода, а в том, чтобы получить навыки прототипирования программного продукта, в итоге вы должны оценить требования второй половины вашей команды.

Языки высокого уровня такие как Node.js и Java будут отличным стартом для новичков в программировании. Они имеют низкий порог входа и как бонус имеют полезные возможности, например автоматическое освобождения памяти. Хотя, если вы хотите сразу ощутить все прелести и влезть в шкуру ваших товарищей, то погрузитесь в C/C++ и управляйте памятью вручную. Также важно уметь разбираться в SoC справочнике и понимать как датчики взаимодействуют с ЦАП.

Где всему этому научится

В интернете полно информации, но наша редакция рекомендует следующие источники:

Embedded - собрана информация о выборе правильного протокола и разработке сетей передачи данных для встраиваемых устройств.

ARM Connected Community - великолепный источник новостей из мира разработки Интернета вещей.

EE Times - хорошая подборка ресурсов, новостей и мнений.

Adafruit IoT Tags - собранны ссылки на посление тренды в области IoT.

Web of Things - мощный ресурс продвигаемый сообществом разработчиков, инженеров и дизайнеров.

Intel IoT Roadshow Санкт-Петербург

Спустя полгода после московского хакатона Intel IoT Roadshow едет в Санкт-Петербург! 27 июня мы ждем всех IoT энтузиастов в коворкинге Demola. В течение двух дней у вас будет возможность попрактиковаться в разработке прототипа на базе Intel Edison.

Самые продуманные, креативные проекты без внимания не останутся – вас ждут денежные призы от Intel, а также поддержка со стороны промышленного акселератора Сталь и венчурного фонда iDealMachine.

Стандарты Интернета вещей

Согласно последним отчетам в 2014 году в сеть уже было подключено порядка 1.2 миллиарда устройств, от медицинских сенсоров до термостатов. Количество их будете неуклонно расти, вплоть до 80 миллиардов уже к 2020 году. Примерно по десять устройств в каждом доме.

Но самый жаркие дискуссии ведутся не о темпе с которым Интернет вещей входит в нашу повседневную жизнь, а о промышленных войнах, ведущихся между консорциумами и союзами, созданными для формирования новых стандартов взаимодействия между устройствами.

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

The AllSeen Alliance - первая группа разработки стандартов для Интернета вещей. Была основана некоммерческой организацией Linux Foundation. На данный момент в нее входят больше 50-ти организаций, включай таких тяжеловесов как Microsoft, Qualcomm, LG, Sharp и Panasonic. AllSeen ищет способ создать универсальные фреймворки для приложений. Для передачи данных используются такие технологии как WiFi, Ethernet, Powerline, Bluetooth, 6LoWPAN, ZigBee и Z-Wave. Особый упор сделан на совместимость устройств от разных производителей, в качестве платформы будут использованы популярные операционные системы Android, iOS, Linux, OpenWRT, Windows и OS X.

AllSeen использует систему AllJoyn, с помощью которой устройства могут делиться своими возможностями друг с другом. Например, умная лампочка даст знать датчику движения, что в комнате может светить. Для обеспечения должного уровня защиты и конфиденциальности AllJoyn шифрует данные передаваемые между устройствами.

The Open Interconnect Consortium (OIC) - поддерживается Intel, Atmel, Broadcom, Dell. Главной задачей видят разработку общих требований для совместимости умных устройств. На базе этих требований уже создан фреймворк с открытым исходным кодом, получивший название IoTivity. Компании входящие в консорциум особое внимание уделяют безопасности, но пока не понятно какими средствами они добьются должного ее уровня.

Цель OIC не в том, чтобы предложить очередную версию стандартов, а сделать свою реализацию эталонной.

The Thread Group - сформирована подразделением Google Nest Labs. Включает больше восьмидесяти участников Samsung, ARM Holdings, Silicon Labs и другие. Цель этой группы всячески поощрять производителей устройств для умных домов за использование их стандартов связи по сети. В отличии от других альянсов Thread сделали ставку на радио протокол с низким уровнем потребления энергии 6LoWPAN.

HomeKit - поддерживается Apple и дает возможность производителям устройств ставить лейбл "Совместимо с iPhone". HomeKit предоставляет набор инструментов для разработчиков для создания приложений для умного дома. Устройства работающие с помощью HomeKit передают данные в зашифрованном виде.

Industrial Internet Consortium - основан Intel, Cisco, AT&T, GE и IBM. Включает более 150 участников, которые занимаются совместной разработкой стандартов связи между устройствами. ICC заключило стратегическое соглашение с OIC о широком распространении информации касающейся стандартов совместимости устройств.

Определение стандартов безопасности и конфиденциальности IIC возложило на компанию CyberX и софтварного гиганта SAP.

Пока неясно стандарты какого альянса выиграют в гонке. И уж точно это случится не в этом году. По оптимистичным прогнозам только в 2017 года станет ясно чьи разработки станут стандартом де-факто для большинства производителей.

Google представил Brillo OS

Google продолжает движение в мир Интернета вещей. На днях была представлена новая операционная система Brillo и протокол взаимодействия между умными устройствами Weave.

Brillo разработана для устройств со слабыми процессорами и небольшим объемом памяти. В первую очередь предназначена для управления и сохранения потоков информации приходящих с датчиков подключенных к устройству.

Операционная система может быть интегрирована с технологией Nest. А умные термодатчики Nest работают с устройствами от таких компаний как LG, Whirlpool, Logitech, Pebble.

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

Google сделало все чтобы Android работал на всех смартфонах и планшетах какие возможны. Теперь он хочет поставить свою новую операционную систему и на миллионы умных устройств.

Brillo будет доступен для разработчиков со второй половины лета, а Weave только с осени.

"Интернет вещей" держит обещания, но что с конфиденциальностью?

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

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

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

Повсеместные вычисления

Ваши напольные весы вероятно еще не узнают вас, когда вы наступаете на них, но смогут это в будущем. Они не только смогут узнать вас, но и синхронизируют ваш вес со смартфоном, персональным компьютером и данными хранящимися в облаке.

Это один из примеров, как Интернет Вещей будет работать в повседневной жизни. На самом простом уровне, Интеренет Вещей включает в себя все объекты с микрочипом и возможностью связи, объясняет Мартин Шпиндлер, консультант по стратегии в Берлине.

Используюя радиочастотный идентификатор (RFID), каждый реальный объект в аналоговом мире имеет свой уникальный номер, как IP-адрес.

Роб ван Краненбург, который основал европейский аналитический центр под названием Совет Инернета Вещей, заявил, что концепция впервые появилась в конце 1990-х годов под термином "повсеместные вычисления".

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

Распростанение смартфонов было еще одним фактором в становлении Интернета Вещей, как части реальности, рассказывает Шпиндлер. В 2008 году количество объектов подключенных к сети Интернет - включая смартфоны - превысило количество людей на Земле, по словам компании Cisco.

"Но "умные телефоны" были только началом. Следующим шагом являются "умные вещи", говорит Шпиндлер, который также является сотрудником аналитического центра.

Умные устройства

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

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

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

Безопасность данных

Европейская конференция Интернета Вещей, запланирована на июль этого года в Италии, международная же на эту тему пройдет в Китае, в октябре. Между ними, первая Интернациональная Конференция по Безопасности Интернета Вещей готовится в штате Керала, Индия в августе.

Подключение цифровых устройств Интернета Вещей к внешнему миру, несет "потенциальную возможность для плохих людей делать плохие вещи", говорит Росс Андерсон, профессор компьютерной безопасности в Кембриджском универститете и сопредседатель конференции.

Например, хакеры получившие контроль над "умными" электросчетчиками, продолжает Андерсон, будут иметь возможность отключать энергию в целых регионах, что делает их уязвимыми.

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

Осуществление гарантий

В повестке дня, обеспокоенность защитой данных, пока еще наверху списка, сказал Райан Хит, представитель Еврокомиссии.

Из примерно 350 мнений, которые озвучивались спустя неделю после начала конференции, более 300 так или иначе затрагивали проблему защиты и конфиденциальности данных. "Люди говорят, нам нравятся удобство и открывающиеся возможности, но мы хотим гарантий безопасности", подчеркивает Хит.

Шпиндлер думает, обеспокоенность проблемой Евросоюзом это безусловно хорошо, но боится, что слишком сильные меры регулирования, могут перевернуть все вверх на голову. "Это может перечеркнуть все то, что стоит в основе Интернета, его открытость", говорит Шпинглер.

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

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

Ван Краненбург в свою очередь обеспокоен тем, что нормативная работа идет довольно медленно, консультации же необходимы как и открытая дискуссия, отсутствующая в Китае и Соединенных Штатах.

Эффект Большого Брата?

В США, в Палате представителей, недавно был рассмотрен законопроект, требующий обязательной установки "черного ящика" - устройства слежения во все транспортные средства в 2015 году. Ожидается, что он будет утвержден сенатом, в результате чего автомобили будут взаимодействовать между собой и неподвижными объектами, к примеру столбами дорожного освещения, добавив, таким образом мобильных граждан в мир Интернет Вещей.

Данные могут быть получены в судебном порядке и некоторые весьма обеспокоены возросшей способностью правительств контролировать собственных граждан. Сценарий "Большой Брат", вызывает "законную озабоченность", по выражению Андерсона.

Шпинглер, который с ним согласен, считает, что лучшим средством будет юридически ограничить то, что государственные или коммерческие структуры, могут сделать с этой информацией.

"Это также присутствует в повестке дня", - отметил Хит. "Нам совсем не нужен "Большой Брат" в обществе", добавил он.

Хит указал на добровольные меры по подключению к eCall среди стран членов Евросоюза. С eCall, любой автомобиль, попавший в аварию, автоматически отправляет данные в службы экстренного реагирования, что позволяет быстрее оказать необходимую помощь. Дорожные службы также будут оповещены и сделают соответствующие корректировки.

Хит отмечает, что хороший баланс между раскрытием и защитой данных, состоит в том, когда ограничения на отправку четко определены. Андерсон сказал, что защита прав потребителей, должна быть переосмыслена, в то время когда устройства становятся умными. Он считает, что конечные пользователи должны получить больше прав в делах связанных с ответственностью сторон, чем, к примеру, компании разработчики программного обеспечения.

"Раскроется всё"

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

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

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

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

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

Beam

Один из последних обсуждаемых проектов на Kickstarter - Beam. Этот портативный проектор можно вкрутить в настрольную лампу и управлять им с помощью смартфона или планшета.

Beam может превратить любую поверхность в экран. Это устройство из эры Интернета вещей и его возможности ограничиваются не только просмотром сериалов. Он может превратить поверхность стола в настольную игру, стены в арт-инсталяцию, а потолок в спальне в ленту из твитера.

Beam - экран на стене

Разработчики обещают выпустить устройство к октябрю 2015. Стоймость по предзаказу $429.

Ubuntu встречает Интернет вещей с Acer, GE и Microsoft

Старые враги заключают союзы перед началом новой технологической эпохи - Интернет вещей. Canonical, компания создавшая самый популярный линукс дистрибутив Ubuntu Linux, начала сотрудничество с такими гигантами индустрии как Acer, DataArt, GE и Microsoft.

Canonical и Microsoft уже работали вместе над портированием Juju (инструмент для администрирования в облаке) в Windows и встраивания самого Windows в OpenStack. Теперь они вместе сотрудничают DataArt над созданием промышленного решения для контролю за состоянием оборудования. Это решение включает в себя все основные направления развития IT - Интернет вещей, облачные вычисление, BigData, машинное обучение, платформа Docker.
Чтобы совместить все это они будут использоваться Ubuntu Snappy, DeviceHive и Juju Charms. Microsoft будет использовать платформу Azure для хранения и обработки полученных с устройств данных.

"Чем устройства становятся умнее и меньше, а стоимость их падает, тем больше удивительных предложений появляется на рынке Интернета вещей", говорит технический директор Microsoft Анко Дайзер (Anko Duizer). "Современные промышленные системы могут принимать поток информации с миллионов устройств, чтобы сделать на базе неё выводы о рабочем процессе и состоянии оборудования. Использоваться для этого будет специально созданная система вертикальной экспертизы данных на базе DeviceHive от DataArt, которая может быть интегрирована с облаком Azure от Microsoft."

Snappy Ubuntu, самая маленькая и в тоже время самая защищенная версия Ubuntu. Её разработали не только для облачных или контейнерных решений, как CoreOS или Linux Atomic Host от Red Hat, но и для управления устройствами, такими как роботы, дроны, сетевые коммутаторы, мобильные станции и многое другое.

"Snappy это великолепная платформа для нового поколения разработчиков специализирующихся на облачных решениях или программирующих устройства для Интернета вещей", отмечает вице президент компании Canonical Мартин Ектор (Maarten Ectors). "Комбинация открытой платформы и хранилища приложений, работающего с широким спектром устройств, от мелких плат до сложных мобильных устройств, будет стимулировать разработчиков и предпринимателей на создание новых решений. Следующим шагом будет показать насколько разработки для Интернета вещей могут быть коммерчески выгодными".

Первая стабильная версия Snappy Ubuntu уже доступна для скачивания как часть дистрибутива Ubuntu 15.04. Этот релиз поддерживает 64-битную Intel и ARM архитектуру.

Протокол MQTT

MQTT (Message Queue Telemetry Transport) - лёгкий сетевой протокол работающий поверх TCP/IP. Используется для обмена сообщения между устройствами по принципу издатель-подписчик (publish–subscribe).

История создания

Первая версия протокола была разработан доктором Энди Станфорд-Кларком (IBM) и Арлен Ниппер (Arcom) в 1999 и опубликована под роялти-фри лицензией. Спецификация MQTT 3.1.1 была стандартизирована консорциумом OASIS в 2014 году.

Возможности

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

  • Прост в использования. Протокол представляет собой программный блок без лишней функциональности, который может быть легко встроен в любую сложную систему;
  • Паттерн проектирования издатель-подписчик удобен для большинства решений с датчиками. Дает возможность устройствам выходить на связь и публиковать сообщения, которые не были бы заранее известны или предопределены;
  • Легок в администрировании;
  • Снижена нагрузку на канал связи. Сообщения, насколько это возможно, несут в себе только полезную нагрузку;
  • Работа в условиях постоянной потери связи или других проблем на линии;
  • Нет ограничений на формат передаваемого контента.

Реализация

Брокер

Mosquitto - платформа, реализующая возможность обмена сообщениями между компонентами системы на базе стандартов протокола MQTT версии 3.1 и 3.1.1
Mosquitto написан на C и распространяется под лицензией BSD.

Устанавливаем и запускаем

$ apt-get install mosquitto
$ mosquitto

Брокеры могут быть сконфигурированы мостом. Например брокер A может перенаправлять сообщения, пришедшие на определенный канал, брокеру B. Таким образом вы можете масштабировать ваше решение.

Соединение мостом

Издатель-подписчик

Paho - реализации протокола обмена сообщений MQTT на популярных языках программирования.

  • C/C++ (Windows/Unix/Mac/embedded systems)
  • Java (J2SE Client/Android Service)
  • JavaScript Client
  • Python Client
  • Go Client
  • C# (.Net/WinRT Client)

Примеры на Python

Устанавливаем библиотеку из репозиториев pip. И запускаем брокер mosquitto на локальном хосте.

$ pip install paho-mqtt

Подписчик (Subscriber)

Этот компонент является подписчиком. Подключается к брокеру по умолчанию на порт 1883 и слушает канал (topic) в ожидании новых сообщений.

from paho.mqtt import client


def on_connect(client, userdata, rc):  
    print("Connected with result code: %s" % rc)
    client.subscribe("mqtt/paho/test")

def on_message(client, userdata, msg):  
    print("%s: %s" % (msg.topic, msg.payload))

def main():  
    subscriber = client.Client()
    subscriber.on_connect = on_connect
    subscriber.on_message = on_message

    subscriber.connect("localhost")
    subscriber.loop_forever()

if __name__ == "__main__":  
    main()

Издатель (Publisher)

Назначение этого компонента публиковать сообщения. Сообщения можно передавать списком.

from paho.mqtt import publish


def main():  
    msgs = [{'topic': "mqtt/paho/test", 'payload': "hello"},
            {'topic': "mqtt/paho/test", 'payload': "world"}]
    publish.multiple(msgs, hostname="localhost")

if __name__ == "__main__":  
    main()

Примеры использования

Наиболее известные примеры использования: