Разработка в IoT: взгляд изнутри

Разработка в IoT: взгляд изнутри

Как попасть в ряды профессиональных IoT-разработчиков? Как развивается индустрия в России, и где может найти свое место начинающий специалист? Сегодня у нас в гостях Кристина Голдинова, ведущий разработчик низкоуровневого ПО компании Rightech. Кристина поделилась своим опытом в IoT и советами для новичков.

Кристина Голдинова
ведущий разработчик низкоуровневого ПО компании Rightech

Привет! Я работаю в IoT уже более 4 лет. В эту сферу пришла после университета, где обучалась по направлению «Робототехнические системы и мехатроника». Во время учебы параллельно работала по специальности, занималась проектированием и сборкой плат для тестирования военного оборудования. Но с самого первого курса я понимала, что электроника мне не так интересна, как программирование. Ни одно из занятий в университете не бросало такой вызов, как эта дисциплина. Это был самый интересный и самый неподдающийся мне предмет. Поэтому я активно начала изучать язык С++, сначала самостоятельно по книгам, потом прошла небольшой курс, но, к сожалению, задачи на нем были не очень интересные, просто базовые для обучения. Когда после окончания университета стал вопрос о смене работы, я начала искать направление, связанное именно с программированием. По счастливой случайности узнала о компании Rightech, которая как раз набирала специалистов.

Все узнавала из интернета и на кухне в офисе, а теперь делюсь опытом на нашем курсе

Когда мне только предложили работу в IoT — Интернете вещей, я не представляла, что же это значит. Но в должности программиста я была готова работать над чем угодно, даже если на самом деле это оказался бы интернет-магазин (так я подумала сначала)! И я попала в команду, занимающуюся разработкой платформы Интернета вещей, которая позволяет подключить железки, знакомые мне еще с университета, но еще дает множество возможностей по их взаимодействию между собой. Особенно мне понравились сценарии автоматизации.

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

Изначально я занималась исключительно разработкой сервиса межпротокольного взаимодействия, который как раз и позволяет подключить к платформе любое устройство по его протоколу. В мои обязанности входило писать сериализаторы и десериализаторы данных — эдакие переводчики с нашего языка пакетов данных в формате JSON на язык бинарных пакетов устройства и обратно. Сейчас спектр задач расширяется: занимаюсь, в том числе и взаимодействием по пилотным проектам, готовлю и провожу демонстрации по платформе с разным оборудованием, создаю онлайн-курс по IoT-разработке в OTUS. В нашей программе мы делаем упор на полезную практику и реальные задачи, которыми занимается специалист в IoT-индустрии.

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

Мое сердце навсегда отдано самому первому проекту, который я делала, когда только устроилась в компанию, — это подключение СКУД (система контроля управления доступом) к платформе.

Задача стояла так: вот СКУД без выхода в Интернет, вот наша платформа, вот шкаф с железками и коллега Дима, которого ты можешь мучить любыми вопросами. Нужно, чтобы на платформе появлялись все данные о том, кто и когда пришел/ушел, потом на базе этих данных будут строиться отчеты. Тогда это казалось чем-то непосильным, но я никогда не боялась вызовов. Тем более, мне сразу сказали, что все реально.

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

Я до сих пор чувствую это волнение, когда подключаю какое-нибудь новое оборудование, а потом радость, когда вижу в удобном интерфейсе все данные, которые оно передает. А если можешь еще и по управлять устройством удаленно — это еще интереснее!

Главное — не превратить устройство в «кирпич»

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

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

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

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

Хочется заряжать окружающих идеями IoT-решений

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

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

Стандартизация сферы должна прийти к нам совсем скоро

Когда я только пришла и спросила: «А какие у вас проекты?..», мне ответили: «Каршеринг и … ну вот шеринг пауэрбанков намечается». Сейчас IoT в нашей компании — это не каршеринг от слова совсем. Разнообразные проекты и предложения приходят к нам буквально каждый день. Сфера развивается абсолютно во всех направлениях, насколько только у людей хватает фантазии. Когда человек улавливает всю фишку IoT, у него тут же возникает какая-нибудь идея от автоматического открытия форточки сервоприводом в зависимости от температуры до наблюдения за котом, с которым ты удаленно играешь с помощью робота-манипулятора.

Думаю, что через несколько лет IoT очень хорошо интегрируется в нашу повседневную жизнь и станет функцией по умолчанию и дома, и в кафе, и в офисе. Он будет так необходим и привычен, как сейчас Интернет. Почти уверена, что все придет к цельной стандартизации, потому что сейчас свой протокол пишет чуть ли не каждый производитель оборудования. Скорее всего, соберется ряд эталонных протоколов под разные нужды, которые и будут использоваться. Это очень упростит жизнь и нам, как разработчикам, встраивающим протоколы в платформу. Представьте, если каждый человек на планете начал бы придумывать свой язык, как бы мы смогли вообще о чем-то договориться?

В России IoT развивается активно, но своим уникальным путем

Развитие IoT-сферы в разных странах отличается. У нас много проектов и идей ограничивается доступностью конкретного железа. Поэтому отталкиваются именно от него, а уже потом всё обрастает функционалом IoT. За границей чаще возникают небольшие узконаправленные проекты, которые исходят не от оборудования, а от конкретной проблематики. Нередко такие решения появляются на Kickstarter и его аналогах. Стартапам проще решать небольшие задачи и уверенно занимать свою маленькую нишу. В нашей стране тоже появляется такая активность, но пока мы слегка отстаем.

Стоит отметить, что в России заметнее предрассудки насчет использования облака как с точки зрения безопасности, так и надежности. В Европе и Америке к облакам привыкли больше, поэтому там с небольшим проектом, построенным на облачном решении, проще взлететь.

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

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

Как сделать первые шаги в IoT-разработке?

Начать нужно с получения базовых знаний по электронике и сборке схем на уровне подключения и изучения принципов работы самых простых датчиков (температуры, влажности, движения) и актуаторов (сервоприводов, реле, тех же светодиодов). Очень удобно разбираться в этом, эмулируя устройства в Tinkercad.

Потом стоит опробовать несколько эмуляторов сложных устройств, подключить их к какому-то публичному брокеру или платформе Интернета вещей. Мне нравятся эмуляторы протоколов MQTT и Wialon IPS (MQTT как наиболее общий и Wialon IPS как наиболее частый в транспорте). Когда сформируется понимание как по части железа, так и по части протоколов и подключения к платформе, можно будет объединить эти сферы и вывести в Интернет свое устройство.

Способ определения профессионализма IoT-специалиста во многом зависит от области его работы. Если специалист видит свое дальнейшее будущее только в работе с конечными устройствами, то его ценность будет зависеть от его умения быстро адаптироваться к появлению новых технологий и протоколов передачи данных, умением писать ПО для данных устройств. Если сфёпециалист будет формировать комплексные решения на основе готовых устройств, облачных платформ, различных фреймворков и информационных систем, то тут уже ценится его архитектурное мышление, знания имеющихся в сфере IoT информационных систем, облаков и устройств, а также способов все это «подружить» между собой.

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

Приходите в OTUS на онлайн-курс «Разработчик IoT». Кристина и ее коллеги из Rigthtech вложили все свои знания и опыт в практическую программу, которая позволит вам попасть в профессиональную сферу Интернета вещей.

Советуем прочитать:

22
Начать дискуссию