Торкаючись теми обладнання для систем розумного будинку, ми нещодавно розглядали спеціалізовані пристрої від компанії SONOFF, яка є одним з провідних виробників і постачальників обладнання для комплектації систем Smart Home і дозволяє встановити і запустити подібні системи практично кожному бажаючому (навіть без досвіду роботи з мікроелектронікою), оскільки вони надають готові рішення, готові для безпосереднього монтажу та експлуатації. При всьому їхньому асортименті, вони реалізують тільки стандартні для них функції, чого безперечно вистачає для більшості випадків і запитів від клієнтів. Якщо ви ще не знайомилися з даним оглядом, то обов'язково прочитайте його за посиланням: SONOFF: 10 способів управління розумним будинком.
Для тих, хто щойно приєднався до наших оглядів, і не має уявлення про функції системи розумного будинку, пропонуємо переглянути відео з можливими варіантами застосування даних систем:
Розумний будинок дозволяє домовласникам віддалено керувати побутовою технікою, розумними термостатами, рольставнями, системами контролю мікроклімату в приміщеннях, освітленням, та іншими пристроями як усередині, так і зовні приміщень. Усім цим можна керувати зі смартфона або планшета, підключених до Інтернету. Іншими словами, технологія «розумний будинок» забезпечує зручність для користувачів, а крім цього за рахунок легшого відключення електроприладів та ще й економію коштів. Також цьому сприяє застосування сучасних систем освітлення на основі світлодіодних елементів.
Проте, не лише спеціалізована техніка готова запропонувати свої рішення для створення систем розумного будинку. Ми задалися питанням: як можна використовувати один з найпопулярніших в даний час мікрокомп'ютерів Raspberry Pi для вирішення подібних завдань або навіть вийти за рамки згаданих вище пропозицій. Raspberry Pi ідеально підходить для багатьох завдань, серед них і використання в ролі концентратора (хаба) розумного будинку, утворюючи міст, що дозволяє різним електричним пристроям та обладнанню взаємодіяти один з одним.
Причина використовувати Raspberry Pi для побудови системи домашньої автоматизації
Однією з основних причин створення розумного будинку є отримання оселі, якою легко керувати та яка функціонує автоматично, що суттєво полегшує наше життя. І деякі топові в цьому сегменті програмні системи дуже ефективно справляються з цим завданням. Наприклад, за допомогою Web Things Gateway можна створити сервер Raspberry Pi для домашньої автоматизації. Самі програмні системи ми розглянемо нижче у статті.
Оскільки варіантів застосування автоматизації в розумному будинку величезна кількість, обмежена лише кількістю електроприладів і вашою фантазією, то для більш простого порівняння ми реалізуємо популярну систему для керування світлодіодним освітленням, як окремий випадок застосування цього мікрокомп'ютера в смарт-системах. Таким чином, використовуючи програмне забезпечення з відкритим вихідним кодом OpenHAB
(https://www.openhab.org/), ми створимо центр управління на Raspberry Pi з сенсорним екраном, який зможе взаємодіяти з більш ніж 150 різними продуктами для розумного будинку і надавати інтерфейс для управління та планування завдань. Створена система управління світлодіодною стрічкою RGB з підтримкою WiFi, буде взаємодіяти з OpenHAB, що дозволить керувати нею по бездротовій мережі зі смартфона або будь-якого комп'ютера в мережі.
OpenHAB є одним з найкращих варіантів, тому що він взаємодіє з багатьма продуктами, він безкоштовний, з відкритим вихідним кодом та надзвичайно гнучкий. Він також працює у Windows, OS X та Linux.
У представленому відео показаний процес складання системи керування світлодіодним освітленням:
Необхідні для реалізації даного проекту елементи та комплектуючі
(ппро наведені нижче посилання можна замовити комплектуючі для цього проекту в інтернет-магазині evo.net.ua з доставкою):
- Мікрокомп'ютер Raspberry Pi, бажано Pi 3 або Pi 4 і з вбудованим модулем Wi-Fi. (Raspberry Pi)
- Чиста картка micro SD з об'ємом пам'яті не менше 4 ГБ. (Карти пам'яті)
- 7-дюймовий сенсорний екран Raspberry Pi (Дисплей 7inch LCD 800х480 DSI Capacitive Touch Screen)
- Блок живлення Raspberry Pi (Джерела живлення Raspberry Pi)
-
Світлодіодна стрічка NeoPixel Strip
-
Перетворювач логічного рівня
-
Плата Adafruit HUZZAH ESP8266
-
З'єднувальні дроти
а також знадобляться:
-
Комп'ютер
-
Паяльник і припій
-
FTDI-програматор
-
Інструмент для зачистки дротів
-
USB-клавіатура та миша
-
Операційна система для розумного будинку (Raspberry Pi smart home OS).
Приступимо до збирання проекту!
Крок 1. З'єднання Raspberry Pi і сенсорного екрана
Без інструкцій складання та підключення екрану до Raspberry Pi може виявитися непростим завданням. Почніть з того, що переверніть екрана вниз і переверніть плату контролера дисплея так, щоб було видно велике гніздо. Підключіть стрічковий кабель (шлейф) від екрана до контролера, повністю вставивши кабель і закріпивши його затискачем на роз'ємі.
Переверніть плату контролера дисплея на задню частину екрана та вставте невеликий кабель сенсорного екрана у відповідний роз'єм. Вкрутіть стійки в задню частину екрана через отвори у платі контролера.
Вставте стрічковий кабель у роз'єм дисплея на боці плати контролера, потім помістіть Pi поверх стійок і закрутіть його. Підключіть інший кінець стрічкового кабелю до гнізда дисплея на Pi.
Для подачі живлення та заземлення на сенсорний екран використовуватимемо контакти GPIO на Pi. Візьміть червону перемичку, що додається до екрана, та підключіть її до крайнього правого нижнього контакту 5V GPIO на Pi, потім підключіть інший кінець до крайнього правого контакту на платі контролера під ним. Використовуйте чорну перемичку для підключення контакту GPIO GND (два контакти від червоного дроту 5V) на Pi до крайнього лівого контакту на платі контролера під ним.
Крок 2. Встановлення картки microSD та налаштування Raspbian
Завантажте останню версію Raspbian із сайту Raspberry Pi та запишіть її на карту microSD. Потім вставте карту в Pi. Підключіть клавіатуру, мишу та адаптер Wi-Fi, потім вставте картку в Pi та завантажте її. Пройдіть процес налаштування і, коли він повністю завантажиться, підключіться до мережі Wi-Fi. Щоб змусити сенсорний екран працювати, вам, ймовірно, потрібно виконати кілька команд із командного рядка для оновлення Raspbian:
sudo apt-get update sudo apt-get upgrade
Ця процедура займе деякий час, так що наберіться терпіння!
Коли перезапустіть Pi після оновлення, сенсорний екран перевернеться. Якщо вас це турбує, то можете позбавитися цієї особливості, додавши lcd_rotate=2 в останній рядок файлу конфігурації в папці завантаження, використовуючи наступну команду:
sudo nano /boot/config.txt
Потім натисніть Ctrl+X, щоб зберегти вихід.
Крок 3. Установка OpenHAB
Настав час встановити програмне забезпечення для управління домашньою автоматизацією OpenHAB та необхідні розширення до нього, які ми будемо використовувати.
Відкрийте командний рядок на Pi і введіть такі команди:
sudo wget http://www.element14.com/community/servlet/JiveServlet/download/38-152207/openhab.zip unzip openhab.zip sudo rm openhab.zip sudo cp openhab.sh /etc/init.d sudo chmod 777 /etc/init.d/openhab.sh sudo update-rc.d -f openhab.sh defaults
Тепер ми введемо ще кілька команд для налаштування запуску OpenHAB під час старту:
sudo wget http://www.element14.com/community/servlet/JiveServlet/download/38-152207/openhab.zip unzip openhab.zip sudo rm openhab.zip sudo cp openhab.sh /etc/init.d sudo chmod 777 /etc/init.d/openhab.sh sudo update-rc.d -f openhab.sh defaults
Нам також потрібно встановити розширення OpenHAB MQTT, оскільки це протокол, який ми будемо використовувати для зв'язку зі світлодіодною стрічкою:
sudo wget https://bintray.com/artifact/download/openhab/bin/distribution-1.7.1-addons.zip sudo unzip distribution-1.7.1-addons.zip -d /addons sudo cp /addons/org.openhab.binding.mqtt-1.7.1.jar /opt/openhab/addons sudo cp /addons/org.openhab.persistence.mqtt-1.7.1.jar /opt/openhab/addons sudo rm distribution-1.7.1-addons.zip
Крок 4. Установка MQTT broker
Як було згадано, ми спілкуватимемося з нашою світлодіодною стрічкою, використовуючи протокол під назвою MQTT. Щоб налаштувати цей процес, нам потрібно встановити Mosquitto – брокер MQTT з відкритим вихідним кодом.
Щоб встановити Mosquitto, введіть у командному рядку такі команди:
sudo wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key sudo apt-key add mosquitto-repo.gpg.key cd /etc/apt/sources.list.d/ sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list sudo apt-get update && sudo apt-get install mosquitto
Крок 5. Встановлення файлів конфігурації OpenHAB
Нарешті, завантажте попередньо створені файли конфігурації OpenHAB (для завантаження – перейдіть за посиланням: OpenHAB configuration files) та встановіть їх у відповідні папки OpenHAB. Інструкція по установці розміщена в файлі README.
Крок 6. Розпаювання контактів ESP8266
Коли OpenHab налаштований на Raspberry Pi, настав час перейти до створення контролера стрічки NeoPixel. Плата Adafruit ESP8266 HUZZAH з підтримкою WiFi ідеально підходить для цього. Процесор ESP8266 від Espressif є мікроконтролером з тактовою частотою 80 МГц з повним інтерфейсом WiFi (як клієнт, так і точка доступу) і стеком TCP/IP з підтримкою DNS. Сам модуль сертифікований FCC і містить чіп ESP8266 з 64 КБ ОЗУ для інструкцій, 96 КБ ОЗУ для даних та 4 МБ QIO FLASH (32 мегабіти).
Отже, припаяйте до плати надані штирьові контакти, щоб можна було запрограмувати їх за допомогою адаптера FTDI.
Крок 7. Розпаювання перетворювача логічного рівня
Оскільки ESP8266 використовує логічний рівень 3,3 В замість необхідних для стрічки NeoPixel 5 В, необхідно буде припаяти між ними перетворювач логічного рівня.
На стороні низького рівня перетворювача припаяйте провід від контакту 2 від ESP до A1, інший від контакту 3V до LV і третій від GND до GND. На стороні високої напруги перетворювача припаяйте провід від контакту B1 до контакту даних NeoPixel (це смугастий провід на роз'ємі NeoPixel) та інший дріт від GND до GND. Припаяйте червоний провід до контакту HV на перетворювачі, а інший червоний провід до контакту V+ ESP.
Штировий кінець стрічки NeoPixel забезпечуватиме живлення для ESP, тому припаяйте червоний дріт від стрічки до червоних проводів, що йдуть від контактів V+ та HV, потім припаяйте чорний дріт до GND. Після цього підключіть стрічку NeoPixel за допомогою шнура, що додається, і переконайтеся, що ESP отримує живлення, натиснувши кнопку скидання, щоб побачити, чи блимає вбудований світлодіод.
Крок 8. Установка Arduino IDE
Коли все підключено, настав час прошити ESP за допомогою Arduino IDE. Спочатку нам потрібно зробити деякі зміни в Arduino IDE. Завантажте бібліотеку PubSubClient з https://github.com/Imroy/pubsubclient та розпакуйте папку в папку бібліотек Arduino.
Відкрийте IDE Arduino, потім перейдіть до Sketch > Include Library > Libraries Manager… та встановіть бібліотеку Adafruit NeoPixel.
Нарешті, ми додамо плату Adafruit HUZZAH ESP8266 до списку плат. Перейдіть до Arduino > «Налаштування», додайте «http://arduino.esp8266.com/stable/package_esp8266com_index.json» у полі «Додаткові URL-адреси диспетчера плат» та натисніть «OK». Перейдіть до Інструменти > Плата: > Менеджер плат... та встановіть пакет ESP8266.
Крок 9. Прошивка ESP8266
Завантажте та відкрийте наданий скетч Arduino: Arduino sketch, потім відредагуйте скетч, увімкнувши в нього налаштування мережі Wi-Fi та IP-адресу Pi. Ви можете перевірити IP-адресу вашого Pi, ввівши "ip addr show" у командний рядок.
Підключіть свій комп'ютер до ESP за допомогою кабелю FTDI та встановіть плату та порт у Arduino IDE. Переведіть ESP у режим програмування, утримуючи кнопку GPIO0 і натискаючи кнопку скидання, а потім завантажте свій код.
Після прошивки відкрийте послідовний монітор та переконайтеся, що плата успішно підключається до мережі WiFi.
Крок 10. Встановіть мобільний додаток OpenHAB
З налаштованим OpenHAB і підключеним живленням до стрічки NeoPixel настав час протестувати всю систему!
Завантажте програму OpenHAB на свій телефон або планшет (вона доступна як для Android, так і для iOS), потім відкрийте її та виберіть «Налаштування» у правому верхньому кутку. Змініть поле URL-адреси OpenHAB на IP-адресу вашого Pi, за яким слідує двокрапка і 8080. Вийдіть з меню, і ваш телефон повинен підключитися до OpenHAB, відкриваючи світлодіодний контролер.
Ви також можете керувати світлодіодами з будь-якого комп'ютера в тій же мережі (включаючи Pi), ввівши IP-адресу Pi, а потім /openhab.app?sitemap=home.
Якщо потрібно усунути проблеми, ви можете встановити програму Chrome під назвою MQTTLens, щоб переконатися, що OpenHAB надсилає повідомлення MQTT. Просто відредагуйте налаштування, щоб вони вказували на IP-адресу Pi, та додайте підписку на тему #, щоб бачити всі повідомлення MQTT, які надсилає Pi.
OpenHab досить універсальний, і ми лише трохи торкнулися його можливостей. Ви можете керувати пристроями за допомогою голосових команд, відстежувати сенсорні мережі і навіть настроювати правила автоматизації пристроїв електронною поштою або IFTTT. З його допомогою можна створювати інші класні пристрої, які підключаються до OpenHab і роблять ваш будинок ще технологічнішим.
OpenHab – відмінна та гнучка система для налаштування домашньої автоматизації, але далеко не єдина. Давайте розглянемо кілька найпопулярніших варіантів програмного забезпечення для використання в системах розумного будинка.
Варіанти програмного забезпечення для систем автоматизації на Raspberry Pi
Домашній помічник (Home Assistant) Raspberry Pi
Home assistant Raspberry Pi (Raspberry Pi - Home Assistant) – найкращий вибір програмного забезпечення для автоматизації розумного будинку Raspberry Pi з відкритим вихідним кодом. ОС Raspberry Pi для розумного будинку – це система, яка може керувати всім, від управління інтерфейсом домашнього помічника до процесу його установки.
Більш того, домашні смарт-пристрої також працюватимуть з такими продуктами, як Hue, Lifx, Google Home, Alexa, Eco-bee, Z-Wave, WeMo, KEATradfri, а також з багатьма саморобними пристроями, контрольованими за допомогою Python або MQTT.
Home assistant Raspberry Pi створює сценарії для перевірки елементів, яким потрібне дистанційне керування. Ці пристрої мають можливість керування і можуть виконувати такі функції, як запис телепередач, увімкнення та вимкнення світла та навіть сповіщення про телефонні дзвінки.
Є, як мінімум, два способи, як можна встановити Home Assistant на Raspberry Pi 4.
Перший спосіб – це завантажити образ SD карти, в якому знаходиться спеціальна операційна система HassOS, яка запускає Home Assistant. Тут плюс у тому що це дуже простий спосіб для встановлення Home Assistant: завантажити файл, за допомогою спеціальної програми записати цей файл на карту SD, і на цьому все. Документація про цей засіб.
Другий спосіб складніше:
- Потрібно завантажити образ операційної системи Raspbian та за допомогою спеціальної програми записати його на SD карту
- Встановити Docker
- Встановити Home Assistant
Але при використанні другого способу Raspberry Pi з'являється вже справжня операційна система в якій можна працювати стандартними способами.
Calaos – система домашньої автоматизації для Raspberry Pi
ОС для автоматизації розумного будинку (Calaos, Open Source Home Automation) із відкритим вихідним кодом. Її програмні засоби написані на C++ і містять демон сервера, сенсорний екран, веб-інтерфейс, мобільний додаток (iOS/Android), а також засоби налаштування та повноцінну ОС, яка дозволяє будь-якій людині створити повне рішення домашньої автоматизації.
Open HAB для Raspberry Pi.
ПЗ Open HAB (openHAB) було використано у наведеному проекті для Raspberry Pi. Повторимо, що open Home Automation Bus – це програмне забезпечення для домашньої автоматизації з відкритим вихідним кодом, написане на Java. Воно розгортається локально та підключається до пристроїв та служб від різних постачальників. У вигляді модулів OSGi є близько 300 розширень, що говорить про те, що воно є одним з найбільш універсальних і популярних варіантів систем програмного забезпечення для домашньої атоматизації.
Висновки.
Користувачеві, далекому від самостійного складання систем автоматизації для дому може здатися дуже складним такий довгий шлях, який необхідно пройти для того, щоб лише регулювати світло на світлодіодній стрічці. Для цих завдань можна купити готовий пристрій (наприклад, SONOFF L2 Lite Smart LED Light Strip-5M - EU чи SONOFF L1 Smart LED Light Strip-5M - EU) і все, що потрібно буде зробити – це прикрутити контакти стрічки, вставити шнур живлення в розетку і завантажити спеціалізований мобільний додаток eWeLink.
Але описаним вище проектом ми хотіли лише показати напрямок для вашого подальшого руху, оскільки реалізовані вище кроки дозволяють пройти більшу частину шляху у створенні та налаштуванні ваших індивідуальних і складніших систем. Цей приклад – це фундамент, на якому можна реалізувати практично необмежену кількість ідей з автоматизації вашого будинку.