Інтернет речей (IoT) - що, де і як - Очима хостера

Інтернет речей (Internet of Things, IoT) - це ідея з області комп'ютерних наук, яка передбачає об'єднання звичайних речей, як, наприклад, лампочки або дверного замка, в комп'ютерну мережу і розумного їх застосування в подальшому.

Для цього використовуються вбудовані системи (Embedded System). Це комп'ютери, створені для виконання всього декількох завдань. Додати в їх арсенал функції не так легко, на відміну від звичайних комп'ютерів, в яких для виконання нового завдання потрібно тільки встановити нову програму.

За допомогою вбудованої системи з'єднують кожен апарат в мережу і потім підключають до інтернету. З'єднання дозволяє збирати і обмінюватися даними, управляти пристроями дистанційно і встановлювати правила або послідовність дій.

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

З технічного боку, найбільш популярними рішеннями для створення таких систем є Arduino і Raspbery Pi.

Arduino - це платформа з відкритим вихідним кодом і відкритими апаратними специфікаціями, побудована на основі гнучких і легких у використанні апаратних пристроїв і програмного забезпечення. Вона призначена для всіх, хто зацікавлений в створенні пристроїв для інтернету речей і просто експериментів з програмованим контролером. У комплект входить багато датчиків, які дозволяють створювати різноманітні пристрої. Мікроконтролер на платі програмується з використанням мови Arduino. Існує також однойменна середовище розробки - Arduino IDE. Проекти можуть бути автономними, а також використовуватися з програмним забезпеченням на комп'ютері, наприклад MaxMSP.

Raspberry Pi - це одноплатний комп'ютер розміром з банківську карту, спочатку розроблений як бюджетна система для навчання інформатиці, що згодом одержав більш широке застосування і популярність, ніж очікували його автори. Багато хто використовує Raspberry Pi, щоб зробити такі речі, як камери спостереження, ігрові автомати, роботів, веб-сервери і медіа-центри. На ньому може бути встановлена ​​тільки операційна система Linux.

На Raspberry Pi можна налаштувати LAMP (Linux, Apache, MySQL, PHP) і далі використовувати в якості веб-сервера для домашніх експериментів. Також можна за допомогою датчиків посилати з них інформацію на сайт, розміщений на сервері. Всі подальші дії для з'єднання пристрою з датчиками і самого створення пристрою не представляють особливих складнощів. Програми можуть бути написані на будь-якій мові програмування.

Приклад простої програми на PHP:

<Html>
<Head>
<Meta name = "viewport" content = "width = device-width" />
<Title> LED Control </ title>
</ Head>
<Body>
LED Control:
<Form method = "get" action = "gpio.php">
<Input type = "submit" value = "ON" name = "on">
<Input type = "submit" value = "OFF" name = "off">
</ Form>
<? Php
$ Setmode17 = shell_exec ( "/ usr / local / bin / gpio -g mode 17 out");
if (isset ($ _ GET [ 'on'])) {
$ Gpio_on = shell_exec ( "/ usr / local / bin / gpio -g write 17 1");
echo "LED is on";
}
else if (isset ($ _ GET [ 'off'])) {
$ Gpio_off = shell_exec ( "/ usr / local / bin / gpio -g write 17 0");
echo "LED is off";
}
?>
</ Body>
</ Html>

В даному прикладі сторінка називається gpio.php. Вона повинна бути розміщена на веб-сервері. Як бачимо з коду, викликається команда Unix shell за допомогою PHP-методу shell_exec (), яка управляє зовнішніми пристроями. Далі до порту 17 контактної плати потрібно підключити LED. Для перевірки відкриваємо адресу даного сервера, де повинна відобразитися сторінка з елементами управління даною схемою.

Створити пристрій з використанням Arduino - більш дешевий і цікавий в реалізації варіант. Необхідно написати просту програму для контролера, використовуючи мову Arduino, і підключити його до комп'ютерної мережі за допомогою мережевої плати стандарту Ethernet або плати Wi-Fi.

Для того щоб створити простий пристрій, потрібно:

  1. Arduino;
  2. WiFly shield;
  3. LED;
  4. Резистор 220 Ом;
  5. Кілька проводів.

В якості точки доступу Wi-Fi можна використовувати WiFly shield. Після підключення до Wi-Fi потрібно налаштувати точку, заливши на контролер код wifly_shield_LED_on_off.ino . Далі - налаштувати WiFly shield для підключення до точки доступу з використанням Serial Monitor Arduino і залити попередній код. Замість використання Serial Monitor можна взяти наступний код: wifly_shield_LED_on_off_join.ino .

Після завантаження коду необхідно відкрити Serial Monitor і чекати, поки WiFly shield створить точку доступу або приєднається до раніше зазначеній точці. Serial Monitor повідомить адресу WiFly shield. Підключіться за допомогою комп'ютера або телефону до тієї ж точки, до якої приєднаний WiFly shield. Далі впишіть в адресному рядку браузера IP-адреса сервера і / $ 1 # для включення LED і / $ 2 # для виключення, наприклад: 192.168.43.89/$1# і 192.168.43.89/$2#. Якщо в ролі точки доступу використовується WiFly shield, то потрібно змінити IP-адресу комп'ютера. Тобто, якщо адреса WiFly shield: 192.168.1.0, то адреса комп'ютера повинен бути, наприклад, 192.168.1.1 (перебувати в одній підмережі). Далі можна включати і вимикати LED, тільки IP-адреса вже повинен бути інший (наприклад, 192.168.1.1).

Для віддаленого управління Raspberry Pi з ОС Linux досить налаштувати SSH. Secure Shell (SSH) - мережевий протокол прикладного рівня, що дозволяє виробляти віддалене управління операційною системою і тунелювання TCP-з'єднань (наприклад, для передачі файлів). А для підключення з комп'ютера під керуванням ОС сімейства Windows використовують Putty - це реалізація протоколу SSH і Telnet для Windows (завантажити можна тут: http://www.putty.org/ ). Найімовірніше, у вашій версії Linux для Raspberry Pi вже виконані необхідні налаштування для підключення. Для новачків рекомендується використовувати Raspbian, реалізацію Debian для Raspberry Pi. У Putty досить ввести IP вашого пристрою в поле «Host Name», «Port» - 22, натиснути «Open» і вказати в розпочатому терміналі логін і пароль для входу.

Так само Raspberry Pi може використовуватися як сховище файлів, якщо підключити до нього зовнішній жорсткий диск за допомогою USB, або як веб-сервер для невеликого проекту. Технічно підковані користувачі можуть розмістити там git-репозиторій, Redmine і необхідні для розробки сервіси, незважаючи на скромні можливості плати.

Ще можна створити сайт для виведення потрібної інформації, або, наприклад, зберігати інформацію в базу, використовуючи хостинг , Але потрібно впевнитися, що він підтримує cURL (дивіться пропозиції пакетів послуг хостингу zzz . com . ua ). після реєстрації на хостингу і придбання платного пакету послуг залишається створити веб-сайт (можете замовити розробку веб-сайту на zzz . com . ua ), Який буде виконувати запити до пристрою і виводити результат на сторінці за допомогою функції cURL.