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