Самодельная сигнализация на Raspberry Pi Pico

Микроконтроллеры часто применяют в коммерческих охранных устройствах, например в сигнализациях от взлома. Такие системы могут быть дорогими, поэтому имеет смысл собрать простую самодельную сигнализацию на недорогом Raspberry Pi Pico (примерно за $4). В этой инструкции используется PIR‑датчик (пассивный инфракрасный датчик), как в многих коммерческих системах: он фиксирует движение человека по изменению инфракрасного излучения.
Преимущества самодельной сигнализации:
- Низкая стоимость и лёгкая модификация.
- Простота сборки на макетной плате (breadboard).
- Код на MicroPython — быстрое прототипирование и простая авто‑загрузка.
Важно: эта схема рассчитана на обнаружение движения в небольшом радиусе и не предназначена для защиты крупных объектов или в критических сценариях безопасности.
Что потребуется
- Raspberry Pi Pico с припаянными мужскими контактными штырями (male pin headers) — можно купить уже с заголовками.
- Макетная плата (breadboard).
- Светодиод (любой цвет).
- Резистор 330 Ом.
- Активный пьезоизлучатель (buzzer) — с собственным генератором или простой, подходящий для прямого включения через GPIO.
- PIR‑датчик HC‑SR501.
- 4 шт. проводов male‑to‑male (M2M).
- 3 шт. проводов male‑to‑female (M2F).
Примечание: если вы не хотите паять заголовки на Pico, возьмите версию с уже установленными штырями.
Подготовка перед подключением
Перед подключением обратите внимание на маркировку контактов на обратной стороне Pico — это поможет не перепутать VBUS, GND и GPIO.

На верхней стороне платы видно физическую нумерацию контактов от 1 до 40 против часовой стрелки, считая от левого края micro‑USB порта.

Сборка сигнализации
- Вставьте Raspberry Pi Pico в один конец макетной платы так, чтобы штыри входили в отверстия плотно и надёжно.
- Подключите PIR‑датчик к Pico с помощью female‑to‑male проводов:
- VCC датчика -> VBUS (5V) на Pico
- OUT (цифровой выход) -> GP28
- GND -> любой GND на Pico (например физический контакт 3)

- Подключите одну из шин «земли» (GND) макетной платы к другому GND на Pico (например физический контакт 23). Это обеспечит общий нулевой потенциал для всех компонентов.
- Вставьте светодиод через центральную перегородку макетной платы: короткая ножка (катод) в шину GND, длинная ножка (анод) через резистор 330 Ом к пину GP15.
- Подключите активный пьезоизлучатель: короткая ножка или чёрный провод в шину GND, длинная ножка или красный провод к GP14 (обычно на корпусе буззера помечено ‘+’).
Советы по конструктиву:
- Следите за полярностью светодиода и буззера: переполюсовка может повредить некоторые компоненты.
- Если используете непассивный (с генератором) буззер, он потребляет небольшую токовую нагрузку и безопасен для прямого подключения к GPIO; для мощных устройств потребуется транзисторный ключ.
- Закрепите датчик и микроплату на невысокой подставке, чтобы PIR видел нужную зону обнаружения.
Установка MicroPython и подготовка среды разработки
- Скачайте прошивку MicroPython для Raspberry Pi Pico с официального сайта Raspberry Pi.
- Подключите Pico к компьютеру через micro‑USB, удерживая кнопку BOOTSEL.
- Дождитесь, пока появится съёмный диск Pico.
- Скопируйте файл .uf2 прошивки на диск Pico — плата перезагрузится и загрузит MicroPython.
Для редактирования и загрузки кода используйте Thonny — лёгкую IDE для Python, которая доступна для Raspberry Pi OS и других ОС.
Скачать: Thonny (бесплатно)
После подключения Pico откройте Thonny. В правом нижнем углу окна нажмите версию Python и выберите MicroPython (Raspberry Pi Pico).

