Использование лазера для сигнализации. Как сделать.

Использование лазера для сигнализации. Как сделать.

     Лазер можно применять не только для охранной сигнализации, но и для подсчёта количества вошедших в помещение или в магазин. Установив на автопарковке такую, сигнализация вы всегда будете в курсе сколько машин находится на автостоянке, а сколько приехало и уехало. Значения с такой сигнализации, сделанной своими руками на ардуино, мы будем выводить на индикатор TM1637. В качестве приёмника с лазеров будем использовать фоторезисторы. Схема сборки лазерной сигнализации и скетч для Ардуино будет в описании и на моём сайте. Сигнализацию можно установить дома или на даче, а также офисе и в магазине.
     В системе Умный дом она будет выполнять различные сценарии при отсутствии людей в комнате.

      Сегодня рассмотрим пример подсчёта посетителей в здании или в магазине. Его также можно использовать на парковке автомашин, на конвейерной ленте или в другом месте, где надо знать текущее состояние.
     Эта программа будет считать посетителей находящихся в данный момент в помещении. При заходе количество  будет складываться,  а при выходе вычитаться.  
Потом я установлю её в свой умный дом где она будет отслеживать наличие людей в комнате, и исходя из этого выполнять различные сценарии. 
Для этого мы соберём схему на двух лазерах, но можно применить направленные светодиоды. Двух фоторезисторах, Ардуино, индикатора TM1637, и одной пищалки. Пищалка будет издавать разные звуки при входе или выходе посетителя. Общая стоимость проекта рублей 300, а возможностей использования много. Да и собрать и настроить его совсем не трудно. Скетч как обычно в описании. 
Если вам интересно, то давайте посмотрим что у меня получилось.

Лазеры Китайские, самые дешёвые. Подойдут и от лазерной указки.
Для фотоприёмников я использовал простые фоторезисторы. Ардуино, по традиции Нано, но можно взять любую. Пищалка тоже обычная. 
В качестве индикатора я использовал TM1637 как самый доступный и простой в использовании. У него всего 2 вывода, не считая питания. А вывести можно число до 9999. В схему можно добавить часы и он будет показывать ещё и  время. Про этот индикатор у меня есть несколько видео с примерами. Я делал на нём таймер, счётчик оборотов, часы. 
Про фоторезисторы и лазеры тоже есть видео, так что если что не понятно или просто интересно, то милости просим к просмотру. Вам интересно, а мне полезно. Ведь с каждым просмотром я вижу, что это кому-то, кроме меня, ещё нужно. Короче, ставьте лайк если вам интересно что я делаю.


Работа.
Принцип работы основан на прерывании луча лазера. Информация показана на индикаторе. При прерывании луча от одного лазера система ждёт прерывания от другого. При положительном исходе счётчик увеличивается или уменьшается. Всё это зависит от того какой луч первым был прерван. 
Ещё я сделал, что при заходе раздаётся сигнал, а при выходе сигнал другой тональности. Так что всегда можно узнать что кто то пришёл или ушёл даже не глядя на счётчик.
Если счётчик на нуле, то в минус он не уходит, но сигнал я всё равно оставил.
Если вас заинтересует, то пишите и я буду наращивать возможности схемы.

Рассмотрим схему подключения.
Лазеры подключаются как обычные светодиоды. Через токоограничивающий резистор от 200 до 500 Ом. Можно больше, но не меньше 100 Ом иначе лазер сгорит. Чем выше значение резистора, тем меньше дальность лазера. Ставьте 200-500 Ом и метров на 5 будет уверенный приём. Главное попасть в фоторезистор.

Фоторезисторы я подключил по схеме делителя напряжения. Использовал резистор на 5,6 кОм, но можно взять любой от  1 кОм до 10 кОм. Или больше.  
Подключил к цифровым выводам, потому что нам не надо ловить оттенки освещения. Нам достаточно всего 2 состояния. Темно и светло. Если хотите чтобы работало при разном освещении, то подключайте к аналоговым входам. Правда придётся немного изменить скетч.
Фоторезисторы должны находиться в темноте. Я для этого поместил их в колпачки от зубной пасты.

Пищалка должна подключаться к выводу с ШИМ, Широтно-импульсной модуляцией.
Про это всё у меня есть подробные видео.

Ну и оставшийся индикатор TM1637 я подключил к вывода 2 и 3 Ардуино.
DIO к D3
CLK к D2
Питание 5 вольт.


Скетч у меня подробно закомментирован, так что я не знаю надо ли его описывать здесь. Думаю, что нет. Если появятся опросы, то спрашивайте.
Расскажу про алгоритм работы.
После пропадания света на одном лазере программа замирает и ждёт когда будет затемнён следующий фоторезистор. Когда это произойдёт, счётчик изменится на другое число и прозвучит сигнал. По сигналу кстати можно понять, пришёл кто-нибудь или ушёл, так как у них разная частота.
Подсчёт ведётся, как в сторону прибавления, так и уменьшения. Так что вы всегда будете знать, какое число людей или машин, если устройство установлено на автостоянке, находится в настоящее время.

Описание скетча.
Вначале подключаем библиотеку для индикатора TM1637.
Указываем к каким контактам на Ардуино будут подключены выводы CLK и DIO модуля.
Создаём константы для лазеров, пищалки и фоторезисторов и указываем к каким выводам на Ардуино они будут подключены.
Инициализируем индикатор и устанавливаем начальное значение всех цифр в нули.
Настраиваем лазеры и пищалку на выход.
Включаем лазеры.

Для работы нам понадобятся две переменные.
Счётчик. Устанавливаем его в ноль. При работе он будет постоянно изменяться.
И переменная флаг. Она нам будет нужна для отслеживания срабатывания лазеров.

Рассмотрим цикл программы.
Считываем значения с фоторезисторов и присваиваем эти значения переменным.
При попадании света на фоторезистор его значение будет равно 1, а при отсутствии света 0.
Условие для входа в помещение.
Если свет лазера отсутствует и флаг равен 0, то перейти в режим ожидания, когда пропадёт свет на втором фоторезисторе. Постоянно считываем значения. Как только свет прервётся увеличиваем значение счётчика на 1 и пищим пищалкой. Меняем значение флага на 1 и выходим из цикла.
Условия для выхода точно такие же. Меняются только порядок срабатывания 1 фоторезистора и счётчик идёт на уменьшение.
И в последнем условии если все лазеры освещают фоторезисторы и флаг равен 1, то меняем флаг на ноль и выключаем пищалку. 
Выводим показания на индикатор. И на всякий случай ещё раз выключаем пищалку.
Вот и весь код. Ничего сложного.


Установка библиотеки.
Вам понадобится установить библиотеку для индикатора TM1637.
Давайте сделаем это вместе.
Нажимаем кнопку - Инструменты и затем – Управлять библиотеками.
Чтобы долго не прокручивать страницу поиска, так как в Ардуино огромная база библиотек набираем TM1637.
И выбираем не просто 1637, а именно 1637 драйвер
У этих двух библиотек большое различие.
В просто - 1637 огромное количество возможностей, а 1637 драйвер это очень простая для вывода цифр на экран.
Нажимаем инсталлировать и прошиваем мой код из архива.
Если вы всё сделали правильно, то у вас должно всё заработать.
Если всё правильно и не работает, то возможно фоторезисторам очень светло, и вам надо создать им тёмную.  
На этом заканчивается ещё одно видео. Ставьте лайк если оно вам понравилось и пишите комментарии что бы вам было интересно посмотреть в будущем на моём канале. Не обещаю, что сделаю это сразу, но по мере возможностей сделаю обязательно.
 

Скетчи