Гид по технологиям

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

8 min read Электроника Обновлено 21 Apr 2026
Самодельная сигнализация на Raspberry Pi Pico
Самодельная сигнализация на 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.

Подписи выводов GPIO на обратной стороне Pi Pico

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

Верхний вид Pi Pico на белом фоне с нумерацией выводов

Сборка сигнализации

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

Схема подключения сигнализации на Pico

  1. Подключите одну из шин «земли» (GND) макетной платы к другому GND на Pico (например физический контакт 23). Это обеспечит общий нулевой потенциал для всех компонентов.
  2. Вставьте светодиод через центральную перегородку макетной платы: короткая ножка (катод) в шину GND, длинная ножка (анод) через резистор 330 Ом к пину GP15.
  3. Подключите активный пьезоизлучатель: короткая ножка или чёрный провод в шину GND, длинная ножка или красный провод к GP14 (обычно на корпусе буззера помечено ‘+’).

Советы по конструктиву:

  • Следите за полярностью светодиода и буззера: переполюсовка может повредить некоторые компоненты.
  • Если используете непассивный (с генератором) буззер, он потребляет небольшую токовую нагрузку и безопасен для прямого подключения к GPIO; для мощных устройств потребуется транзисторный ключ.
  • Закрепите датчик и микроплату на невысокой подставке, чтобы PIR видел нужную зону обнаружения.

Установка MicroPython и подготовка среды разработки

  1. Скачайте прошивку MicroPython для Raspberry Pi Pico с официального сайта Raspberry Pi.
  2. Подключите Pico к компьютеру через micro‑USB, удерживая кнопку BOOTSEL.
  3. Дождитесь, пока появится съёмный диск Pico.
  4. Скопируйте файл .uf2 прошивки на диск Pico — плата перезагрузится и загрузит MicroPython.

Для редактирования и загрузки кода используйте Thonny — лёгкую IDE для Python, которая доступна для Raspberry Pi OS и других ОС.

Скачать: Thonny (бесплатно)

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

Меню выбора MicroPython в Thonny

Программирование сигнализации

Добавьте в основной редактор 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. Базовый тест: помахать рукой на 1 м — ожидается срабатывание.
  2. Дальний тест: переместиться на 3–4 м — возможны потеря сигнала, проведите тест и при необходимости увеличьте чувствительность или измените местоположение.
  3. Ложные срабатывания: проверить при колебании шторы, движении от домашних животных — при частых ложных срабатываниях уменьшите чувствительность.
  4. Питание от power bank: убедиться, что Pico стартует и исполняет main.py.

Устранение неполадок

Если сигнализация не работает:

  • Проверьте целостность проводов и правильность подключения VBUS / GND / GPIO.
  • Убедитесь, что MicroPython загружен и выбран как интерпретатор в Thonny.
  • Проверьте, видит ли система Pico как устройство — откройте REPL в Thonny и попробуйте импортировать модули.
  • Используйте print в обработчике для отладки: это помогает понять, получает ли PIR сигнал.
  • Если буззер молчит, протестируйте его напрямую от 3.3V через резистор или подключите вместо буззера другой звуковой модуль.

Альтернативные подходы и расширения

  1. Использование ESP32 / ESP8266: если нужна беспроводная отправка уведомлений (MQTT, HTTP, push), ESP‑модули дадут встроенный Wi‑Fi и возможность отправки оповещений на телефон.
  2. Raspberry Pi Zero W: полноценный Linux‑синглборд, подходит для записи видео при срабатывании (подключение камер и более сложная логика).
  3. Транзисторный ключ для мощных сигналов: если нужен громкий сиренник, используйте N‑MOSFET и отдельный источник питания.
  4. Логирование и уведомления: добавить запись срабатываний на карту памяти или отправку 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‑датчика. Этот проект хорош как учебный, быстрый и дешёвый способ реализовать простую систему обнаружения движения и расширить её функциональность (уведомления, запись, интеграция с другими устройствами).

Важно: перед размещением в общественном пространстве убедитесь, что устройство не нарушает правила приватности. Удачи в сборке — такие проекты отлично подходят для изучения электроники и программирования.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Будильник iOS 15: селектор или цифровая клавиатура
Руководства

Будильник iOS 15: селектор или цифровая клавиатура

Автоматизация Windows по времени суток
Windows

Автоматизация Windows по времени суток

Тест батареи ноутбука с Battery Eater
Ноутбуки

Тест батареи ноутбука с Battery Eater

Xbox Game Pass Ultimate дешевле через Xbox Live Gold
Игры

Xbox Game Pass Ultimate дешевле через Xbox Live Gold

Как изменить звуки Windows 11 — руководство
Windows

Как изменить звуки Windows 11 — руководство

Жесты навигации Android: как использовать и настроить
Android.

Жесты навигации Android: как использовать и настроить