• Главная <
  • Галерея
  • Карта сайта
  • Наши контакты
  • Обратная связь

Інтернет речей для ентузіастів: метеостанція з візуалізацією

Інтернет речей розвивається сьогодні завдяки не тільки компаніям, що пропонують рішення, спеціально призначені для роботи в Інтернеті речей, але і ентузіастам, яким гостро необхідні нові інструменти роботи з взаємодіючими «розумними» речами.

«Розумні» речі зазвичай містять сенсори для отримання даних, виконавчі пристрої для впливу на зовнішнє середовище, модуль зв'язку для передачі даних в центр управління мережею і керуючий мікроконтролер. Ще зовсім недавно для створення подібних пристроїв необхідно було знати основи мікроелектроніки, вміти паяти і володіти різними навичками роботи з «залізом», однак з появою рішень на зразок відкритої апаратно-програмної платформи Arduino ситуація змінилася. Орієнтовані на непрофесійних розробників інструменти побудови систем автоматики дозволяють знизити поріг входження в сферу програмування мікроконтролерів. Наявність елементарних засобів розробки, простота створення схем без пайки і великий вибір готових сумісних модулів викликали поповнення армії ентузіастів, яким до снаги генерувати нові ідеї і створювати пристрої, здатні працювати в середовищі Інтернету речей [1] .

Однак розробка пристроїв на базі Arduino - тільки частина роботи. Потрібно ще забезпечити зберігання показань, одержуваних від численних сенсорів, збір статистики і візуалізацію даних, тому наступним кроком після створення власне пристрої є організація збереження даних у зовнішній базі. Для цього можна використовувати карти пам'яті, передачу через Ethernet і Wi-Fi на віддалені носії і т. П., Але все це вимагає або додаткового обладнання, або написання великого обсягу коду. Мінімально необхідна конфігурація - прямий зв'язок через COM-порт, по якому одночасно може здійснювала вляться і живлення пристрою.

Одним з варіантів вибору СУБД, а також сервера додатків може бути InterSystems Cachе', яка працює з різними типами пристроїв, отримуючи дані безпосередньо через COM-порт без будь-яких проміжних рівнів (веб-сервер, файли та ін.). Це важливо, тому що більшість пристроїв Інтернету речей [2] , Як правило, мають обмежений обсяг пам'яті для зберігання програм. СУБД працює з такими фізичними і логічними пристроями, як диски, магнітні стрічки, файли, термінали, TCP- і COM-порти і т. Д., А поставляється разом з Cachе' модуль аналітики BI DeepSee дозволяє візуалізувати отримані дані.

Взаємодія з СУБД Cachе' здійснювала вляется засобами мови Cachе' ObjectScript [3] і виконується в п'ять етапів: за допомогою команди OPEN реєструється факт отримання поточним процесом доступу до пристрою; пристрій ініціюється як поточний за допомогою команди USE; по команді READ дані зчитуються з пристрою, а по команді WRITE передаються на пристрій; перемикання на інший пристрій здійснюється командою USE; робота з пристроєм завершується по команді CLOSE.

На практиці цей процес виглядає так. На Arduino збирається схема для читання даних з COM-порту, що включає світлодіод на вказане число мілісекунд. Для роботи з такою схемою потрібна проста програма на Сі, що приймає дані по COM-порту і при передачі нового рядка інтерпретує її як число мілісекунд, на які включається світлодіод. Для підключення цієї схеми до СУБД Cachе' потрібно написати метод SendSerial звернення до COM-порту [4] .

Потім до Arduinо підключається клавіатура і починається передача даних, наприклад, для забезпечення додаткової аутентифікації користувача за допомогою делегації авторизації - механізму, що дозволяє отримувати відомості для авторизації користувача з зовнішніх джерел на кшталт «розумних» речей або біометричного сканера відбитків пальців. В [4] наведено приклад коду на Сі для підключення до COM-порту і відправки по ньому символів, натиснутих на клавіатурі, а в СУБД Cachе' потрібно тепер написати відповідний метод ReceiveOneLine підключення до порту і отримання рядка.

Всі ці дії можна вважати підготовкою для збору «розумного» пристрою, здатного працювати в середовищі Інтернету речей. Як приклад такого пристрою можна розглянути метеостанцію, що збирає базову інформацію про навколишнє середовище: температуру, вологість і освітленість. Такі пристрої можуть застосовуватися в «розумних» будинках, яким потрібно знати температуру за вікном для управління різними системами будинку. На рис. 1 наведена приблизна схема підключення метеостанції до Інтернету речей.

