Установка и настройка платформы «Умный дом».
Тема «Умного дома» всегда интересовала большое количество людей. На текущий момент, есть все средства для самостоятельного создания такой системы и индивидуальной настройки под себя. Во-первых, это доступные «умные» устройства, датчики, мини-компьютеры, во-вторых, наличие в открытом доступе платформ для объединения устройств, создания правил их взаимодействия.
Сервер.
Тут выбор за Raspberry PI 3В, как наиболее распространённого мини-компьютера, со значительно развитой экосистемой поддержки.
Процессор ARM11 [ARMv6] Broadcom BCM2837, Количество ядер – 4, Частота процессора - 1200 МГц Оперативная память SDRAM 1Гб Интерфейсы HDMI, GPIO, USB 2.0 x4 Модуль связи Wi-Fi 2.4Ггц, Ethernet (RJ-45) 100 Мбит/с, Bluetooth 4.1Также, интересна возможность создания кластерного сервера на базе нескольких параллельно-взаимодействующих мини-компьютеров.
Программное обеспечение.
OpenHAB 2 – open source проект, с развитым сообществом. Основан на Фреймворке Eclipse SmartHome.
Установка базового программного обеспечения.
В качестве постоянной памяти выступает micro SD 32Гб.
Далее скачивается дистрибутив raspbian, флешка форматируется и на нее записывается iso-образ. Для этих целей удобно использовать Win32 disk imager.
Некоторые базовые команды Debian.
ps -ef list of process kill -9 -pid kill process apt-get update Обновление индекса пакетов. Индекс пакетов APT по существу база данных доступных пакетов из репозиториев, определенных в файле /etc/apt/sources.list и каталоге /etc/apt/sources.list.d apt-get upgrade Обновление пакетов apt-get install Чтобы убрать скринсейвер:
В файле "/etc/lightdm/lightdm.conf" В секции [SeatDefaults] добавить
Xserver -comand=x -s 0 -dpmsПодключение wifi.
Самый простой способ подключить временно монитор и клавиатуру и ввести ssid и пароль.
VNC Server.
1. Через конфигурацию сервера.
2. По результатам практического использования наиболее стабильный вариант.$sudo apt-get install tightvncserver $vncserverНадо постоянно запускать!!!
Samba.
Для удобного сетевого обмена файлами. Также использую для редактирования тестовых конфигов и просмотра логов из других операционных систем.
$sudo apt-get install samba samba-common-bin $sudo apt-get updateКонфигурирование Samba.
Расположение файла конфигурации
/etc/samba/smb.confДля добавления сетевой папки, в конец файла конфигурации нужно добавить:
[share-openhab-server] Comment = share Path = /home/pi/Share Browseable = yes Writeable = Yes only guest = no create mask = 0777 directory mask = 0777 Public = yes Guest ok = yesПерезагрузка Samba:
sudo /etc/init.d/samba restartPython
Устанавливаем требуемые библиотеки:
$ sudo apt-get update $ sudo apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-devСкачиваем и устанавливаем Python:
$ wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz $ tar xf Python-3.6.5.tar.xz $ cd Python-3.6.5 $ ./configure $ make $ sudo make altinstallУстановка OpenHAB 2
Прежде всего необходимо установить виртуальную машину Java
$ sudo apt-get install oracle-java8-jdkДобавляем openHAB 2 Bintray ключ репозитория в менеджер пакетов и позволяем приложению Apt использовать HTTPS протокол и собственно установка.
$ wget -qO - 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab'|sudo apt-key add - $ sudo apt-get install apt-transport-https $ echo 'deb https://dl.bintray.com/openhab/apt-repo2 stable main'| sudo tee /etc/apt/sources.list.d/openhab2.list $ sudo apt-get update $ sudo apt-get install openhab2 $ sudo apt-get install openhab2-addonsЕсли все прошло хорошо, то добавим openHAB в автозапуск:
$ sudo /etc/init.d/openhab2 start $ sudo /etc/init.d/openhab2 status $ sudo update-rc.d openhab2 defaultsДля открытия стартовой страницы openHAB 2
http://
Расположение конфигурационных файлов:
OpenHAB application /usr/share/openhab2 Additional add-on files /usr/share/openhab2/addons Site configuration /etc/openhab2 Log files /var/log/openhab2 Service configuration /etc/default/openhab2Установка Mosquitto
Протокол MQTT является наиболее популярным протоколом M2M взаимодействий. Работа протокола осуществляется по технологии издатель – подписчик. В качестве связующего звена выступает брокер сообщений, поэтому приступим к его установке.
$ sudo apt-get update $ sudo apt-get upgradeДобавляем ключ и обновляем репозиторий. Вводим эти строчки по очереди. Иногда надо будет вводить пароль от вашего пользователя и нажимать Y для согласия с установкой.
$ 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-jessie.list $ sudo apt-get updateУстанавливаем MQTT брокер (сервер):
$ sudo apt-get install mosquittoУстанавливаем MQTT клиент:
$ sudo apt-get install mosquitto mosquitto-clientsПосле установки mosquitto сервер будет автоматически запускаться при загрузке системы.
Проверяем работу MQTT брокера
Для проверки MQTT брокера нужен MQTT клиент. Это может быть смартфон с MQTT клиентом или локально установленные клиенты. Первый будет подписываться на топик hello/world, второй клиент отправит в этот топик сообщение и первый его получил.
Итак, на первом клиенте, подписываемся на канал «hello/world»:
$ mosquitto_sub -d -t hello/worldНа втором, подключаемся к нашему серверу и отправляем сообщение в канал «hello/world»:
$ mosquitto_pub -d -t hello/world -m "Hello from test client!"В результате в первом окне появится сообщение «Hello from test client!».
Добавляем Mosquitto в автозапуск
$ sudo update-rc.d mosquitto defaults $ sudo /etc/init.d/mosquitto start