Operácie

Alarm s PIR detektorom pohybu

Zo stránky SensorWiki

Záverečný projekt predmetu MIPS / LS2026 - Filip Hreha

1. Zadanie

Mojou úlohou bolo zapojiť a naprogramovať Alarm, ktorý využíva PIR detektor pohybu. Systém monitoruje určený priestor a v prípade narušenia (detekcie pohybu) okamžite aktivuje vizuálny alarm (LED dióda), akustický alarm (bzučiak) a zároveň odošle textové upozornenie o narušení cez sériovú linku do pripojeného počítača.

Vývojová doska ACROB.

Literatúra:

2. Analýza a opis riešenia

Ako snímač pohybu bol zvolený PIR senzor od firmy Parallax (model #555-28027). Tento senzor meria zmeny infračerveného žiarenia (tepla) v okolí. Podľa priloženého datasheetu má senzor dôležitú vlastnosť a to: po zapnutí vyžaduje fázu zahrievania trvajúcu približne 40 sekúnd, počas ktorej sa kalibruje na teplotu v miestnosti. Počas tejto doby systém signalizuje inicializáciu rýchlym blikaním LED diódy a ignoruje vstupy, aby sa predišlo falošným poplachom. Počas kalibrácie je nutné aby pred senzorom nebol žiaden pohyb.

Po úspešnej kalibrácii prejde systém do funkčého režimu. Ak senzor zachytí pohyb, mikrokontrolér tento stav zachytí a zmení stavy na svojich výstupných pinoch – rozsvieti LED diódu a spustí bzučiak.

2.1 Zoznam použitých súčiastok

Použité súčiastky pre tento projekt:

  • Vývojová doska ATmega328P (vývojová doska Arduino Uno)
  • PIR Senzor Parallax (#555-28027)
  • Bzučiak
  • Ochranný rezistor 220 Ω
  • Červená LED dióda

2.2 Hardvérové zapojenia (Pinout)

Zapojenie komponentov k vývojovej doske ATMega328P:

3. Algoritmus a program

Hlavný program sa riadi podľa následujúcich krokov:

  1. Inicializácia hardvéru:
    • Nastavenie smerových registrov portov (vstupy a výstupy).
    • Inicializácia sériového rozhrania UART na prenosovú rýchlosť 9600 Baud.
  2. Kalibrácia senzora (Warm-up):
    • Podľa špecifikácie PIR senzora Parallax systém čaká 40 sekúnd na stabilizáciu pyroelektrického kryštálu.
    • Počas tohto času v cykle bliká LED dióda (250 ms svieti, 750 ms nesvieti), čím vizuálne signalizuje používateľovi stav prípravy. Snímanie z pinu PIR senzora je v tejto fáze blokované.
  3. Signalizácia pripravenosti:
    • Po uplynutí 40 sekúnd sa vypne blikanie LED, na 200 ms sa zopne bzučiak (krátke pípnutie) a cez UART sa odošle správa o úspešnej inicializácii.
  4. Monitorovacia slučka (Nekonečný cyklus):
    • Systém neustále (v každom cykle) číta logický stav na vstupe `PD2`.
    • Ak je detegovaný pohyb (PD2 = HIGH):
      • Nastaví sa logická 1 na výstup `PB0` (rozsvietenie LED) a `PB1` (aktivácia bzučiaka).
      • Cez UART sa odošle varovný reťazec.
      • Vykoná sa krátke oneskorenie (`_delay_ms(500)`), ktoré bráni zahlteniu sériovej linky opakovanými správami.
    • Ak je priestor čistý (PD2 = LOW):
      • Nastaví sa logická 0 na výstupy `PB0` a `PB1` (LED a bzučiak sa vypnú).


#include <avr/io.h>

int main(void)
{
  unsigned int measuredValue;

  while (1)
  {
    /*  relax  */  
  }

  return(0);
}
#include <avr/io.h>

void adc_init(void);                                   // A/D converter initialization

unsigned int adc_read(char a_pin);

Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:

Zdrojový kód: zdrojaky.zip

Overenie

Ako ste overili funkciu, napríklad... Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku hotového zariadenia.

Aplikácia.

Video:


Čo by som urobil inak

Zamyslite sa spätne nad problémom, ktorý ste riešili a napíšte, čo sa vám nepodarilo a nabudúce by ste spravili inak.


Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.