Умный замок дома: как сделать своими руками на базе набора Raspberry Pi

Умный замок дома: как сделать своими руками на базе набора Raspberry Pi

Системы электронного управления входными дверями и другими подобными сооружениями активно внедряются и применяются на практике. Яркий пример использования умных замков отмечается в банковском секторе, в коммерческой среде и других областях. Теперь всё чаще умный замок становится интересен домовладельцам, выступающим собственниками, как частных домов, так и городских квартир. Что же, учитывая развитие электронных технологий, сделать умный замок дома своими руками – работа вполне выполнимая. Рассмотрим один из возможных вариантов, где основой управления доступом является распространённый набор электроники – Raspberry Pi3 (Pi4 или аналогичный).

Система электронного доступа – умный замок дома

Рассматриваемая ниже система электронного доступа в дом, исполняемая своими руками, уникальна в своём роде тем, что предлагает пользователю трёхступенчатую аутентификацию. Для управления доступом (открытия/закрытия входной двери) посредством предлагаемого проекта на Raspberry Pi3 потребуется функционал:

  1. Считывание RFID брелоком.
  2. Набор шестизначного кода.
  3. Генерация одноразового кода доступа.

По сути, уже имеет место «трёхфакторная» аутентификация. Однако код программного обеспечения допустимо модифицировать, добавив к уже существующим функциям, например, сканер отпечатков пальцев или сканер сетчатки глаза. Тогда домашняя система приобретает степень доступа в прямом смысле — на уровне крутой банковской структуры. Проект явно заманчивый, в особенности для творческих личностей.

Список «физической» электроники, необходимой под реализацию проекта умного домашнего замка, составляют следующие модули и комплектующие элементы:

  • сборка Raspberry Pi3 (Pi4) с модулем Wi-Fi;
  • корпус под Raspberry Pi для крепления к двери;
  • плата расширения GPIO;
  • ленточные проводники для подключения GPIO и дисплея;
  • релейный коммутатор;
  • электромеханическая (электромагнитная) дверная задвижка.

Также, скорее всего, понадобится блок питания компьютера вместе с кабелем питания (для Raspberry Pi3, электромагнита дверной задвижки), проводники для подключения реле. Естественно, установка дверного умного замка своими руками требует инструментов:

  1. Отвёрток разной конфигурации.
  2. Плоскогубцев и кусачек.
  3. Электрический паяльник с аксессуарами пайки.
  4. Измерительный электронный прибор (тестер).
  5. Механический лобзик.
  6. Электродрель, пистолет монтажный и прочее.

Если всё отмеченное выше имеется в наличии, есть повод для начала производства работ – устройства умного замка входной двери дома своими руками.

Установка и настройка сенсорного ЖК-дисплея Raspberry Pi3

Начальный этап работ требует сосредоточить внимание на сенсорном ЖК-дисплее контроллера. В зависимости от используемой модели сборки Raspberry Pi3, могут использоваться драйвера установки или образ операционной системы для записи на SD-карту. В последнем случае логично применить, например, «Win32 Disk Imager» для записи образа.

PUSH-PULL

Умный замок дома на контроллере Raspbery Pi с дисплеем
Популярный контроллер Raspberry Pi3, дополненный дисплеем с функцией сенсорного контакта – идеальный вариант для применения в деле конструирования умного замка входной домашней двери

Записанная карта «microSD» подключается к Raspberry Pi3 с последующей установкой ЖК-дисплея на порты GPIO. Затем, через кабель питания «microUSB» выполняется загрузка контроллера для проверки работы дисплея. Как правило, стандартной ориентацией дисплея является альбомная ориентация. Однако для виртуальной клавиатуры умного домашнего замка требуется портретная ориентация экрана.

Чтобы достичь нужного результата, придётся изменить конфигурационный файл контроллера. Подключить контроллер к сети через Wi-Fi или Ethernet протокол, открыть доступ для редакции файла «config.txt», что находится внутри загрузочного каталога, используя команду:

$ sudo nano /boot/config.txt

Этим файлом определяется ориентация дисплея контроллера. Здесь нужно отыскать строку текста «dtoverlay = waveshare35a». К этой строке добавляется точка с запятой, после чего добавляется запись «rotate = 180». Завершить редакцию, сохранить изменения.

Для соответствия сенсорного экрана конфигурации дисплея потребуется также отредактировать файл конфигурации «99-calibration.conf»:

$ sudo nano /etc/X11/xorg.conf.d/99-calibration.conf

Добравшись до содержимого файла конфигурации, необходимо изменить параметр «SwapAxis» — изменить значение 1 на 0. После перезагрузки контроллера дисплей должен сменить ориентацию на портретное положение.

Установка базы данных MySQL и веб-сервера Apache

База данных содержит список контроля доступа для системы умного замка на входе в дом, а также журнал всех успешных и неудачных попыток доступа. Необходимо установить полный стёк LAMP, обеспечив тем самым работу сервиса «phpMyAdmin» для манипуляций с базой данных.

ВРЕЗНОЙ

Умный замок дома и порты контроллера Raspbery Pi для работы
Порты контроллера, которые потребуются для работы с системой умного замка: 1 – клавиатурный и для мыши (USB); 2 – микрофонный; 3 – динамик; 4 – подключение HDMI монитора; 5 – питание через USB; 6 – порт для карты «SD-micro»

Прежде всего, следует инсталлировать веб-сервер «Apache» командами:

$ sudo apt-get update

$ sudo apt-get install apache2

