Домашня автоматизація на Raspberry Pi для Інтернету речей з використанням IBM Bluemix
Рейтинг статті: / 8
НайгіршеНайкраще 
BluemixМи всі в якийсь момент свого життя хочемо контролювати все натисканням однієї кнопки. Чи це буде виключення непотрібного світла, коли ми не вдома, чи щоб виявити зловмисників, коли ми не поруч.
Інтернет речей на Raspberry Pi_1
Ця стаття допоможе вам створити просту систему домашньої автоматизації на Raspberry Pi, що дозволить вам контролювати техніку у своєму будинку з будь-якої точки світу. Це також дозволить переглядати дані з датчика руху PIR через Інтернет, щоб виявити зловмисників. Даний проект використовує платформи Raspberry Pi, IoTF IBM (Фонд Інтернету речей) та пакети Bluemix. Він може розглядатися як ідеальний проект, щоб потрапити у світ Інтернету речей. Тож давайте почнемо!
Що потрібно для проекту?
Обладнання:
1. Raspberry Pi 2 / B+.
2. USB модуль WiFi.
3. USB-клавіатура і миша.
4. Монітор HDMI і кабель.
5. Мікро USB-адаптер живлення (зарядний пристрій смартфон).
6. Датчик руху PIR.
7. Перемички штекер-гніздо і штекер-штекер.
8. Макетна плата.
9. Транзистор BC547.
10. 5V SPDT реле і діод 1N4001.
11. Світлодіод і резистор 220 ом.
Програмне забезпечення:
Raspbian ОС
Як це працює?
Якщо ви новачок в Raspberry Pi, то завжди можете використати статтю, щоб дізнатися, як налаштувати RPi і Raspbian ОС. Система домашньої автоматизації на Raspberry Pi використовує клієнтські і серверні сценарії на Python. Вони можуть спілкуватися один з одним через платформу IoTF від IBM. Весь проект Інтернету речей можна розділити на дві частини.
1. Відправлення команд на Raspberry Pi
На стороні сервера сценарій, який виконується на нашому ноутбуці або на веб-сервері, отримує вхідні команди від користувача і, відповідно, відправляє їх клієнту (Raspberry Pi). Будемо використовувати команди, щоб включити/виключити (ON/OFF) світло. Коли використовуємо команду, щоб включити (ON) світло через сценарій на стороні сервера, то інформація передається в Raspberry Pi, і його контакт GPIO включає реле. Система також відправляє оновлення статусу на сервер: світло включене/виключене (ON/OFF).
Інтернет речей на Raspberry Pi_2
2. Отримання даних від Raspberry Pi
У разі відправки даних від датчика руху PIR, підключеного до Raspberry Pi, ми запускаємо сценарій, який зчитує датчик через контакти GPIO і передає дані через платформу IoTF. Вони можуть бути переглянуті за допомогою консолі IoTF або через користувальницький веб-додаток, розроблений з використанням платформи.
Інтернет речей на Raspberry Pi_3
Кілька посилань, щоб допомогти вам, перш ніж приступите:
1. Поняття про використання IBM IoTF https://docs.internetofthings.ibmcloud.com/reference/concepts.html
2. Створення додатків за допомогою Bluemix: документація.
3. Взаємодія Raspberry Pi з датчиком акселерометра: блог IBM.
Крок 1: Тестування IBM IoTF за допомогою імітатора
Спочатку потрібно зареєструвати на один місяць безкоштовний пробний обліковий запис з IBM: https://quickstart.internetofthings.ibmcloud.com/#/. Ви можете зробити це, перейшовши сюди. Далі потрібно увійти на сторінку IoTF IBM з обліковими даними, які ви тільки що створили. І там повинні натиснути на “Quickstart” ("Швидкий старт") у верхньому меню. Потім натисніть на “Find out more” ("Дізнайтеся більше") з розділу “Don’t have a device?” ("Не маєте пристрою?"):
Інтернет речей на Raspberry Pi_4
Далі, в новому спливаючому вікні, виконайте інструкції для установки імітатора або просто натисніть на посилання: http://quickstart.internetofthings.ibmcloud.com/iotsensor.
Імітатор діє подібно даним, що надходять від вашого Raspberry Pi або будь-якого іншого підключеного пристрою, він імітує такі дані, як температура, вологість і т.д. Імітатор відкриється в новій вкладці і виглядає як додаток смартфону:
Інтернет речей на Raspberry Pi_5
Скопіюйте MAC-адресу з правого верхнього кута імітатора. У даному прикладі це DD: 2D: 36: E1: С0: 17. Тепер, вставте цю MAC-адресу на сторінці швидкого старту IoTF https://quickstart.internetofthings.ibmcloud.com/#/ або просто натисніть в себе на MAC-адресу. Ви можете побачити дані, що надходять від імітатора, в новій вкладці у вигляді графіка. Тепер поверніться до імітатора і натисніть на клавіші UP/DOWN (ВГОРУ/ВНИЗ) для збільшення/зменшення значення температури. І ви зможете побачити, що графік на сторінці швидкого старту, відповідно, оновлюється, а в нижній частині сторінки видно поточне значення температури, яку ви встановили.
Інтернет речей на Raspberry Pi_6
Крок 2: Додавання Raspberry Pi до IBM IoTF
Наступним кроком є додавання нашого пристрою Raspberry Pi на платформу IBM IoTF, так щоб можна було його визначити. Для цього потрібно створити ідентифікатор пристрою для RPi. Щоб зробити це, прочитайте інструкції на сторінці під заголовком “Connect (Quickstart)“ https://developer.ibm.com/iotfoundation/recipes/raspberry-pi/. Після установки пакетів за допомогою команд зі сторінки інструкції, знайдіть ідентифікатор пристрою свого RPi, використовуючи таку команду в терміналі:
service iot getdeviceid
Запишіть ідентифікатор пристрою.
Далі залогіньтесь в консолі Bluemix https://console.ng.bluemix.net/, а потім натисніть на “Add Service” ("Додати сервіс") або “Use Service” ("Використовувати службу").
Інтернет речей на Raspberry Pi_7
Після цього перейдіть вниз, щоб знайти і вибрати шаблон “Internet of Things” ("Інтернет речей") або значок.
Інтернет речей на Raspberry Pi_8
Далі, призначте назву для даного проекту і натисніть кнопку “Create” ("Створити").
Інтернет речей на Raspberry Pi_9
Тепер з нової сторінки, натисніть на кнопку "Launch Dashboard". І виконайте наступні кроки.
Інтернет речей на Raspberry Pi_10
До вашого відома - З наступного разу, ви можете просто увійти на сторінку IoTF і натиснути на верхній правій частині облікового запису. У випадаючому вікні побачите “My organizations” ("Мої організації"). Натисніть на ту, яка приведе вас до нової сторінки.
Інтернет речей на Raspberry Pi_11
Тепер, після запуску панелі керування, виберіть “Devices” ("Пристрої") на вищевказаних вкладках. Потім натисніть на кнопку “+Add Device” ("+ Додати пристрій") на сторінці. Введіть ім'я вашого пристрою (ви можете назвати його будь-як), а потім введіть ідентифікатор пристрою, який отримали на більш ранніх етапах. Після цього отримаєте маркер ідентифікатор. Будь ласка, запишіть його або зробіть скріншот вікна. Ви будете використовувати цей маркер дентифікатор, щоб створити файл конфігурації.
Інтернет речей на Raspberry Pi_12
Тепер можете переглядати дані, що надходять від вашого RPi (температура процесора, і т.д.), коли ви вводите ідентифікатор пристрою свого RPi на сторінці швидкого старту. Також можете побачити його в розділі “Devices” ("Пристрої") на сторінці свого акаунта. Просто натисніть на символ "+" в колонці “Last Event” ("Остання подія"), щоб переглянути вхідні дані. Натисніть на кожну з них, щоб побачити дані в деталях:
Інтернет речей на Raspberry Pi_13
Далі ви повинні слідувати інструкціям, наведеним у розділі “Connect (Registered)” на сторінці https://developer.ibm.com/iotfoundation/recipes/raspberry-pi/. Це ініціалізація вашого Raspberry Pi з такими параметрами, як Organization id, Device id, Token, і т.д., так що ви зможете спілкуватися з ним через інші програми.
Крок 3: Отримання ключа API
Тепер ви повинні створити ключ API для Raspberry Pi, щоб могли читати з нього дані за допомогою інших зовнішніх додатків. Клацніть на вкладці “API Keys”  (“Ключі API”) на сторінці організації та натисніть на кнопку “New API Key” ("Новий ключ API "). Запишіть ключ і маркер аутентифікації, який генерується, бо вони будуть показані лише один раз, тому запишіть їх або зробіть знімок.
Крок 4: Збірка компонентів разом для системи домашньої автоматизації на Raspberry Pi
Інтернет речей на Raspberry Pi_14
На підставі наведеної вище схеми підключення, під’єднайте компоненти для системи домашньої автоматизації на Raspberry Pi. Ви можете дізнатися більше про підключення реле тут, якщо новачок. І можете тут знайти позначення виводів транзистора BC547. Крім того, перевірте тут призначення виводів Raspberry Pi. Ви можете підключити прилад, яким хочете керувати, через реле, як показано вище. Один провід світла/лампи повинен бути підключений безпосередньо до живлення, а інший - через реле. Ви можете використати посилання на керівництво для реле, наведене вище як підручник. В основному, використовується три виводи GPIO, які підключаються наступним чином:
1. Вивід 3 GPIO: Для забезпечення керуючого сигналу BC547, який, у свою чергу, активує реле.
2. Вивід 7 GPIO: Для моніторингу стану (ON/OFF) приладу, підключеного до реле.
3. Вивід 11 GPIO: Для забезпечення статусу при виявлення порушника за допомогою датчика руху PIR (0/1).
Крок 5: Налаштування сценарієв Python на сторонах клієнта і сервера для системи домашньої автоматизації на Raspberry Pi
Ви можете клонувати або завантажити сценарії Python для цього проекту з https://github.com/DIYhacking/IoT.git. Але, будь ласка, зверніть увагу, що вам треба редагувати обидва ці сценарії зі своїми даними організації/пристроїв. Далі, увійдіть в свій Raspberry Pi, відкрийте термінал і виконайте такі кроки:
cd /home/pi
git clone https://github.com/DIYhacking/IoT.git
Інтернет речей на Raspberry Pi_15
client1.py
Git-клон скопіює папку "IoT" з GitHub до RPi. Далі, ви повинні зайти в цю папку і відредагувати сценарій Python "client1.py". Ви можете використати редактор нано в терміналі, щоб додати інформацію про свою організацію, тип пристрою і т.д. Тому, наступні команди:
cd /home/pi/IoT
sudo nano client1.py
Перейдіть до рядків в редакторі, які просять ID організації, тип пристрою, і т.д., та заповніть деталі. Ви можете переглянути ці дані за допомогою такої команди в новому вікні терміналу:
service iot getdeviceid
Сценарій client1.py Python після оновлення з усією інформацією:
Інтернет речей на Raspberry Pi_16
server1.py
Далі нам потрібно зробити те ж саме для сценарію server1.py. Тож відкрийте свій ноутбук і клонуйте файли коду (git клон https://github.com/DIYhacking/IoT.git або просто завантажте його за посиланням), відкрийте редактор для server1.py і додайте всі деталі про організацію, і т.д. так само, як раніше для RPi. Але тут є додаткова інформація, яка повинна бути заповнена. Ви також повинні заповнити деталі ключа API (authkey і authtoken). Ви можете отримати цю інформацію з Кроку 3.
Після виконання цих кроків нам потрібно далі встановити пакети IoTF Python для запуску сценарію server1.py на ноутбуці/веб-сервері. Щоб їх встановити виконайте команду:
pip install ibmiotf
Ви також повинні перевірити, чи встановлений на вашій системі “pip”, якщо ні, то необхідно встановити його для вашої ОС:
Для Linux -> sudo apt-get install python-pip
Для mac-> sudo easy_install pip
Для Windows-> Перевірте цей підручник.
Крок 6: Запуск і реалізація системи домашньої автоматизації на Raspberry Pi
Нарешті, ми можемо реалізувати систему для запуску нашого проекту домашньої автоматизації на Raspberry Pi. Дотримуйтесь інструкцій для виконання і перегляду виходів нижче.
По-перше, ми повинні зупинити запущену на RPi за замовчуванням службу IoT, використовуючи команду:
sudo service iot stop
Далі, запустіть сценарій на RPi за допомогою:
sudo python client1.py
А потім з ноутбука запустіть сценарій на стороні сервера:
sudo python server1.py
Ми можемо робити дві речі з цією системою:
1. Дивитися чи є зловмисники, використовуючи датчик руху PIR і перевіряти чи світло ON/OFF (ВКЛ/ВИКЛ) через підключений до Інтернету пристрій.
2. Контролювати прилад/світло за допомогою віддаленого пристрою, підключеного до Інтернету.
1. Перевірка даних датчика руху PIR і статусу світла, відправлених з Raspberry Pi
Тут ми виконуєму ту ж саму послідовність, яку ми використовували в кроці 2. Для цього, увійдіть в свій IBM IoTF облік, використовуючи те ж посилання, яке ми використовували раніше https://internetofthings.ibmcloud.com/. Потім натисніть на розділ свого облікового запису в правому верхньому кутку і натисніть на свою організацію (перевірте зображення в розділі 2). Потім натисніть на вкладку "Devices" ("Пристрої") і поряд на символ "+" в колонці "Last Event" ("Остання подія"). Ви побачите, що дані оновлюються, і клацаючи кожний з рядків цих даних, можете побачити дані в деталях, переглянути статуси Light і Intruder (0/1) від системи автоматизації будинку на Raspberry Pi:
Інтернет речей на Raspberry Pi_17
2. Управління приладом, передаючи йому ON/OFF (ВКЛ/ВИКЛ) за допомогою сценарію на стороні сервера
Тепер, виконайте серверний сценарій Python на своєму ноутбуці. Ви можете використати команду:
sudo python server1.py
Цей сценарій проситиме команди, наприклад, так:
Інтернет речей на Raspberry Pi_18
Ви можете використовувати дві команди для управління лампою:
Щоб включити її (ON): lighton
Щоб вимкнути її (OFF): lightoff
Введіть "lighton" і натисніть кнопку введення - побачите, що через кілька секунд реле і світлодіод підключені до системи автоматизації будинку на Raspberry Pi, активуються. Незалежно, чи підключений прилад до реле, воно буде включене. І на терміналі свого ноутбука побачите дані, згенеровані з Raspberry Pi, як на картинці вище.
Потім введіть команду "lightoff", щоб відключити реле та світлодіод і, відповідно, ваш прилад відключиться.
Потенційно, ви можете створити веб-сторінку і кнопку HTML та запускати цей сценарій, коли натиснута кнопка, щоб контролювати прибори через інтернет-сторінку. Перевірте Python і HTML інтеграцію, щоб зробити це. І ви отримаєте можливість контролювати прилади в своєму будинку з будь-якої частини світу. Автор сподівається, що ви придумали дійсно класні ідеї проектів, щоб використовувати розглянуту потужну платформу від IBM. Тепер подивіться відео, яке демонструє систему домашньої автоматизації на Raspberry Pi:
(Джерело EN: diyhacking.com)
 
>
КнигаНовиниПрактика пошукуПартнериПро нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting