Автоматическое открывание двери с помощью Arduino
Наверняка вы в своей жизни неоднократно уже видели автоматически открывающиеся двери, например, в торговых центрах или других коммерческих зданиях. Эти двери автоматически открываются когда кто-нибудь к ним подходит и закрываются спустя некоторое время. Для реализации этой функции можно использовать различные устройства, например, инфракрасный детектор движения (PIR sensor), радар, лазерный датчик и т.д. В нашем проекте мы будем использовать инфракрасный детектор движения.
Принцип работы инфракрасного детектора движения (PIR sensor) основан на обнаружении инфракрасной энергии (тепловой), излучаемой человеческим телом. Когда кто-нибудь подходит к двери, инфракрасный детектор движения обнаруживает изменение инфракрасной энергии и дает сигнал Arduino на открытие двери.
Необходимые компоненты
Инфракрасный детектор движения
Инфракрасный детектор движения обнаруживает любые изменения тепловой энергии и всегда, когда он это обнаруживает, он устанавливает на своем выходном контакте (output PIN) высокий уровень (HIGH). Подобные детекторы также еще называют пироэлектрическими датчиками.
Необходимо отметить, что любой объект при нагревании излучает некоторое количество инфракрасной тепловой энергии. И человек в этом плане не исключение – его тело также излучает эту энергию из-за того что нагрето. Инфракрасный детектор движения обнаруживает даже небольшие изменения в инфракрасной тепловой энергии. Даже когда какой то объект перемещается вблизи данного детектора он все равно генерирует инфракрасную тепловую энергию из-за трения с воздухом – и детектор может обнаружить это.
Основным компонентом инфракрасного детектора движения является пироэлектрический датчик, показанный на нижеприведенном рисунке – прямоугольный кристалл под пластиковой крышкой. Также детектор содержит микросхему BISS0001, которая обрабатывает сигнал с пироэлектрического датчика и формирует соответственно на выходном контакте напряжение высокого (HIGH) или низкого (LOW) уровня, несколько резисторов, конденсаторов и других компонентов.
Пироэлектрический датчик разделен на две половины – когда нет никакого движения, обе половины находятся в одинаковом состоянии, то есть каждая из них улавливает одинаковое количество инфракрасной тепловой энергии. Когда кто-нибудь (человек, к примеру) оказывается в поле зрения первой половины, инфракрасный уровень первой половины становится больше чем второй, соответственно, датчик реагирует на это изменением уровня на своем выходном контакте.
Пироэлектрический датчик накрыт пластиковой крышкой, которая состоит из массива линз Френеля. Эти линзы изогнуты таким образом, чтобы поле действия датчика было как можно шире.
Работа схемы
Схема устройства представлена на следующем рисунке.

Исходный код программы
В нашем устройстве мы используем только цифровые входы и выходы Arduino. Функция DigitalRead используется для считывания состояния выходного контакта инфракрасного детектора движения.
После этого если инфракрасный детектор движения обнаруживает какое либо движение дается соответствующая команда на открытие двери, закрытие двери или остановку двери.
Как подключить геркон к Arduino
Название «геркон» происходит от словосочетания «герметичный контакт». И это объясняет его устройство. По сути, геркон – это два разомкнутых (или замкнутых) контакта, находящихся в вакуумной колбе, которые меняют своё состояние на противоположное при воздействии на них магнитного поля. Герконы – очень популярные датчики, которые используются во многих задачах. Это и контроль открытия/закрытия дверей, разнообразные счётчики срабатываний, счётчики скорости и т.д. Давайте посмотрим, как подключить геркон к Arduino и посмотрим, как он работает.
Инструкция по подключению геркона к Arduino
1 Схема подключениягеркона к Arduino
Используем вот такой модуль с герконом. Подключим его к Arduino по приведённой схеме. Питание осуществляется от 5 В или от 3,3 В. Сигнал подключим к цифровому пину D2.
Модуль с герконом содержит переменный резистор номиналом 10 кОм. Этим резистором можно установить порог срабатывания геркона и таким образом отрегулировать чувствительность. Также модуль содержит компаратор LM393 для генерирования цифрового сигнала при срабатывании магнитного датчика.

2 Скетч обработкисрабатывания геркона
Напишем скетч обработки срабатывания геркона. Тут всё просто.
Задаём номер пина, к которому подключаем выход модуля – «2», и включаем его на «прослушку». Активируем подтягивающий резистор на ножке «2». Задаём 13 пин в качестве выходного. Включаем в работу последовательный порт на скорости 9600 бод. А затем каждые 20 миллисекунд считываем показания геркона и выдаём значение в порт. Если геркон разомкнут – выводится «1», если замкнут – выводится «0». Кроме того, светодиод на 13-ой ножке Arduino светится, пока замкнуты контакты геркона.
Обратите внимание на инверсию считываемого с датчика сигнала.
3 Проверка работыдатчика с герконом
Подключим питание к Arduino. На модуле загорится светодиод, сигнализирующий о наличии питания модуля.
Теперь поднесём к геркону постоянный магнит – контакты геркона замкнутся, и загорится светодиод, показывающий срабатывание геркона. Снова уберём магнит – геркон разомкнётся, и светодиод погаснет. Если мы включим монитор последовательного порта, то увидим срабатывания геркона в виде нулей среди потока единиц при разомкнутом контакте.

4 Подключение герконак Arduino напрямую
Возьмём обычный геркон, без модуля (например, вот такой), и подключим его к Arduino. Геркон подключается аналогично кнопке. Код скетча останется таким же.
Соберём схему как на иллюстрации, включим питание Arduino. Если поднести постоянный магнит к геркону – светодиод Arduino загорится и будет светить пока замкнуты контакты геркона.

С помощью геркона можно сделать, например, датчик открытия двери или окна, датчик определения скорости вращения колеса или датчик уровня воды, и много чего ещё. Но геркон, всё же, является электромеханическим устройством, и срок его эксплуатации зависит от интенсивности использования. Поэтому можно использовать вместо геркона магнитный датчик Холла, о чём рассказывается в этой статье.
Поделиться
Related items
More in this category:
11 comments
как подключить 2 (два) геркона на одновременную работу и передать данные о состоянии герконов с помощью nRF24LO1нужен скетчь ( NANO )
Спасибо ВАМ, я тока начинаю с ардуино, а как будет выглядеть скетчь на два геркона исключающее дребезг контактов
Толик, геркон это, по сути, кнопка. Как подключить к Arduino кнопку без дребезга, было рассказано в этой статье: https://soltau.ru/index.php/arduino/item/376-kak-podklyuchit-knopku-k-arduino
aave1 Большое спасибо, попробую переписать код..
Чингис, добрый день! Ваш проект интересный, но связан со сферой жизни и здоровья. Поэтому использовать Ардуино в таких целях я бы не стал. А если бы и стал, то, по крайней мере, нужно написать надёжную программу и протестировать её в различных ситуациях, в том числе и нештатных. Это занимает время и немалое. Поэтому лучше обратитесь к профессионалам или купите профессиональное оборудование для этой цели.
Здравствуйте. Заинтересовался Arduino. Подскажите, можно ли датчик открытия двери подключить к Arduino с модулем Wi-Fi для дальнейшей обработки этого сигнала в компьютерной программе по своему усмотрению? Заранее спасибо!
Как подключить геркон к Arduino
Название «геркон» происходит от словосочетания «герметичный контакт». И это объясняет его устройство. По сути, геркон – это два разомкнутых (или замкнутых) контакта, находящихся в вакуумной колбе, которые меняют своё состояние на противоположное при воздействии на них магнитного поля. Герконы – очень популярные датчики, которые используются во многих задачах. Это и контроль открытия/закрытия дверей, разнообразные счётчики срабатываний, счётчики скорости и т.д. Давайте посмотрим, как подключить геркон к Arduino и посмотрим, как он работает.
Инструкция по подключению геркона к Arduino
1 Схема подключениягеркона к Arduino
Используем вот такой модуль с герконом. Подключим его к Arduino по приведённой схеме. Питание осуществляется от 5 В или от 3,3 В. Сигнал подключим к цифровому пину D2.
Модуль с герконом содержит переменный резистор номиналом 10 кОм. Этим резистором можно установить порог срабатывания геркона и таким образом отрегулировать чувствительность. Также модуль содержит компаратор LM393 для генерирования цифрового сигнала при срабатывании магнитного датчика.

2 Скетч обработкисрабатывания геркона
Напишем скетч обработки срабатывания геркона. Тут всё просто.
Задаём номер пина, к которому подключаем выход модуля – «2», и включаем его на «прослушку». Активируем подтягивающий резистор на ножке «2». Задаём 13 пин в качестве выходного. Включаем в работу последовательный порт на скорости 9600 бод. А затем каждые 20 миллисекунд считываем показания геркона и выдаём значение в порт. Если геркон разомкнут – выводится «1», если замкнут – выводится «0». Кроме того, светодиод на 13-ой ножке Arduino светится, пока замкнуты контакты геркона.
Обратите внимание на инверсию считываемого с датчика сигнала.
3 Проверка работыдатчика с герконом
Подключим питание к Arduino. На модуле загорится светодиод, сигнализирующий о наличии питания модуля.
Теперь поднесём к геркону постоянный магнит – контакты геркона замкнутся, и загорится светодиод, показывающий срабатывание геркона. Снова уберём магнит – геркон разомкнётся, и светодиод погаснет. Если мы включим монитор последовательного порта, то увидим срабатывания геркона в виде нулей среди потока единиц при разомкнутом контакте.

4 Подключение герконак Arduino напрямую
Возьмём обычный геркон, без модуля (например, вот такой), и подключим его к Arduino. Геркон подключается аналогично кнопке. Код скетча останется таким же.
Соберём схему как на иллюстрации, включим питание Arduino. Если поднести постоянный магнит к геркону – светодиод Arduino загорится и будет светить пока замкнуты контакты геркона.