Для складання метеостанції використовуються фоторезистор (датчик освітленості) і датчик DHT11 для вимірювання температури і вологості. На рис. 2 приведена схема підключення цих сенсорів до модуля Arduino.

Після завантаження коду на Arduino модуль починає посилати дані на COM-порт в форматі H = 34.0; T = 24.0; LL = 605. Де H - вологість (від 0 до 100%); T - температура в градусах Цельсія; LL - освітленість в умовних одиницях (від 0 до 1023). Всю цю телеметрію треба завантажити в СУБД Cachе' - для цього буде потрібно зберігається клас Arduino.Info, який записує отримані від метео станції відомості і час їх отримання. У Arduino.Info можна ще додати метод ReceiveSerial, який в нескінченному циклі приймає дані в форматі Arduino і перетворює їх в об'єкти класу Arduino.Info. Після цього треба запустити модуль Arduino і виконати на терміналі метод ReceiveSerial:

do ## class (Arduino.Info) .ReceiveSerial ()

Для візуалізації отриманих даних можна використовувати модуль BI DeepSee з СУБД Cachе', а також відкриті утиліти: REST API MDX2JSON (надання інформації про об'єкти DeepSee в форматі JSON) і DeepSee Web (клієнт для візуалізації даних) [5]. При цьому розробнику не обов'язково знати SQL або розбиратися в тонкощах налаштування СУБД - є готовий клас з даними (в нашому прикладі це Arduino.Info), властивості якого вибираються в майстра візуалізації в якості заходів і вимірювань OLAP-куба. Потім на основі OLAP-куба будується зведена таблиця - також в візуальному засобі за допомогою простого «перетягування» на рядки і стовпці необхідних заходів і вимірів куба. На останньому етапі вибирається один із способів візуалізації: графік, таблиця, кругова діаграма, часовий ряд і ін.

Всі дані, отримані від метеостанції, можуть бути зведені в одну панель (рис. 3), що містить графіки яскравості (добре видно світанок в районі 5:50), температури і вологості.

Метеостанції - лише корисна річ для дому, але з прив'язкою до географічних координат такі пристрої можуть безперервно передавати інформацію метеорологам, які отримають можливість створювати точні прогнозні моделі. Інший приклад - фітнес-трекери, що збирають дані про пройдену відстань, але якщо додати до них датчики пульсу, температури і систематизувати зібрані відомості, то персональна медицина отримає інструмент раннього виявлення захворювань. Таким чином, «розумні» метеостанції і лампочки - всього лише передвісники змін, які обіцяє Інтернет речей, здатний радикально поліпшити якість життя суспільства завдяки обробці всіх наявних деталей. І все ж хоч би «розумними» не були пристрої, успіх буде можливий лише за умови масовості їх проникнення в усі сфери життя, і тоді кількість перейде в якість.

***

СУБД InterSystems Cachе' може служити основою для створення розвинутої інфраструктури Інтернету речей, дозволяючи забезпечити зв'язок з пристроями різних типів, що відкриває широкі можливості для організації взаємодії з прикладними пристроями та управління ними. Аналітичні можливості цієї СУБД дозволяють в реальному часі візуалізувати дані, отримані від пристроїв. Чим ширше буде мережа таких «розумних» пристроїв, створених в тому числі і ентузіастами, тим більше з'явиться можливостей для аналізу і візуалізації різної інформації, тим ближче буде індустрія до вирішення головного завдання Інтернету речей - широкої інтеграції технологій з повсякденним життям. ?

  1. Михайло Борисов. Доступний моніторинг виробничих процесів // Відкриті сістеми.СУБД. - 2015. - № 3. - С. 13-15. URL: http://www.osp.ru/os/2015/03/13046892 (Дата звернення: 18.03.2016).
  2. Рой Уонт, Біл Шіліт, Скотт Дженсон. Механізми Інтернету речей // Відкриті сістеми.СУБД. - 2015. - № 1. - С. 38-42. URL: http://www.osp.ru/os/2015/01/13045328/ (Дата звернення: 15.03.2016).
  3. URL: cls?KEY=GIOD_iodevcomms> http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GIOD_iodevcomms (Дата звернення: 18.03.2016).
  4. URL: https://github.com/intersystems-ru/ArduinoSnippets/blob/master (Дата звернення: 18.03.2016).
  5. URL: https://github.com/intersystems-ru (Дата звернення: 18.03.2016).

Едуард Лебедюк ( [email protected] ) - інженер-консультант, корпорація InterSystems, аспірант РЕУ ім. Г. В. Плеханова (Москва).

Cls?
Новости