🤖 Что такое IoT-разработка и с чем ее едят?
Каждый год армия Скайнета пополняется умными устройствами и системами обработки данных. Попробуем разобраться в иерархии вероятного противника и решить на чью сторону встать: биологического вида или физического воплощения набора нулей и единиц.
Что такое Интернет вещей?
Интернет вещей (англ. internet of things, IoT) – сеть физических устройств, в которые встроены датчики, софт и другие технологии для сбора, обработки и обмена информацией с другими умными устройствами и IoT-платформами. Умная колонка расскажет о погоде и поставит подходящую музыку; смарт-холодильник отследит когда заканчивается срок годности продуктов; беспилотный автомобиль отвезет на работу. От пользователя требуется провести начальную настройку устройства и оформить свой запрос – остальное сделают за него.
Статистика
Где используют IoT?
Промышленные предприятия, транспорт и энергетика возглавляют список отраслей, активно использующих IoT.
Заводы
На заводах IoT-решения мониторят производственные цеха, автоматизируют контроль качества выпускаемой продукции, управляют другими контроллерами. Например, компания «Северсталь» инвестировала в развитие роботизированных платформ, которые сократят цикл разработки композитных изделий и снизят стоимость их производства.
Транспорт и городская инфраструктура
Когда полностью автоматизированные и беспилотные автомобили начнут массово появляться на дорогах – вопрос десяти-пятнадцати лет. Тренд на умные машины задала Tesla, но лидеры автопрома (Volkswagen, Audi, BMW, Volvo, Nissan, Toyota, BMW), техногиганты (Google, Apple, Яндекс) также разрабатывают беспилотный наземный транспорт и сопутствующие технологии.
Энергетика
Мир постепенно избавляется от углеродной зависимости и переходит на возобновляемые источники энергии: солнечный свет, ветер, геотермальные электростанции. Для хранения избыточной энергии в дома устанавливают аккумуляторы (Tesla Powerwall и другие). Владелец батареи может тратить энергию на себя и продавать ее другим потребителям. Такая децентрализованная система повышает надежность всей энергетической системы: в случае форс-мажоров – природных бедствий, выхода из строя электростанций – можно распределить энергию между потребителями. Для идентификации потребителей, мониторинга и эффективного управления запасами энергии применяют умные устройства.
На чем собирают любительские IoT-устройства?
Arduino
Язык программирования: C/С++Сайт: arduino.cc
Цена: полноценная копия на Алиэкспресс стоит около 350 руб.
Arduino – платформа для создания прототипов и простых устройств в области электроники, робототехники и автоматизации процессов. С помощью десятков датчиков, реле, модулей беспроводной связи, аудиомодулей, моторов, дисплеев – возможности практически безграничны. Можно создавать умные дома, роботов и автоматизировать рутинные действия.
На сайте create.arduino.cc/projecthub представлены 1500 работ энтузиастов. Ниже перечислены интересные из них.
Коммуникатор с растением
Сложность: 3/5
Растения требуют ухода, но на это нужно выделять время, которого обычно не хватает. Как вариант – всегда держать растение при себе, но вы же не возьмете кактус на вечеринку, если только это не встреча кактусистов. Во время длительной командировки может возникнуть навязчивая мысль: а как там мой аспарагус? Разработчик под ником Arduino_Genuino собрал из Ардуино и датчиков влажности, температуры и освещенности устройство, которое в режиме 24/7 мониторит состояние растения и отправляет электронное письмо, если почва высыхает.
Что используется:
- датчик влажности, температуры и фототранзистор.
Окей, почва высыхает Но я за тысячи километров от моего растения. Что делать?
Есть два варианта:
- Пустить дело на самотек и дать почве засохнуть, а растению погибнуть.
- Действовать как инженер и продумать все заранее: собрать автоматизированную помпу.
Система автоматической компенсации потерь воды
Сложность: 3/5
Разработчик под ником Atlas Scientific придумал систему, которая сохраняет уровень воды в аквариуме. Да, аквариум – не горшок с аспарагусом, но код потребует минимального вмешательства: заменить значение уровня воды на значение влажности.
Что используется:
- помпа с контроллером;
- пластмассовые трубки;
- блок питания на 12 В.
Идентификатор ISBN на дисплее Nokia 5110
Сложность: 4/5
Если вы пишите код днями напролет и читаете только документацию библиотек, то, напомним, ISBN – это международный номер книги, по которому ее можно идентифицировать. Энтузиаст Kutluhan Aktar – библиофил и перед очередным заказом ему нужно знать, есть ли эта книга в его библиотеке. Пользователь набирает на клавиатуре номер ISBN и получает результат на дисплее от Nokia 5110. Ссылка на проект.
Что используется:
- Arduino Nano 33 IoT;
- клавиатура 4x4;
- дисплей Nokia 5510;
- резисторы 1 кОм.
Погодная станция с интернет-хранилищем данных
Сложность: 5/5
За три месяца пользователь randtekk собрал из датчиков и палок метеорологическую станцию.
«Этот проект стал моей давней мечтой – построить собственную метеорологическую станцию. Теперь она стала довольно сложной системой с тремя отдельными микроконтроллерами, которые обмениваются данными и отправляют их в интернет», – говорит randtekk.
Что используется:
- Arduino Mega 2560 – продвинутая версия Arduino с большим количеством портов и памяти (продается на Алиэкспресс от 800 руб.);
- Arduino Nano R3 и NodeMCU ESP8266;
- датчики атмосферного давления и температуры.
Raspberry Pi
Язык программирования: C, С++, Java, JavaScript, Python, Go и другие
Цена: от 4500 до 8000 рублей на Алиэкспресс
Сайт: raspberrypi.org
Raspberry Pi (от англ. raspberry, малина) – миникомпьютер размером чуть больше банковской карточки, работающий на уровне слабого десктопа. Четвертая версия Малины идет с 2, 4 или 8 Гб оперативной памяти, четырехъядерным процессором Cortex-A72, Wi-Fi, Bluetooth, Gigabit Ethernet и портами USB 3. В качестве ОС используется Raspbian – модифицированная Ubuntu. Получаем комфортную работу в привычной для программиста среде.
Что делают на Raspberry Pi?
На Малине делают если не все, то очень многое: от собственного хостинга паролей Bitwarden, системы аутентификации через RFID-метки до системы контроля дефектов солнечных панелей с помощью дрона и тепловизора.
Замóк
Сложность: 3/5
Замок управляется через страничку на веб-сервере на базе Raspberry Pi. Веб-страничка имеет две кнопки: открыть и закрыть замок. Отправлять команды можно из любой точки мира.
Что используется:
- Raspberry Pi 4;
- замок;
- реле.
Дрон-скринер дефектов солнечных панелей
Сложность: 5/5
Если солнечные панели находятся в десятках километров от пункта управления, то мониторинг всех панелей может занять несколько дней. Чтобы быстро проверить панели на дефекты разработчики навесили на дрон Raspberry Pi и тепловизор.
Nvidia Jetson Nano
Язык программирования: C, С++, JavaScript, Python, Go и другие
Сайт: nvidia.com
Цена: от 5500 до 9500 руб. на Алиэкспресс
Основное различие между миникомпьютерами Raspberry Pi и Jetson Nano – в наличии графического процессора с CUDA-ядрами у последнего, которые запускают нейронные сети с меньшими тормозами по сравнению с центральным процессором (ЦП). У Малины нет отдельного графического процессора, поэтому для тех же задач используется медленный ЦП.
Технические характеристики:
- ГП: 128-core NVIDIA Maxwell
- ЦП: Quad-core ARM® A57
- 2/4 Гб LPDDR4
- Gigabit Ethernet
- отсутствуют встроенные Wi-Fi- и Bluetooth-модули
Jetson Nano работает на модифицированной Ubuntu, GPIO (контакты, к которым подключаются датчики) такие же, как у Малины, поэтому все, что можно сделать на Малине, воссоздается на Jetson Nano без лишних проблем.
Облачные платформы
Иерархия IoT состоит из трех компонент: маломощные контроллеры с датчиками и сенсорами; туманные вычисления (Fog cloud – вычисления на периферии) для быстрого выполнения несложных расчетов; облачные сервисы для ресурсоемких задач.
Популярные IoT-платформы:
- Microsoft Azure IoT
- Google Cloud IoT
- AWS IoT
- Cisco IoT
- IBM Watson IoT platform
Их функциональность примерно одинакова:
- объединение устройств в сеть;
- мониторинг устройств в режиме реального времени;
- сбор, обработка и аналитика данных;
- управление политиками безопасности;
- создание моделей машинного обучения.
Youtube-каналы и плейлисты
- Заметки Ардуинщика – разбор кода, обзоры датчиков и лайфхаки;
- arduinoLab – уроки по Ардуино для начинающих;
- 16 лучших Arduino проектов – проекты на Ардуино для вдохновения;
- Raspberry Pi, все о миникомпьютере – узнаете как установить ОС, подключить камеру, что такое GPIO и другие базовые понятия;
- Как правильно паять – обучение пайке.
Литература
- Мобильные роботы на базе Arduino – Михаил Момот;
- Arduino Uno и Raspberry Pi 3. От схемотехники к интернету вещей – Макаров Сергей;
- Raspberry Pi. Руководство по настройке и применению – Магда Ю. С.;
- Робототехника на Raspberry Pi для юных конструкторов и программистов – Мэтт Тиммонс-Браун (для детей);
- Энциклопедия электронных компонентов тома 1–3 – Янссон Платт.
Вывод
Интернет вещей – отрасль со стабильным ростом количества умных устройств и рабочих мест для людей-программистов. Если вам близка по духу идея технократического общества, в котором власть принадлежит техническим специалистам, сейчас самое время пойти учиться на инженера – IoT еще в зародыше и на его развитие можно повлиять.
Хочу научиться программировать с нуля, но не знаю, с чего начать. Что делать?
Можно учиться самостоятельно (долго) или пойти на курсы с преподавателями (быстро). Плюс нужно учитывать, что джунов много, конкуренция выше и работодатели повышают порог вхождения при найме на работу. Чтобы получить актуальные знания, мы в proglib.academy запустили курсы:
- Основы программирования на Python.
- Профессия Python-разработчик.
- Алгоритмы и структуры данных.
- Математика для Data Science.
- Профессия Data Science.
- Frontend Basic: принцип работы современного веба.
- Профессия Фронтенд-разработчик.
- Обработка естественного языка. Полный курс.
На подходе еще больше 10 курсов для взрослых и детей.