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