С помощью геркона можно сделать, например, датчик открытия двери или окна, датчик определения скорости вращения колеса или датчик уровня воды, и много чего ещё. Но геркон, всё же, является электромеханическим устройством, и срок его эксплуатации зависит от интенсивности использования. Поэтому можно использовать вместо геркона магнитный датчик Холла, о чём рассказывается в этой статье.
Поделиться
Похожие материалы (по тегу)
Другие материалы в этой категории:
11 комментарии
как подключить 2 (два) геркона на одновременную работу и передать данные о состоянии герконов с помощью nRF24LO1нужен скетчь ( NANO )
Спасибо ВАМ, я тока начинаю с ардуино, а как будет выглядеть скетчь на два геркона исключающее дребезг контактов
Толик, геркон это, по сути, кнопка. Как подключить к Arduino кнопку без дребезга, было рассказано в этой статье: https://soltau.ru/index.php/arduino/item/376-kak-podklyuchit-knopku-k-arduino
aave1 Большое спасибо, попробую переписать код..
Чингис, добрый день! Ваш проект интересный, но связан со сферой жизни и здоровья. Поэтому использовать Ардуино в таких целях я бы не стал. А если бы и стал, то, по крайней мере, нужно написать надёжную программу и протестировать её в различных ситуациях, в том числе и нештатных. Это занимает время и немалое. Поэтому лучше обратитесь к профессионалам или купите профессиональное оборудование для этой цели.
Здравствуйте. Заинтересовался Arduino. Подскажите, можно ли датчик открытия двери подключить к Arduino с модулем Wi-Fi для дальнейшей обработки этого сигнала в компьютерной программе по своему усмотрению? Заранее спасибо!
Открываем дверь домофона при помощи голосового ассистента и ардуино
Сегодня у меня статья про то, как при помощи Яндекс-колонки Алиса и Ардуино, можно открыть дверь, подключенную к домофону. Если Вам это интересно, то прошу под кат.
Часто бывает так, что кто-то звонит в домофон, а ты в этот момент чем-то занят или просто лень подходить для того, чтобы открыть дверь. Знакомая ситуация, не правда ли?
А мой домофон так вообще без поднятия трубки не открывает дверь и если в течении 30 секунд после вызова не поднять трубку, то кнопка открывания двери перестанет быть активной до того момента, пока не поступит новый вызов. Так как домофон не из дешёвых (на тот момент) меня жаба душила менять его на другой. И я решил с этим бороться.
Первая идея упростить себе жизнь появилась 10 лет назад, я решил сделать адаптер домофон-телефон, чтобы звонок с домофона дублировался на домашний телефон. Нарисовал схему, собрал прототип на макетной плате. Все заработало, но дальше этого прототипа я так и не продвинулся. Всё так и валяется по сей день в хламе.
Второй проект был реализован на роутере TL-MR3020 с прошивкой CyberWRT и программным СИП телефоном BareSIP. При нажатии на кнопку вызывной панели, роутер параллельно с вызовом интеркома звонил на мобильный телефон и можно было даже находясь в другом городе разговаривать с человеком, стоящим около двери твоей квартиры, но программный телефон или сам роутер, работали крайне нестабильно и пришлось от него отказаться.
Но тут к моему счастью в прошлом году на день рождения мне подарили голосового ассистента Алису и у меня появилась новая идея — отрывать дверь голосом, через Яндекс колонку.
И сегодня настал тот день, когда я взялся реализовать свою задумку.
Немного о том, как работает вызывная панель видео-домофона
Вызывная панель соединена с монитором домофона при помощи 4-х проводов GND, +12 В, аудио и видео.
Если на вызывной панели, провод Audio замкнуть через резистор 100 Ом на GND, то раздастся сигнал вызова. А если на провод Audio подать напряжение +12 В, то сработает реле открытия электромагнитного замка.
На изображении ниже показана схема соединения вызывной панели с домофоном.
Если для подключения вызывной панели к монитору, у Вас используется специальный домофонный кабель, то он подключается как правило по следующей инструкции:
GND — экранирующая оплетка
+12 В — красный провод
Аудио — синий провод
Видео — центральная жила коаксиального кабеля
Схема
Из схемы видно, что для подключения устройства на Ардуино к домофону, потребуется подсоединить всего 2 провода. Для коммутации этих проводов я использовал то, что у меня было под рукой. Вместо реле можно использовать ключ на N-P-N транзисторе или оптроне PC817.
ИК приемник я применил, первый попавшийся мне на глаза, который я когда-то выпаял из старого телевизора и который пролежал у меня на полке в хламе очень много лет.
Используемые компоненты
Вместо Arduino nano можно применить любой другой микроконтроллер из линейки ардуино. Я же использовал Ардуино нано потому, что у меня их достаточно много.
Исходник для Arduino
Код достаточно простой и понятный.
Для получения и сохранения кода нажатой кнопки, нужно перевести контроллер Ардуино в режим добавления кнопки пульта. Потребуется установить перемычку на выводы D2 и GND и нажать кнопку сброса на Arduino, после чего на плате контроллера засветится системный светодиод и контроллер будет ожидать нажатия кнопки на пульте.
Рекомендую использовать пульт от телевизора, чтобы кроме голосового управления можно было открыть дверь с ПДУ, не вставая с дивана. На пульте лучше всего выбрать кнопку, которой редко пользуетесь, как правило это четыре цветных кнопки, предназначенные для телетекста. После получения кодовой посылки Ардуино весело подмигнет светодиодом и снова перейдет в режим ожидания.
Можно нажимать кнопки сколько угодно, но Arduino запомнит только последнее нажатие. Чтобы выйти из режима запоминания кода, достаточно удалить перемычку и нажать на микроконтроллере кнопку «Reset».
//#define TOLERANCE 35 // процент допустимого отклонения принимаемого сигнала
#define IR_RECEIVE_PIN 11 // Вход для подключения ИК приемника
#define RELAY_PIN 12 // Выход для управления реле
#define SET_PIN 2 // Вход для перевода в режим программирования пульта
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;
void setup()
<
irrecv.enableIRIn(); //запустить ожидание нажатия кнопки на пульте
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
pinMode(SET_PIN, INPUT_PULLUP); //D10 конфигурируем на вход, для режима «запоминания кода»
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
// Serial.begin(115200);
while(!digitalRead(SET_PIN)) //если пины D2 и GND замкнуты то заходим в режим запоминания ИК кода
<
set_command();
>
>
Подключение геркона к Arduino
Для начала кто не в курсе, давайте выясним что же такое геркон:
Герко́н (акроним от «герметизированный контакт») — электромеханическое коммутационное устройство, изменяющее состояние подключённой электрической цепи при воздействии магнитного поля от постоянного магнита или внешнего электромагнита, например, соленоида.
При увеличении внешнего магнитного поля свыше порогового упругие контакты геркона «слипаются», замыкая электрическую цепь. При снятии внешнего поля за счет упругости контактов происходит размыкание цепи.
Следовательно самым популярным применением геркона служит открытие дверей, так как при открытии двери мы будем размыкать контакты, так как дверь будет отдалять магнит от геркона. Этот датчик очень полезен в применении сигнализации. Поэтом я сразу и заказал в корпусе с ушками геркон MC-38 чтоб можно было сразу прикрутить на дверь и все бы работало.
Ну чтож из теории к практике. Написал простенький скетч который демонстрирует изменение состояния светодиода на открытую и закрытую дверь. Естественно заместо диода всегда можно подключить зуммер, для звукового сигнала.
Так вот геркон мы будем подключать к 6 пину ардуино. А диод у нас будет встроенный на 13 пину ардуино.
После подключения всех компонентов по описанной выше схеме необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.
Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.





