Останнім часом дедалі більшої популярності набувають прилади інтернету речей (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 — мікроконтролерами.
Тому їх використання є виправданим для масових пристроїв користувацької електроніки, для яких якнайнижча ціна є критичним фактором.
За такої умови використання довшого та дорожчого процесу проєктування є виправданим.
