Авторизоваться
Аким Солянкин 22.04.2021 Опубликована

Как сделать охранную сигнализацию с помощью Raspberry Pi Pico

Микроконтроллеры часто используются в коммерческих продуктах безопасности, таких как охранная сигнализация. Однако последнее может быть довольно дорогим. Так почему бы не создать самодельный будильник с помощью микроконтроллера Raspberry Pi Pico за 4 доллара?

В нем используется датчик PIR (пассивный инфракрасный), который используется во многих коммерческих системах сигнализации, для обнаружения присутствия злоумышленника. Он идеально подходит для того, чтобы поймать любого, кто крадется в вашу комнату или шныряет у вашего стола, или для защиты вашего хранилища печенья. Используя MicroPython, вы можете запрограммировать свой будильник так, чтобы он реагировал звуковым сигналом и мигалкой.

1. Построение сигнализации

Чтобы построить сигнализацию, вам понадобится набор стандартных электронных компонентов.

Что вам понадобится:

  • Raspberry Pi Pico с припаянными штыревыми разъемами
  • Макетная плата
  • LED (любой цвет)
  • Резистор 330 Ом
  • Активный пьезоэлектрический зуммер
  • ИК-датчик HC-SR501
  • 4x перемычки Male-to-male (M2M)
  • 3x перемычки Male-to-female (M2F)

Примечание. Если вам не нравится паять штекерные разъемы на Raspberry Pi Pico, можно купить Pico с уже прикрепленными разъемами.

Перед тем, как все подключать, посмотрите на нижнюю часть Pico, чтобы увидеть метки контактов.

В верхней части Pico вы также можете увидеть, как работает физическая нумерация контактов, от 1 до 40, против часовой стрелки слева от порта micro-USB.

На макетной плате вставьте штыревые разъемы Pico в отверстия на одном конце. Надавите на него с усилием, чтобы обеспечить хорошее соединение - он должен плотно прилегать. Затем используйте перемычки «female-to-male» для подключения к нему датчика PIR: контакт VCC должен быть подключен к VBUS 5 В Pico, цифровой выход - к GP28, а GND - к контакту GND (например, контакт 3), как показано на рисунке. Схема подключения ниже.

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

Затем более короткая ветвь (катод) должна быть подключена к той же шине заземления. Более длинная ножка (анод) светодиода должна быть подключена к выводу GP15 через резистор, чтобы ограничить количество электрического тока, проходящего через него, который в противном случае мог бы повредить светодиод или Pico.

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

2. Программирование будильника.

Вам нужно будет установить MicroPython на Pico. Этот процесс включает четыре простых шага:

  1. Загрузите MicroPython для Raspberry Pi Pico с веб-сайта Raspberry Pi
  2. Подключите Pico к компьютеру через разъем micro-USB, удерживая кнопку BOOTSEL.
  3. Подождите, пока Pico появится как внешний диск
  4. Перетащите файл .uf2 MicroPython, чтобы скопировать его на Pi Pico; он автоматически перезагрузится

Хотя для MicroPython доступно множество программных IDE (интегрированных сред разработки), здесь мы будем использовать Thonny. Он уже предустановлен в ОС Raspberry Pi (если вы используете компьютер Raspberry Pi, подключенный к Pico), или его можно загрузить для любой компьютерной системы с официального сайта.

Подключив Pico к компьютеру, откройте Thonny. В правом нижнем углу окна Thonny вы увидите версию Python, которую вы используете в данный момент. Щелкните по нему и выберите MicroPython (Raspberry Pi Pico).

Теперь вы готовы запрограммировать охранную сигнализацию на Pico. Добавьте следующие строки кода на главную панель Thonny.

import machine
import utime
pir = machine.Pin(28, machine.Pin.IN, machine.Pin.PULL_DOWN)
led = machine.Pin(15, machine.Pin.OUT)
buzzer = machine.Pin(14, machine.Pin.OUT)
def pir_handler(pin):
    utime.sleep_ms(100)
    if pin.value():
        print("Motion detected. Intruder alert!")
        for i in range(50):
            led.toggle()
            buzzer.toggle()
            utime.sleep_ms(100)
pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)

Здесь импортируйте машинные библиотеки и библиотеки utime в верхней части. Затем настройте объекты для PIR, светодиода и зуммера - подключенных к контактам GP28, GP15 и GP14 соответственно.

Обратите внимание, что PIR устанавливается как вход с параметром machine.Pin.IN, с параметром machine.Pin.PULL-DOWN, чтобы установить резистор его вывода Pico в понижающий режим; это означает, что он будет считаться нулевым, пока на него не будет подан электрический ток от срабатывающего пассивного инфракрасного датчика.

Внизу кода устанавливается IRQ (запрос прерывания) для запуска функции pir_handler, как только на входном контакте (GP28) обнаруживается сигнал от датчика PIR.

В самой функции, чтобы избежать повторного срабатывания в течение короткого времени, добавьте задержку в 100мс перед повторной проверкой значения pin-кода и, если оно ненулевое, вызовите сигнал тревоги. Затем он включает и выключает светодиод и зуммер, чтобы мигал свет и издавался звуковой сигнал.

Сохраните программу на свой Pico с соответствующим именем, например alarm.py. Запустите программу, и, когда вы машете рукой над датчиком PIR, должен прозвучать зуммер и быстро мигать светодиод.

3. Регулировка чувствительности сенсора.

Если будильник срабатывает слишком легко или не срабатывает совсем, возможно, вам придется отрегулировать чувствительность датчика PIR. У HC-SR501 есть два пластиковых винта - обычно с маркировкой Sx и Tx - прикрепленных к двум крошечным потенциометрам для регулировки его настроек.

Используя небольшую отвертку, вы можете повернуть винт Sx против часовой стрелки, чтобы увеличить его чувствительность (или наоборот). Вращение винта Tx изменяет время, в течение которого срабатывающий сигнал отправляется после обнаружения вторжения - мы сочли, что лучше всего повернуть его полностью против часовой стрелки, чтобы получить самую короткую задержку в 1 секунду.

По умолчанию PIR будет определять любое движение на 360° вокруг себя. Если вы хотите ограничить область обнаружения, попробуйте поместить ее в нижнюю часть картонной внутренней трубки от рулона туалетной бумаги и повернуть ее в нужном направлении.

Сделайте свою собственную мобильную охранную сигнализацию

Как только ваша охранная сигнализация сработает, как вам нравится, вы можете убрать ее со своего компьютера. Сохранив программу как main.py, вы можете затем отключить ее от компьютера и подключить стандартный мобильный блок питания к его порту micro-USB.

После этого Pico автоматически запустит программу main.py при включении. Поздравляем: теперь у вас есть мобильная охранная сигнализация, которую можно разместить где угодно.

Коментарии
Авторизоваться что-бы оставить комментарий
Присоединяйся в тусовку
Наш сайт использует файлы cookie для вашего максимального удобства. Пользуясь сайтом, вы даете свое согласие с условиями пользования cookie