Для этого проекта мы сделаем простое устройство, которое поможет обнаруживать "вторжения", назовем её системой сигнализации.
Эта система будет запускать визуальные и звуковые сигналы при каждом обнаружении движения или звука.
Шаг 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
Шаг 5: Подключаем звуковой датчик
1. Подключите контакт питания на звуковом датчике к шине питания на макете.
2. Подключите контакт заземления на звуковом датчике к заземляющей шине на макете.
3. Подключите цифровой выходной контакт на звуковом датчике к цифровому выходу 7 на вашем Arduino.
Шаг 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; } }
Не стесняйтесь играть с чувствительностью обоих датчиков; отрегулируйте их потенциометры, чтобы посмотреть, что произойдет.
Вы также можете воспроизводить различные мелодии на зуммере, если хотите. Экспериментируйте и наслаждайтесь!