Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Wstęp

Jako część mojego systemu inteligentnego domu postanowiłem zbudować alarm powiadamiający mnie o otwarciu okna za pomocą pisku buzzera. Zasada działania jest prosta: gdy dwie części czujnika zostaną rozwarte, buzzer włącza się i wydaje dźwięk aż do wciśnięcia przycisku; po wciśnięciu przycisku alarm włączy się po zamknięciu albo ponownym otwarciu okna.

UWAGA! Ten projekt nie jest systemem alarmowym ani antywłamaniowym! Nie powinien być stosowany zamiennie z prawdziwymi, zabezpieczonymi systemami alarmowymi!

Co będzie potrzebne?

Części:

  1. Mikrokontroler ATtiny 13a lub jego odpowiednik
  2. Magnetyczny czujnik otwarcia okna (może być zwykły kontaktron)
  3. Przycisk
  4. Buzzer z generatorem
  5. 2x złącza śrubowe (ARK) 2-pinowe
  6. Płytka uniwersalna
  7. Programator (jednorazowo)
  8. Źródło zasilania (np. koszyczek na baterie)
  9. Obudowa (opcjonalna)

Budowa

Komponenty należy zlutować zgodnie z poniższym schematem:

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Opublikuj swój projekt i odbierz 50% rabatu do wykorzystania w sklepie Nettigo.pl

Objaśnienie:

  • B1 – buzzer; jest podłączony do ATtiny przez rezystor R1 dla zabezpieczenia (bez niego moje ATtiny resetowało się zaraz po włączeniu buzzera)
  • J1 – złącze do podłączenia zasilania; przy zasilaniu widnieje napis 5V ale moje ATtiny działa bez problemów w napięciach od 3V do 7V.
  • J2 – złącze przeznaczone do podłączenia czujnika otwarcia okna
  • S1 – przycisk wyłączający alarm

Tak wygląda przykładowa płytka po lutowaniu:

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Jeśli płytka jest już gotowa, należy zaprogramować mikrokontroler. Program sterujący alarmem jest bardzo prosty: gdy czujnik przestanie zwierać złącze J2, mikrokontroler uruchamia buzzer, a po wciśnięciu przycisku go wyłącza. Oto program:

#define PBUZ 4 // Pin buzzera
#define PSEN 2 // Pub sensora
#define PBUT 3 // Pin przycisku

bool sprev = LOW;
bool snow = LOW;

void setup() {
  pinMode(PBUZ, OUTPUT);
  pinMode(PSEN, INPUT_PULLUP);
  pinMode(PBUT, INPUT_PULLUP);
}

void loop() {
  sprev = snow;
  snow = digitalRead(PSEN);
  if(snow == HIGH && sprev == LOW) digitalWrite(PBUZ, HIGH);
  if(digitalRead(PBUT) == LOW) digitalWrite(PBUZ, LOW);
}

Po zaprogramowaniu przyszedł czas na ostatni, opcjonalny krok: umieszczenie całości w obudowie. Ja mój układ zamknę w małym pudełku śniadaniowym. W obudowie zależy zrobić kilka otworów: jeden do przepuszczenia kabli dla czujnika i drugi na umieszczenie przycisku. Razem z płytką w obudowie umieściłem też koszyczek z 4 bateriami typu AA, żeby zasilać układ. Oto kilka zdjęć gotowego projektu:

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Tutaj projekt w pudełku.

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Tutaj widać wszystkie „wnętrzności” projektu (drobna uwaga: przycisk z płytki uniwersalnej przeniosłem na ściankę obudowy).

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Na tym zdjęciu po prawej widać pudełko z płytką i bateriami, a po lewej na oknie czujnik otwarcia przykleiłem czarną taśmą.

EDIT:

Poprawiłem nieco całość. Usunąłem taśmę z czujników i przykleiłem je gorącym klejem, a obudowę z układem umieściłem pod parapetem, wpadłem na ciekawy pomysł: zamiast przyklejać obudowy, umieściłem na niej i pod parapetem rzepy, które pozwolą mi wymienić baterie lub coś poprawić.

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Tutaj czujniki przyklejone gorącym klejem.

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Tutaj obudowa umieszczona pod parapetem. Zdjęcie jest trochę prześwietlone, bo moje okno jest umiejscowione od strony południowej, a nie mam jeszcze zasłon.

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Ocena: 2.71/5 (głosów: 7)
Nettigo - patron działu Elektronika

Podobne posty

6 komentarzy do “Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

  • A próbowałeś buzer podłączyć przez tranzystor?
    Podejrzewam, że procek się restartuje, bo pobierasz za duży prąd.

    I druga uwaga: w opisie ostatniego zdjęcia pomyliłeś strony ;-)

    I ja chyba jestem już stary… ale taką samą funkcjonalność dałoby się zrobić bez procesora

    Odpowiedz
  • Jak dla mnie to totalna klapa… Wybacz za takie słowa, ale projekt w 5minut zrobiony nie zasługuje na główna.
    Widać, że kuleje u Ciebie znajomość elektroniki (wiadomo każdy się uczy) i tak jak pisze kolega wyżej przydałby się tranzystor do sterowania tym buzzerem, a druga sprawa to jeśli nie wyłączasz funkcji reset procka w fusebitach to podciągnij ten pin (reset) do 5V poprzez rezystor np 10k.

    Masz tu trochę teorii może się przyda :
    http://mikrokontrolery.blogspot.com/p/spis-tresci.html#dzial_jak_zaczac

    Kolejna sprawa … czemu taka obudowa ? Toż można to upchnąć w pudełku od zapałek :)
    Powiem Ci, że ja bym takie urządzenie widział w jakimś attiny10 , zasilanym bateria cr2032, następnie usypianie uC i wybudzanie go z uśpienia poprzez przerwanie (w tym wypadku od otwarcia okna) , zaoszczędzisz miejsce i zyskasz na estetyce, a jak wszystko dorze dobrane zostanie to na tej bateryjce długo taki układ pociągnie :)

    Wiec na koniec pozdrawiam i życzę udanych konstrukcji :)

    Odpowiedz
  • Ja się zastanawiam po co tam attiny?!
    Wystarczyłoby podłączyć ten przełącznik bezpośrednio do brzęczyka i by działało.
    Poza tym taki projekt to raczej nie na główną.

    Odpowiedz
    • Alarm ma być skasowany przyciskiem bez względu na stan otwarcia okna.

      Ps.
      Zgadzam się w części z kolegami krytykującymi ten projekt. Ale weźcie pod uwagę wiek autora. Ma 13 lat i jeśli nie ma z boku wsparcia doświadczonej w elektronice osoby, to i tak sukces, że coś takiego wykonał samodzielnie.

      Autorze, proponuję zarejestrować się na forum majsterkowo i tam omówić z forumowiczami projekt przed jego publikacją. Forumowicze zapewne doradzą i podpowiedzą, więc przyszłe projekty nie będą skazane na niską ocenę.

      Odpowiedz
  • Autorze, piszesz, że (cytuję): „po wciśnięciu przycisku alarm włączy się po zamknięciu albo ponownym otwarciu okna”. Jesteś pewien, że tak to działa? Po patrząc po „programie”:
    if(snow == HIGH && sprev == LOW) digitalWrite(PBUZ, HIGH);
    Moim zdaniem oznacza to, że buzer zostanie włączony, jeśli stan kontaktronu zmieni się z LOW na HIGH (czyli czujnik był zwarty i zostanie otwarty).
    Mam rację?

    Odpowiedz

Odpowiedz

anuluj

Czujnik otwarcia okna/drzwi z ATtiny 13a i buzzerem

Nie przegap nowych projektów!

Zapisując się na nasz Newsletter będziesz miał pewność, że nie przegapisz żadnego nowego projektu opublikowanego w Majsterkowie!

Od teraz nie przegapisz żadnego projektu!

Masz uwagi?