- Крок 1: Що нам знадобиться
- Крок 2: Налаштування плати
- Крок 3: Підключаємо звуковий сигнал
- Крок 4: Підключаємо датчик PIR
- Крок 5: Підключаємо звуковий датчик
- Крок 6: Завантажуємо код і насолоджуємося
Для цього проекту ми зробимо простий пристрій, що допоможе виявляти "вторгнення", назвемо її системою сигналізації.
Ця система буде запускати візуальні і звукові сигнали при кожному виявленні руху або звуку.
Крок 1: Що нам знадобиться
Нам знадобляться наступні комплектуючі:
- 1 Arduino Uno
- 1 Пасивний пьезо-зумер
- 1 PIR (пасивний інфрачервоний) датчик
- 1 Звуковий датчик
- 1 Світлодіод
- Декілька виводів-перемичок
Крок 2: Налаштування плати
1. Підключіть контакт заземлення до контакту заземлення (GND) на вашому Arduino
2. Підключіть шину харчування до контакту 5V на вашому Arduino
3. Підключіть короткий кінець світлодіода до заземлювального контакту на Arduino, а довгу сторону - до цифрового виходу 13
При підключенні світлодіода ви можете в якості альтернативи підключити його до макету, а потім підключити його звідти до Arduino, використовуючи резистор 220 Ом, щоб зберегти термін служби вашого світлодіода.
Крок 3: Підключаємо звуковий сигнал
1. Підключіть пьезо-зумер до макету
2. Підключіть негативний вихід зумера до землі
3. Підключіть позитивний контакт зумера до цифрового контакту 8 на вашому Arduino
Крок 4: Підключаємо датчик PIR
1. Підключіть контакт харчування на вашому PIR-датчику до шини електроживлення (різні PIR датчики можуть мати різний набір і порядок контактів, будьте уважні)
2. Підключіть контакт заземлення на вашому PIR-датчику до шини заземлення
3. Підключіть цифровий вихідний контакт на вашому PIR-датчику до цифрового виходу 6 на вашому Arduino
Примітка! Помаранчеві гвинти (на фото вище) - це два потенціометра. Один з них регулює чутливість датчика, а інший налаштовує час, протягом якого датчик посилає сигнал (наприклад, якщо немає руху, він відключається через 3 секунди або через 7 хвилин).
Крок 5: Підключаємо звуковий датчик
1. Підключіть контакт харчування на звуковому датчику до шини харчування на макеті.
2. Підключіть контакт заземлення на звуковому датчику до заземлювальної шини на макеті.
3. Підключіть цифровий вихідний контакт на звуковому датчику до цифрового виходу 7 на вашому Arduino.
Примітка! Маленький металевий гвинт на синьої частини цього звукового датчика є потенціометром. Він регулює чутливість мікрофона. поверніть його до тих пір поки маленький світлодіод поруч з ним ледь горить для того, щоб мати чутливий сигнал.
Важливо! Переконайтеся, що ви використовуєте цифровий вихід (DO), а не аналоговий вихід (AO)!
Крок 6: Завантажуємо код і насолоджуємося
До даного моменту у вас повинна бути базова система сигналізації. Залишилося завантажити код, щоб це все запрацювало.
// Alarm System // By: Andrew Johnson #include "pitches.h" // add note library int buzzerPin = 8; // piezo buzzer pin int micPin = 7; // sound detector pin int pirPin = 6; // motion detector pin int ledPin = 13; // led pin int pirState = LOW; // current pir state int micState = LOW; // current mic value int alarmState = LOW; // current alarm state int noteDuration = 0; int pauseBetweenNotes = 0; // Notes in the buzzer melody int melody [] = {NOTE_C8, NOTE_C8, NOTE_C8, NOTE_C8, NOTE_C8, NOTE_C8}; // Buzzer note durations. 4 = quarter note / 8 = eighth note int noteDurations [] = {4, 9, 9, 9, 4, 4}; // Turn the alarm on or off void setAlarm (String value) {// If the alarm is turned on, activate the led and the buzzer sequence if (value.equals ( "ON")) {digitalWrite (ledPin, HIGH); // Iterate over the notes of the melody for (int thisNote = 0; thisNote <6; thisNote ++) {// To calculate the note duration, take one second. Divided by the note type noteDuration = 1000 / noteDurations [thisNote]; tone (8, melody [thisNote], noteDuration); // To distinguish the notes, set a minimum time between them // The note's duration + 30% seems to work well pauseBetweenNotes = noteDuration * 1.30; delay (pauseBetweenNotes); }} // If the alarm is turned off, deactivate the led and buzzer melody else {digitalWrite (ledPin, LOW); // stop the tone playing noTone (buzzerPin); }} // Setup the input and output pins void setup () {pinMode (buzzerPin, OUTPUT); pinMode (ledPin, OUTPUT); pinMode (pirPin, INPUT); pinMode (micPin, INPUT); } Void loop () {// Get information from the motion detector pirState = digitalRead (pirPin); // Get information from the sound sensor micState = digitalRead (micPin); // If the motion detector is triggering and the alarm is off, turn it on if (pirState == HIGH and alarmState == LOW) {setAlarm ( "ON"); alarmState = HIGH; } // If the sound sensor is triggering and the alarm is off, turn it on if (micState == HIGH and alarmState == LOW) {setAlarm ( "ON"); alarmState = HIGH; } // If the motion detector and sound sensor are not triggering and the alarm is on then turn the alarm off if (pirState == LOW and micState == LOW and alarmState == HIGH) {setAlarm ( "OFF"); alarmState = LOW; }}
завантажити alarm.ino
завантажити pitches.h
Не соромтеся грати з чутливістю обох датчиків; відрегулюйте їх потенціометри, щоб подивитися, що станеться.
Ви також можете відтворювати різні мелодії на зумері, якщо хочете. Експериментуйте і насолоджуйтеся!