Останнім часом дедалі більшої популярності набувають прилади інтернету речей (IoT).
Однією із головних галузей їхнього використання є автоматизація або віддалене керування певними процесами у житлових приміщеннях.
Найголовнішою особливістю пристроїв, які можна віднести до категорії IoT, є наявність у них доступу до глобальної мережі.
Це відкриває цілу низку можливостей з керування ними.
Для отримання доступу до мережі Інтернет у пристроях IoT зазвичай використовують з’єднання по протоколу Wi-Fi.
Причиною цього є наявність WiFi точки доступу майже у будь-якій оселі.
В той же час, використання Wi-Fi — з’єднання додає складностей при проєктуванні пристроїв.
Причиною цього є висока вартість мікропроцесорів, достатньо потужних для забезпечення Wi-Fi — з’єднання у порівнянні зі звичайними мікроконтролерами та їхнім високим енергоспоживанням.
Одним із популярних рішень для керування пристроями IoT є OpenWRT. OpenWRT — це операційна система (ОС), побудована на основі ядра Linux, що набула широкого розповсюдження у вбудованих системах із доступом до Інтернету, а особливо у мережевих пристроях (комутаторах, маршрутизаторах).
Вона включає стандартний для Linux — подібних до ОС набір програм util-linux, що дозволяє працювати із нею користувачу, який має досвід роботи з іншими Linux — дистрибутивами [1].
Головною перевагою OpenWRT перед звичайними дистрибутивами Linux для вбудованих систем є надзвичайно низькі вимоги до апаратури (швидкодія, об’єм пам’яті, обчислювальні ресурси тощо), на якій ОС може бути запущена.
Існують збірки OpenWRT під платформи із 4 МБ постійної flash — пам’яті та 32 МБ оперативної RAM.
Для функціонування із задовільною швидкодією достатньо процесора з частотою 360 МГц [2].
Вартість найдешевших одноплатних комп’ютерів, здатних запустити OpenWRT та на яких присутня апаратура для роботи із Wi-Fi починається з 7$ [3].
Це набагато нижче, ніж у одноплатних комп'ютерів, які розраховані на звичайні дистрибутиви Linux для вбудованих платформ.
Іншим можливим варіантом забезпечення доступу до мережі Wi-Fi є використання модулів, які працюють без операційної системи, наприклад, популярна серія систем на кристалі ESP8266 [4].
Їхньою перевагою є низька вартість [5].
Але, при цьому, розробка програмного забезпечення (ПЗ) для них можлива лише із застосуванням мов С, С++ та низькорівневого програмного інтерфейсу [6].
Програмісту доводиться працювати на рівні, близькому до апаратури, що збільшує вимоги до його кваліфікації та робить процес розробки набагато довшим і дорожчим.
Це знижує конкурентні переваги виробу.
При використанні одноплатного комп’ютера під керуванням OpenWRT розробнику стають доступні високорівневі мови програмування: Python, Javascript, Go, Lua, PHP, Ruby та інші [7].
Для цих мов доступні пакети програмних бібліотек, що дозволяють реалізовувати необхідний функціонал, певною мірою абстрагуючись від апаратури, на якій програма буде виконуватися.
У свою чергу, це дозволяє повторно використовувати вже розроблене ПЗ при зміні апаратної платформи, що значно зменшує вартість розробки пристроїв.
Також OpenWRT надає зручний інтерфейс для створення власних дистрибутивів — OpenWRT Buildroot.
Цей програмний засіб дозволяє за короткий час налаштувати ПЗ, що буде в образі ОС, який розробник отримає після компіляції.
Якщо необхідно створити образ ОС для декількох апаратних платформ — OpenWRT Buildroot автоматично завантажить та встановить набір ПЗ, специфічний для певної архітектури та скомпілює образ.
Це також знижує необхідну кваліфікацію інженера і вартість розробки продукту.
Під час роботи зі складними інтерфейсами передачі даних (Wi-Fi, USB, Bluetooth) багато зусиль витрачається на розуміння принципу їхньої роботи та налаштування доступного апаратного забезпечення.
Це займає багато часу та потребує високої кваліфікації програміста.
У випадку OpenWRT, розробник має доступ до вже наявних драйверів апаратури інтерфейсів передачі даних.
Він може використати програмний інтерфейс для швидкої реалізації необхідного функціоналу.
Більша потужність мікропроцесорів, здатних запускати OpenWRT, дозволяє обробляти великі масиви даних, що недоступно для простіших систем, типу ESP8266.
Це дозволяє їм з легкістю виконувати задачі потокової передачі відео в реальному часі або вести активний обмін даними із сервером та подальшу обробку цих даних на пристрої.
Враховуючи перелічені особливості, використання апаратури із ОС OpenWRT є оптимальним рішенням для контролю пристроїв IoT.
Це дозволяє зменшити час та вартість розробки продукту, а також дає можливість обробляти великі масиви даних у реальному часі.
При цьому вартість апаратури, на якій можна запустити OpenWRT, є вищою у порівнянні із простішими Wi-Fi — мікроконтролерами.
Тому їх використання є виправданим для масових пристроїв користувацької електроніки, для яких якнайнижча ціна є критичним фактором.
При цьому використання довшого та дорожчого процесу проєктування є виправданим.