Программирование сигнализации
Добавьте в основной редактор Thonny следующий код и сохраните как alarm.py (или main.py, если хотите автозапуск):
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)Пояснения к коду:
- import machine, utime — подключение встроенных модулей MicroPython: machine для работы с GPIO, utime для задержек.
- pir, led, buzzer — объекты Pin для PIR, светодиода и буззера. Они подключены к GP28, GP15 и GP14 соответственно.
- Для PIR задан режим входа machine.Pin.IN и подтяжка к земле machine.Pin.PULL_DOWN — это означает, что пин будет показывать 0, пока датчик не выдаст сигнал.
- pir.irq(…) — установка обработчика прерывания: при фронте сигнала (IRQ_RISING) вызывается pir_handler.
- В pir_handler добавлена задержка 100 мс для устранения дребезга и ложных срабатываний, затем проверяется значение пина и при обнаружении движения включается цикл мигания и звукового сигнала.
Сохраните файл на плате и запустите. Если помахать рукой перед PIR‑датчиком, светодиод будет мигать, а буззер пищать.
Настройка чувствительности датчика
HC‑SR501 оснащён двумя маленькими подстроечными винтами (обычно маркируются как Sx и Tx), которые меняют чувствительность и длительность сигнала.
- Sx — регулировка чувствительности: вращение против часовой стрелки обычно повышает чувствительность; по часовой — снижает.
- Tx — регулировка длительности выходного сигнала: чем дальше по часовой стрелке, тем длиннее держится сигнал после обнаружения; для кратковременных срабатываний установите минимальный (обычно полностью против часовой стрелки).
Практические советы:
- Если сигнализации часто «ложно» срабатывает, уменьшите чувствительность (Sx) и сократите длительность (Tx).
- Если датчик не реагирует вовсе — убедитесь в правильности питания (VBUS 5V) и наличии общего GND; увеличьте чувствительность и проверьте зону обзора.
- HC‑SR501 по умолчанию видит движение в секторе примерно 360° вокруг себя. Чтобы сузить зону обнаружения, используйте картонную трубку (например втулку от туалетной бумаги) как направляющий кожух.
Переносная сигнализация и автозапуск
Чтобы сделать устройство мобильным, сохраните программу как main.py. Тогда Pico автоматически выполнит код при включении питания. Подключите обычный power bank к micro‑USB порту — устройство станет автономным и легко переносимым.
Тестирование и критерии приёмки
Критерии приёмки:
- При замахе рукой на расстоянии 1–3 м от датчика светодиод мигает и буззер издаёт звуковой сигнал.
- При отсутствии движения в зоне датчика — система молчит и не потребляет лишних ресурсов.
- Устройство стабильно запускается с power bank при наличии main.py.
- Возможность изменить чувствительность и длительность срабатывания через винты на модуле HC‑SR501.
Тесты и сценарии проверки:
- Базовый тест: помахать рукой на 1 м — ожидается срабатывание.
- Дальний тест: переместиться на 3–4 м — возможны потеря сигнала, проведите тест и при необходимости увеличьте чувствительность или измените местоположение.
- Ложные срабатывания: проверить при колебании шторы, движении от домашних животных — при частых ложных срабатываниях уменьшите чувствительность.
- Питание от power bank: убедиться, что Pico стартует и исполняет main.py.
Устранение неполадок
Если сигнализация не работает:
- Проверьте целостность проводов и правильность подключения VBUS / GND / GPIO.
- Убедитесь, что MicroPython загружен и выбран как интерпретатор в Thonny.
- Проверьте, видит ли система Pico как устройство — откройте REPL в Thonny и попробуйте импортировать модули.
- Используйте print в обработчике для отладки: это помогает понять, получает ли PIR сигнал.
- Если буззер молчит, протестируйте его напрямую от 3.3V через резистор или подключите вместо буззера другой звуковой модуль.
Альтернативные подходы и расширения
- Использование ESP32 / ESP8266: если нужна беспроводная отправка уведомлений (MQTT, HTTP, push), ESP‑модули дадут встроенный Wi‑Fi и возможность отправки оповещений на телефон.
- Raspberry Pi Zero W: полноценный Linux‑синглборд, подходит для записи видео при срабатывании (подключение камер и более сложная логика).
- Транзисторный ключ для мощных сигналов: если нужен громкий сиренник, используйте N‑MOSFET и отдельный источник питания.
- Логирование и уведомления: добавить запись срабатываний на карту памяти или отправку push‑уведомлений через IFTTT / Telegram бота.
Безопасность и эксплуатация
- Электрически схема простая и безопасная при работе на 3.3–5V, но соблюдайте полярность и избегайте коротких замыканий.
- Не оставляйте устройство вблизи источников тепла или прямого солнечного света — PIR чувствителен к температуре.
- Если устройство размещаете в общественном месте, учитывайте законность записи и оповещений: избегайте нарушения приватности других людей.
Чек‑листы по ролям
Роль: Любитель‑самодельщик
- Купить Pico и HC‑SR501.
- Подключить на макетной плате согласно схеме.
- Записать alarm.py и протестировать движение рукой.
Роль: Учитель/лектор
- Подготовить наборы для студентов: Pico, датчик, LED, резистор, проводники.
- Раздать задание: модифицировать код для разной реакции на движение (короткие/длинные сирены).
- Оценивать по критериям приёмки.
Роль: Разработчик расширений
- Добавить поддержку Wi‑Fi/HTTP уведомлений.
- Разработать режим «ночной/дневной» с разной чувствительностью.
- Реализовать энергосберегающий режим для длительной работы от power bank.
Шаблон таблицы подключения (быстрая шпаргалка)
- PIR VCC -> Pico VBUS (5V)
- PIR OUT -> GP28
- PIR GND -> GND
- LED анод -> GP15 через 330 Ом
- LED катод -> GND
- Buzzer + -> GP14
- Buzzer - -> GND
Краткий глоссарий
- PIR — пассивный инфракрасный датчик, обнаруживает изменение ИК‑излучения.
- VBUS — питание 5V от USB на плате Pico.
- GPIO (General Purpose Input/Output) — программируемые контакты ввода/вывода.
- IRQ — прерывание, механизм мгновенной реакции на аппаратное событие.
Итог
Вы получили компактный план по сборке и настройке портативной сигнализации на базе Raspberry Pi Pico и PIR‑датчика. Этот проект хорош как учебный, быстрый и дешёвый способ реализовать простую систему обнаружения движения и расширить её функциональность (уведомления, запись, интеграция с другими устройствами).
Важно: перед размещением в общественном пространстве убедитесь, что устройство не нарушает правила приватности. Удачи в сборке — такие проекты отлично подходят для изучения электроники и программирования.
Похожие материалы
Будильник iOS 15: селектор или цифровая клавиатура
Автоматизация Windows по времени суток
Тест батареи ноутбука с Battery Eater
Xbox Game Pass Ultimate дешевле через Xbox Live Gold
Как изменить звуки Windows 11 — руководство