Съдържание:
- Стъпка 1: Неща, от които се нуждаете
- Стъпка 2: Подгответе Raspberry Pi за 433 MHz
- Стъпка 3: Настройка на Smart Home Server
- Стъпка 4: Настройка на клиенти
- Стъпка 5: Заключение
Видео: Умен дом от Raspberry Pi: 5 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
Вече има няколко продукта, които правят вашия апартамент по -интелигентен, но повечето от тях са собствени решения. Но защо имате нужда от интернет връзка, за да превключите лампата на вашия смартфон? Това беше една от причините за мен да създам собствено решение за интелигентен дом.
Програмирах сървърно приложение, което работи на Raspberry Pi. Това е проект с отворен код, базиран на java, който ви позволява да конфигурирате апартамента си и да свържете няколко клиенти и „контролируеми единици“. Показвам решение, което се справя с превключвателите на захранването с rc, възпроизвежда музика и видео на Raspberry Pi, показва състоянието на смарт огледало и може да се контролира от приложение за Android и две приложения с камъчета. Източникът се хоства на github
Стъпка 1: Неща, от които се нуждаете
За да настроите интелигентния дом, имате нужда от следните „съставки“
- Raspberry Pi поне модел 2 B
- 433 MHz изпращач, нещо подобно
- 3 джъмперни кабела, свързващи Raspberry Pi и подателя
- Някои гнезда за радиоуправление на 433 MHz
- Смартфон с Android за стартиране на клиентското приложение
Освен това можете да разширите интелигентния дом с още допълнителни клиенти и единици като този
- Интелигентен часовник с камъчета
- Smart Mirror, вижте този проект
- 433 MHz контролирана LED лента, вижте това
Стъпка 2: Подгответе Raspberry Pi за 433 MHz
В следващите стъпки имате нужда от достъп до командния ред на Raspberry Pi. За да получите достъп, можете да прочетете тази инструкция
Свържете 433 MHz подателя с Raspberry Pi, както е показано на снимката по -горе
- GND (подател) 6 GND (raspi)
- VCC (подател) 2 +5V (raspi)
- ДАННИ (подател) 11 GPIO 17 (raspi)
Моля, свържете и 17 см антена към щифта ANT (подател). Това значително увеличава сигнала.
Тъй като имаме нужда от някои библиотеки от други git хранилища, трябва да инсталираме git
sudo apt-get install git-core -y
За да настроим Raspberry Pi за 433 MHz комуникация, се нуждаем от библиотеката Pi за по -добро боравене с GPIO.
git клониране git: //git.drogon.net/wiringPi
cd окабеляванеPi./build
След това се нуждаем от библиотека, която реализира обикновено протоколи за захранване с rc.
git клониране git: //github.com/dabastynator/rcswitch-pi.git
cd rcswitch-pi правят cp изпращане/usr/bin/
Изпълнимият „изпрати“ви позволява да изпращате кодове за превключване на повечето от наличните захранвания.
В моята настройка на Smart Home също имам rc LED лента, описана от тази инструкция: https://www.instructables.com/id/RC-contlined-LED… За да зададете цветове за тази LED лента, имате нужда от друг изпращащ изпълним файл, който ви позволява за изпращане на целочислена стойност (Кодира цвета).
Затова компилирайте sendInt.cpp в репо rcswitch-pi и го преместете в/usr/bin/sendInt.
sudo g ++ sendInt.cpp -o/usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch -pi -lwiringPi
Сега трябва да можете да изпращате rc команди с двата изпълними файла/usr/bin/send и/usr/bin/sendInt
Стъпка 3: Настройка на Smart Home Server
Първо трябва да инсталирате няколко пакета. Приложението Smart Home е базирано на java и работи добре с openjdk-11. Не съм сигурен за други среди за изпълнение на java. Mplayer е минималистичен музикален плейър от командния ред. Omxplayer използва графиката Raspberry Pi за видео кодиране, така че това трябва да се използва за видеоклипове. Програмата mrav е необходима за изграждане на java приложението.
sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y
Инсталирайте директории за jar файла и за регистрационни файлове.
sudo mkdir /opt /neo
sudo chown pi: pi/opt/neo mkdir/home/pi/Дневници
Конфигурирайте началния скрипт за автоматично стартиране на приложението при зареждане. Затова копирайте прикачения скрипт за интелигентен дом в директорията /etc/init.d/ Аз също създадох скрипт в/usr/bin/, който изпраща команди към прикачения скрипт, така че просто влизам в smart-home в конзолата, за да изпълнявам команди.
sudo cp smart-home /etc/init.d/smart-home
sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#!/bin/bash'>/usr/bin/smart -home" sudo sh -c "echo '/etc/init. d/smart-home / $ 1 '>>/usr/bin/smart-home "sudo chmod +x/usr/bin/smart-home sudo update-rc.d по подразбиране за интелигентен дом
Сега е време да проверите хранилището и да създадете приложението. Ако не искате да го компилирате сами, можете просто да изтеглите приложения smarthome.jar и да го преместите в/opt/neo/
git clone [email protected]: dabastynator/SmartHome.git
ant -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/*/opt/neo/
Опитайте да стартирате интелигентния дом и проверете лог файла. За да получите достъп за GPIO, приложението трябва да се стартира от sudo.
старт на sudo smart-home
cat logs/smarthome.log
Трябва да видите съобщението за грешка Конфигурационният файл не съществува, което ни насочва към следващата стъпка. Хранилището съдържа readme, което обяснява конфигурационния файл. Можете да видите това добре представено в github:
Копирайте този xml в /home/pi/controlcenter.xml, след това задайте местоположението на вашия медиен сървър и променете съдържанието според нуждите ви. След като приключите с конфигурирането и рестартирате интелигентния дом (sudo smart-home restart), трябва да видите следното съдържание в smarthome.log
24.05-08: 26 ДИСТАНЦИОННА ИНФОРМАЦИЯ от de.neo.smarthome.cronjob. CronJob@15aeb7ab: График cron job
24.05-08: 26 ДИСТАНЦИОННА ИНФОРМАЦИЯ от [trigger.light]: Изчакайте 79391760 ms за изпълнение 24.05-08: 26 RMI ИНФОРМАЦИЯ от Добавяне на уеб-манипулатор (5061/ledstrip) 24.05-08: 26 RMI ИНФОРМАЦИЯ от Добавяне на уеб-манипулатор (5061 /действие) 24.05-08: 26 RMI ИНФОРМАЦИЯ от Add web-handler (5061/mediaserver) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/switch) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/controlcenter) 24.05-08: 26 RMI ИНФОРМАЦИЯ от Стартиране на уеб сървър с 5 манипулатора (localhost: 5061) 24.05-08: 26 ДИСТАНЦИОННА ИНФОРМАЦИЯ от Controlcenter: Добавяне на 1. контролен блок: MyUnit (xyz)…
Уеб сървърът вече работи:-)
Стъпка 4: Настройка на клиенти
Android клиент за смартфон
Git хранилището за приложението smart-home също съдържа източника за android клиента, така че можете да го компилирате сами. Но прикачих APK за тази стъпка, което го улеснява. Първият път, когато стартирате приложението, той ви пита за сървър, както в първото изображение по -горе. Въведете URL адреса на сървъра и маркера за сигурност.
Това трябва да е всичко. Вече имате достъп до сървъра и управлявате апартамента си, пускате музика и гледате видеоклипове от разстояние на вашия Raspberry Pi. Имайте предвид, че можете да добавяте джаджи към началния си екран, което прави превключвателите и управлението на музиката по-достъпни.
Клиент на Smartwatch Pebble
Източникът за двата клиента с камъчета се хоства на github. Едно приложение показва текущия възпроизвеждан музикален файл: https://github.com/dabastynator/PebbleRemoteMusic… Това също ви позволява да правите пауза/възпроизвеждане и увеличаване/намаляване на звука.
Второто приложение задейства три действия: https://github.com/dabastynator/PebbleControl Имената на тригера са: mobile.come_home mobile.leaving и mobile.go_to_bed. Ако дефинирате правила за събития за този тригер във вашия конфигурационен xml, вие ги задействате от часовника си.
Всичко е с отворен код, но не е нужно да го компилирате сами, прикачих и приложенията с камъчета. Изтеглете PBW с вашия смартфон, телефонът ви трябва да ги инсталира на часовника ви. Приложенията с камъчета се нуждаят от конфигурации, за да говорят със сървъра. Прикачих екранна снимка как изглеждат настройките ми.
Клиент Garmin на Smartwatch
Наличен е и клиент за Garmin Smartwatches. Приложението е достъпно в магазина за приложения на garmin connect и може да бъде инсталирано тук:
apps.garmin.com/en-US/apps/c745527d-f2af-4…
Клиент на Smart Mirror
Вече създадох инструкция, която обяснява как да създадете Smart Mirror, вижте това https://www.instructables.com/id/Smart-Mirror-by-R…. Изходният код също се хоства на github: https:// github.com/dabastynator/SmartMirror. Софтуерът на Smart Mirror чете конфигурацията от файла smart_config.js, който не е част от хранилището на git. Съдържанието на конфигурационния файл трябва да изглежда така:
var mOpenWeatherKey = 'your-open-wheather-key';
var mSecurity = 'your-security-token';
Също така трябва да коригирате първите два реда на файла smart_mirror.js, за да посочите ip адреса на сървъра на Smart Home и местоположението, за да получите правилното време.
Повече клиенти
Сървърното приложение е прост уеб сървър. Това ви позволява да задействате действия от всеки клиент, който искате чрез прости уеб обаждания. В демонстрационното видео показвам задачата на приложението за Android в комбинация с AutoVoice. Това ми дава възможност да задействам събития с прости гласови команди. Например „ok google, time to sleep“може да задейства mobile.go_to_bed. Но можете също така да правите уеб разговори например от IFTTT. Какво ще кажете за жълта мигаща LED лента за известие по имейл?
Можете да поискате от сървъра възможни уеб обаждания, като следните връзки (заменете ip, port и token от вашата конфигурация)
localhost: 5061/controlcenter/api? token = secu …
localhost: 5061/action/api? token = security-to…
localhost: 5061/mediaserver/api? token = securi …
localhost: 5061/switch/api? token = security-to…
localhost: 5061/ledstrip/api? token = security-…
Стъпка 5: Заключение
Все още има някои функции, които трябва да се внедрят: Тъй като сървърът предоставя само прост уеб-api клиент, провежда много анкети. За да намаля анкетата, искам интеграция с MQTT за по -добро уведомяване. Също така wifi захранванията трябва да работят по -надеждно от rc захранванията, тъй като rc е само еднопосочна комуникация.
Много забавно е разработването за този проект. И е доста готино да управлявате апартамента от няколко устройства, дори ако интернет връзката се прекъсне.
Препоръчано:
КАМЕНЕН LCD с Умен дом: 5 стъпки
STONE LCD с Smart Home: Днес получих дисплея на STONE със сериен порт, който може да комуникира през серийния порт на MCU, а логическият дизайн на потребителския интерфейс на този дисплей може да бъде проектиран директно с помощта на софтуера VGUS, предоставен на официалния уебсайт на STONE, който е много удобство
Умен дом с Arduino: 11 стъпки (със снимки)
Умен дом с Arduino: Здравейте, Ще ви покажа как да изградите свой собствен умен дом. Той показва температурата както отвътре, така и отвън, ако прозорецът е отворен или затворен, показва кога вали и сигнализира, когато PIR сензорът се движи. Направих приложението на android за
Умен дом с Arduino MKR1000 и M.I.T. Приложение за Android: 4 стъпки
Умен дом с Arduino MKR1000 и M.I.T. Приложение за Android: В този урок описвам как да подобрите вашия интелигентен дом само с няколко компонента. Сърцето на този интелигентен дом е дъската Arduino MKR1000, управлявана с приложение, проектирано на уебсайта за разработка на M.I.T. (Институт Масачузетс
HackerBox 0054: Умен дом: 8 стъпки
HackerBox 0054: Умен дом: Поздрави за хакерите на HackerBox по целия свят! HackerBox 0054 изследва домашната автоматизация чрез интелигентни ключове, сензори и др. Конфигурирайте Sonoff WiFi интелигентни превключватели. Променете интелигентните превключватели, за да добавите програмни заглавки и алтернативен фърмуер на флаш
Умен дом, използващ Amazon Alexa: 5 стъпки
Интелигентен дом, използващ Amazon Alexa: Основната идея на този проект е да се управлява електронен уред с помощта на Amazon Alexa или чрез неговото приложение от всяка точка на света. За това ще използваме Node MCU V1.0. Целият код ще бъде на моята страница на Github. Ако в даден момент не го направите