На следующем шаге выполняется установка PHP и MySQL:

$ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

$ sudo apt-get install mysql-server

Далее останется перезапустить сервер, инсталлировать «phpMyAdmin»:

$ sudo service apache2 restart

$ sudo apt-get install phpmyadmin php-mbstring php-gettext

Теперь с помощью «phpMyAdmin» появилась возможность автоматически устанавливать и настраивать собственную базу данных умного замка через пароль «root», заданный при установке MySQL, и добавлять пользователей.

Установка скрипта «Python» настройка таблиц базы данных

На следующем этапе устройства умного замка дома нужно установить скрипт «Python», благодаря которому система управления умным замком связывается воедино. Через скрипт осуществляется пользовательский ввод с брелка, сенсорного экрана, выполняется обращение к базе данных.

APPLE HOMEKIT

Умный замок дома и тестирование Raspbery Pi на корректную работу дисплея
Тестирование устройства на работу с дисплеем и настройка конфигурации экрана под требуемый вариант положения картинки выполняется в открытом виде, когда устройство ещё не помещено в корпус на двери

Скриптом также используется американский сервис облачной коммуникационной платформы «Twilio» для отправки пользователю SMS сообщений. Однако можно использовать отечественные платформы, например, «SMSC» (Новосибирский SMS-Центр), но тогда придётся править скрипт.

Скрипт «Python» и пустые таблицы базы данных доступны для загрузки на «GitHub». После импорта файла базы данных через «phpMyAdmin», в базе появляются три таблицы.

Три таблицы базы данных умного замка входной двери

Первая таблица именуется «access_list» и содержит информацию о каждом, кто имеет доступ к области, защищённой умным замком. Здесь добавляются:

  • имена пользователей,
  • номера RFID-кода брелоков,
  • PIN-коды,
  • номера мобильных телефонов для авторизации по SMS.

Допускается включение файла изображения, чтобы на экране приветствия отображалась лицевая часть человека (идентифицируемая личность). Поддерживаются графические файлы с расширением «GIF», которые сохраняются в том же каталоге, что и скрипт «Python».

Вторая таблица именуется «access_log», куда записываются  попытки (успешные и неудачные) доступа к системе. При этом записываются любые коды RFID, представленные сканеру, независимо от иных операций, ввода PIN-кода, отправки одноразового кода и т. д. Эта регистрация информации видится полезной как для диагностики проблем с доступом законных пользователей, так и для сбора доказательств несанкционированного доступа.

 

Третья таблица содержит данные учётной записи сервиса «Twilio», которые используются для отправки текстового сообщения, позволяющего завершить часть процесса аутентификации до того, как умный замок разблокирован. Загрузив скрипт «Python» в каталог «/ home» пользователя Raspberry Pi, следует убедиться в наличии всех зависимостей, необходимых скрипту.

Потребуется обеспечить автозагрузку скрипта «Python» в момент загрузки контроллера Raspberry Pi3. Автоматическая загрузка скрипта нужна при каждом запуске контроллера. Обеспечить автозагрузку поможет добавление к строке конфигурационного файла автозапуска команда:

sudo nano ~ / .config / lxsession / LXDE-pi /autostart

Затем добавить строку: @sudo python lock.py

После сохранения изменений можно выйти из системы.

Соединение платы расширения GPIO реле и RFID-ридера

После выполнения всех необходимых настроек на Raspberry Pi3, контроллер помещают в защитный корпус. Для обеспечения доступа к портам GPIO используется короткий 26-контактный ленточный кабель. Также контроллер необходимо дополнить платой расширения GPIO. Плюс к этому на релейный коммуникатор потребуется подвод питающего напряжения – 5 вольт. Напряжение допускается взять непосредственно с порта GPIO или же можно применить индивидуальный источник питания.

RFID HOTEL

Умный замок дома - конфигурация портов GPIO Raspberry Pi
Конфигурация портов GPIO контроллера, доступ на которые обеспечивается подключением платы расширения. Эти порты обеспечивают подключение необходимых устройств умного замка дома для аутентификации пользователя

Рекомендуется источник питания на два напряжения (5 / 12 вольт), от которого одновременное питание получит контроллер, электронный умный дверной замок, коммуникационное реле. Здесь удачно подходит блок питания стандартного настольного компьютера, где есть все указанные напряжения, а также ряд других напряжений, что может потребоваться впоследствии.

Наконец, пришло время глобальной проверки умного замка. Нужно подключить всё оборудование, включая считыватель RFID. Включить систему, взять в руки RFID-брелок и поднести к области считывания. Затем вводится PIN-код, например, «123456», после чего система генерирует случайный одноразовый код доступа с отправкой на телефон текстового сообщения.

Нужно ввести полученный через SMS код в контроллер, после чего на короткое время включается реле, через которое управляется щеколда умного замка входной двери. То есть когда механическая часть умного замка будет смонтирована, реле активирует умный замок после аутентификации – значит, вход в дом будет открыт. Как правило, особых сложностей с коммутацией электромеханических щеколд умных замков не возникает. Достаточно подключить через реле питающие проводники.

Заключительный штрих

Представленная публикация не претендует на исключительно точную инструкцию – как установить в доме умный замок на входных дверях или на инструкцию организации управления доступом. Это всего лишь показательный пример, каким образом можно установить и задействовать умный замок на входной двери жилища своими руками, используя доступные электронные модули. То есть материал – база, на которую есть смысл опереться, изготавливая самостоятельно современную конструкцию двери.


При помощи информации: HackaDay