В этом руководстве мы создадим противоугонную сигнализацию с использованием датчика вибрации и платы Raspberry Pi Pico с помощью кода на MicroPython. Противоугонная система будет работать с помощью датчика вибрации, установленного внутри и вокруг автомобиля. Удар или движение внутри автомобиля активируют датчики. Это, в свою очередь, будет запускать систему сигнализации и подавать звуковой сигнал. Наконец, сигнализация будет срабатывать и оповещать владельца/людей.
В этом проекте сигнал датчика вибрации будет считываться платой Raspberry Pi Pico. При обнаружении вибрации зуммер будет включаться для достижения эффекта противоугонной сигнализации.
Ранее на нашем сайте мы рассматривали подключение датчика вибрации SW-420 к плате Arduino Uno.
Необходимые компоненты
- Плата Raspberry Pi Pico (купить на AliExpress).
- Модуль датчика вибрации SW-420 (купить на AliExpress).
- Зуммер (купить на AliExpress).
- Кабель Micro-USB.
- Макетная плата.
- Соединительные провода/перемычки.
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Датчик вибрации
Датчик вибрации, также называемый вибрационным выключателем, является широко используемым датчиком обнаружения тревоги.
Переключатель находится в состоянии разомкнутой цепи ВЫКЛ, когда он находится в состоянии покоя. Когда он касается внешней силы и достигает соответствующей вибрации, проводящий штифт генерирует мгновенную проводимость и становится мгновенным состоянием ВКЛ. Когда внешняя сила исчезает, состояние разомкнутой цепи ВЫКЛ восстанавливается.
Схема проекта
Схема подключения датчика вибрации к плате Raspberry Pi Pico приведена на следующем рисунке.
Подключите контакты VCC, GND и цифрового выхода модуля датчика вибрации к контактам 3,3 В, GND и GP0 платы Raspberry Pi Pico соответственно.
Код программы на MicroPython
Откройте Thonny IDE, скопируйте следующий код и вставьте его в окно редактора.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from machine import Pin,PWM import utime vibrate = Pin(0, Pin.IN, Pin.PULL_UP) buzzer = PWM(Pin(14)) def playtone(frequency): buzzer.duty_u16(1000) buzzer.freq(frequency) def bequiet(): buzzer.duty_u16(0) if __name__ == '__main__': while True: if vibrate.value() == 0: for i in range(10) : playtone(555) utime.sleep_ms(50) bequiet() utime.sleep_ms(50) bequiet() |
Теперь вы можете запустить этот код, чтобы проверить работу схемы. Когда вы будете трясти схему или даже если датчик вибрации будет обнаруживать движение, сигнализация включится.
9 просмотров