Как сделать охранную сигнализацию с помощью Raspberry Pi Pico
Микроконтроллеры часто используются в коммерческих продуктах безопасности, таких как охранная сигнализация. Однако последнее может быть довольно дорогим. Так почему бы не создать самодельный будильник с помощью микроконтроллера Raspberry Pi Pico за 4 доллара?
В нем используется датчик PIR (пассивный инфракрасный), который используется во многих коммерческих системах сигнализации, для обнаружения присутствия злоумышленника. Он идеально подходит для того, чтобы поймать любого, кто крадется в вашу комнату или шнырять у вашего стола, или для защиты вашего хранилища печенья. Используя MicroPython, вы можете запрограммировать свой будильник так, чтобы он реагировал звуковым сигналом и мигалкой.
1. Построение будильника
Чтобы построить сигнализацию, вам понадобится набор стандартных электронных компонентов.
Что вам понадобится:
- Raspberry Pi Pico с припаянными штыревыми разъемами
- Макетная плата
- LED (любой цвет)
- Резистор 330 Ом
- Активный пьезоэлектрический зуммер
- ИК-датчик HC-SR501
- 4x перемычки между мужчинами и женщинами (M2M)
- 3x перемычки между мужчинами и женщинами (M2F)
Примечание: если вам не нравится паять штекерные разъемы на Raspberry Pi Pico, можно купить Pico с уже прикрепленными разъемами.
Перед тем, как все подключать, посмотрите на нижнюю часть Pico, чтобы увидеть метки контактов.

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

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

Подключите одну из шин заземления макета (отмечена синей линией) к другому контакту GND на Pico (например, физическому контакту 23, как здесь). Для проблескового маячка вставьте светодиод в макетную плату так, чтобы его ножки находились по обе стороны от центральной перегородки.
Затем более короткая ветвь (катод) должна быть подключена к той же шине заземления. Более длинная ножка (анод) светодиода должна быть подключена к выводу GP15 через резистор, чтобы ограничить количество электрического тока, проходящего через него, который в противном случае мог бы повредить светодиод или Pico.
Наконец, добавьте зуммер, чтобы издавать звуковой сигнал при срабатывании будильника. Поместите его ножки по обе стороны от центральной перегородки макетной платы и подключите более короткую ножку или черный провод к шине заземления, а более длинную ножку (иногда отмеченную на верхней части зуммера знаком «+») или красный провод к GP14.
2. Программирование будильника.
Вам нужно будет установить MicroPython на Pico. Этот процесс включает четыре простых шага:
- Загрузите MicroPython для Raspberry Pi Pico с веб-сайта Raspberry Pi
- Подключите Pico к компьютеру через разъем micro-USB, удерживая кнопку BOOTSEL.
- Подождите, пока Pico появится как внешний диск
- Перетащите файл .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 мс перед повторной проверкой значения вывода и, если оно не равно нулю, срабатывание сигнализации. Затем он включает и выключает светодиод и зуммер, чтобы мигать свет и издавать звуковой сигнал.
Сохраните программу на свой Pico с соответствующим именем, например alarm.py . Запустите программу, и когда вы махнете рукой над датчиком PIR, должен прозвучать звуковой сигнал, а светодиодный индикатор начнет быстро мигать.
3. Регулировка чувствительности сенсора.
Если будильник срабатывает слишком легко или не срабатывает совсем, возможно, вам придется отрегулировать чувствительность датчика PIR. У HC-SR501 есть два пластиковых винта – обычно с маркировкой Sx и Tx – прикрепленных к двум крошечным потенциометрам для регулировки его настроек.
Используя небольшую отвертку, вы можете повернуть винт Sx против часовой стрелки, чтобы увеличить его чувствительность (или наоборот). Вращение винта Tx изменяет время, в течение которого срабатывающий сигнал отправляется после обнаружения вторжения – мы сочли, что лучше всего повернуть его полностью против часовой стрелки, чтобы получить самую короткую задержку в 1 секунду.
По умолчанию PIR будет определять любое движение на 360 ° вокруг себя. Если вы хотите ограничить область обнаружения, попробуйте поместить ее на дно картонной внутренней трубки от рулона туалетной бумаги и повернуть ее в нужном направлении.
Сделайте свою собственную мобильную охранную сигнализацию
Как только ваша охранная сигнализация сработает, как вам нравится, вы можете убрать ее со своего компьютера. Сохранив программу как main.py , вы можете затем отключить ее от компьютера и подключить стандартный мобильный блок питания к его порту micro-USB.
После этого Pico автоматически запустит программу main.py при включении. Поздравляем: теперь у вас есть мобильная охранная сигнализация, которую можно разместить где угодно.