Witam
Na początku chciałbym powiedzieć, że nie mam dużego doświadczenia z platformą. Tak naprawdę poznałem ją jakieś 2 lata temu, gdy kupiłem urządzenie działające na Arduino Nano, byłem po prostu pod wrażeniem, jak coś tak prostego może w sobie ogarnąć tak wiele.
Z lutownicą jestem od dziecka czyli już jakieś 34 lata, gdyby w moich dziecięcych latach było takie cudo jak arduino, to myślę, że powstała by niejedna ciekawa rzecz na tej platformie.
No, ale dobra wracając do teraźniejszości , to udało mi się ( ze względu na to, że kiedyś bawiłem się Basic’kiem na C64 i Amosie na Amidze 500 ) napisać prosty program sterujący załączaniem/wyłaczaniem zasilania zdalnie poprzez aplikację na Windowsie (tak, udało mi się nawet napisać mały programik w VB).
Stąd narodził się pomysł by zaprząść Arduino do czegoś poważniejszego, a mianowicie do bycia systemem alarmowym.
Składowe alarmu:
Zasilanie : sieć/akumulator – tutaj sobie poradzę bez problemu
Centrala : Arduino UNO V3
Łączność : zewnętrzny moduł SMS GSM Neoway M590 (taki posiadam)
Pierwsza linia obrony PIR połączony szeregowo z czujnikiem otwarcia drzwi, reakcja po 10 sek.
Druga linia obrony wiązka laserowa, jej przerwanie powoduje uruchomienie alarmu.
Sterowanie otwieraniem i zamykaniem bramy (wliczone wyłączniki krańcowe) z klawiatury i poprzez SMS – osobny moduł z przekaźnikami oraz sterowanie z klawiatury.
Status wyświetlany na ekranie LCD (I2C)
3 diody sygnalizujące prace centrali:
-zielona rozbrojone,
-czerwona działa alarm na PIR i laser,
-niebieska – reakcja tylko na przecięcie wiązki lasera
Założenia jakie chciałem osiągnąć to:
1) 2 osobne wejścia (D9 i D10) na czujniki wyzwalające alarm, aktywowane osobno. Tj. jedno jako główne reaguje na wykryty ruch z czujki PIR Po wykryciu ruchu, czyli przerwanie obiegu na wejściu, mamy 10 sekund na wbicie kodu deaktywującego alarm.
Drugie przy wykryciu ruchu uruchamia alarm niezwłocznie (w tym przypadku przecięcie wiązki lasere we D10).
2) Uzbrajanie/rozbrajanie/wyłączenie alarmu poprzez klawiature numeryczną, lub poprzez wysłanie SMSa.
3) Otwieranie bramy/zamykanie poprzez klawiaturę, lub SMS.
4) Powiadomienie o uzbrojeniu/rozbrojeniu alarmu na wyświetlaczu oraz poprzez wiadomość SMS wysłaną na wybrany nr telefonu.
5) Gdy alarm zostanie uruchomiony zostaje jednocześnie wysłany komunikat SMS .
6) Komunikaty wyświetlane na ekranie LCD.
7) Dwa osobne kody, jeden na aktywowanie/deaktywowanie czujek PIR, drugi na aktywowanie czujnika wiązki Laserowej, czas aktywacji alarmu po wprowadzeniu kodu to 10 sekund.
8) Możliwość otwarcia bramy tylko w momencie gdy alarm jest zdezaktywowany.
9) Przekaźnik uruchamiający syrenę jest cały czas zasilany. Gdy jego zasilanie zaniknie to wtedy zostanie zasilona syrena (jest to pokazane na schemacie).
Wiem, że brzmi to może zawile, ale postaram się to szybko wytłumaczyć.
Po pierwsze dlaczego 2 kody ? A więc dlatego, że np. kodem 12345, aktywuje/deaktywuje działanie alarmu przy wykryciu ruchu na czujnikach PIR i Laser, zwłoka sygnalizacji alarmu to 10 sek. (daje nam czas na wprowadzenie kodu wyłączającego alarm).
Kodem np. 54321 aktywuje i deaktywuje tylko przerwanie wiązki laserowej, PIRy nie maja tutaj znaczenia, alarm uruchamia się od razu.
W momencie gdy uruchomi się alarm, uruchamia się syrena oraz dostaję powiadomienie SMS.
Jeśli uważam, że jest to np. fałszywy alarm, specjalnym SMSem mogę wyłączyć alarm.
Również SMSem o odpowiedniej treści mogę go załączyć (wybór trybu), lub np. otworzyć bramę, lub ją zamknąć.
Otwieranie/zamykanie bramy:
Tutaj wykorzystałbym 3 przekaźniki:
2 sterujące kierunkiem obrotu silnika i jeden odcinający jego zasilanie.
Do tego dochodzą 2 wyłączniki krańcowe, w momencie ich zwarcia praca silnika zostaje zatrzymana i zostaje wyświetlony odpowiedni komunikat na ekranie LCD oraz wysłany SMS.
Na schemacie wyłączniki korzystają z 2 wejść na Arduino, ale można użyć jednego, które będzie służyło jako sygnał STOP.
Opis stanu czujek PIR i lasera:
Myślę, że tutaj wszystko powinno pracować w obwodzie zamkniętym, czyli jego przerwanie sygnalizuje sytuację ALARMOWĄ.
Podłączenie klawiatury (4x4, 8 pinów) z tego przykładu www kropka youtube kropka com/watch?v=iXpM-v8MNAE z użyciem oporników, by użyć tylko 4 wejścia w Arduino.
Całość będzie zasilana poprzez zasilacz buforowy z sieci 220V plus AKU 12V, do tego stabilizator obniżający napięcie na 5V do zasilania przekaźników itd.
To mój pierwszy tak duży projekt i mam nadzieję, że pomożecie mi w poprawnym napisaniu kodu.
Część już zacząłem, ale nie wiem, czy idę dobrą drogą. Najgorzej jest mi zrozumieć i napisać kod tak by system rozróżniał kiedy jest uzbrojony i po wykryciu ruchu dawał 10 sekunt na wbicie kodu, tak jak wspominałem raczkuję w tym temacie więc każda pomoc będzie na wagę złota.
Być może sam projekt/schemat ma wady, to tutaj też moja prośba by je mi wskazać i pomóc zmodernizować całość tak by działała niezawodnie.
Jak na razie to testy niestety kończą się fiaskiem, utknąłem i nie wiem co dalej zrobić .
Będę wdzięczny za porady i pomoc
Pozdrawiam
Marcin
Poniżej kod:
Na początku chciałbym powiedzieć, że nie mam dużego doświadczenia z platformą. Tak naprawdę poznałem ją jakieś 2 lata temu, gdy kupiłem urządzenie działające na Arduino Nano, byłem po prostu pod wrażeniem, jak coś tak prostego może w sobie ogarnąć tak wiele.
Z lutownicą jestem od dziecka czyli już jakieś 34 lata, gdyby w moich dziecięcych latach było takie cudo jak arduino, to myślę, że powstała by niejedna ciekawa rzecz na tej platformie.
No, ale dobra wracając do teraźniejszości , to udało mi się ( ze względu na to, że kiedyś bawiłem się Basic’kiem na C64 i Amosie na Amidze 500 ) napisać prosty program sterujący załączaniem/wyłaczaniem zasilania zdalnie poprzez aplikację na Windowsie (tak, udało mi się nawet napisać mały programik w VB).
Stąd narodził się pomysł by zaprząść Arduino do czegoś poważniejszego, a mianowicie do bycia systemem alarmowym.
Składowe alarmu:
Zasilanie : sieć/akumulator – tutaj sobie poradzę bez problemu
Centrala : Arduino UNO V3
Łączność : zewnętrzny moduł SMS GSM Neoway M590 (taki posiadam)
Pierwsza linia obrony PIR połączony szeregowo z czujnikiem otwarcia drzwi, reakcja po 10 sek.
Druga linia obrony wiązka laserowa, jej przerwanie powoduje uruchomienie alarmu.
Sterowanie otwieraniem i zamykaniem bramy (wliczone wyłączniki krańcowe) z klawiatury i poprzez SMS – osobny moduł z przekaźnikami oraz sterowanie z klawiatury.
Status wyświetlany na ekranie LCD (I2C)
3 diody sygnalizujące prace centrali:
-zielona rozbrojone,
-czerwona działa alarm na PIR i laser,
-niebieska – reakcja tylko na przecięcie wiązki lasera
Założenia jakie chciałem osiągnąć to:
1) 2 osobne wejścia (D9 i D10) na czujniki wyzwalające alarm, aktywowane osobno. Tj. jedno jako główne reaguje na wykryty ruch z czujki PIR Po wykryciu ruchu, czyli przerwanie obiegu na wejściu, mamy 10 sekund na wbicie kodu deaktywującego alarm.
Drugie przy wykryciu ruchu uruchamia alarm niezwłocznie (w tym przypadku przecięcie wiązki lasere we D10).
2) Uzbrajanie/rozbrajanie/wyłączenie alarmu poprzez klawiature numeryczną, lub poprzez wysłanie SMSa.
3) Otwieranie bramy/zamykanie poprzez klawiaturę, lub SMS.
4) Powiadomienie o uzbrojeniu/rozbrojeniu alarmu na wyświetlaczu oraz poprzez wiadomość SMS wysłaną na wybrany nr telefonu.
5) Gdy alarm zostanie uruchomiony zostaje jednocześnie wysłany komunikat SMS .
6) Komunikaty wyświetlane na ekranie LCD.
7) Dwa osobne kody, jeden na aktywowanie/deaktywowanie czujek PIR, drugi na aktywowanie czujnika wiązki Laserowej, czas aktywacji alarmu po wprowadzeniu kodu to 10 sekund.
8) Możliwość otwarcia bramy tylko w momencie gdy alarm jest zdezaktywowany.
9) Przekaźnik uruchamiający syrenę jest cały czas zasilany. Gdy jego zasilanie zaniknie to wtedy zostanie zasilona syrena (jest to pokazane na schemacie).
Wiem, że brzmi to może zawile, ale postaram się to szybko wytłumaczyć.
Po pierwsze dlaczego 2 kody ? A więc dlatego, że np. kodem 12345, aktywuje/deaktywuje działanie alarmu przy wykryciu ruchu na czujnikach PIR i Laser, zwłoka sygnalizacji alarmu to 10 sek. (daje nam czas na wprowadzenie kodu wyłączającego alarm).
Kodem np. 54321 aktywuje i deaktywuje tylko przerwanie wiązki laserowej, PIRy nie maja tutaj znaczenia, alarm uruchamia się od razu.
W momencie gdy uruchomi się alarm, uruchamia się syrena oraz dostaję powiadomienie SMS.
Jeśli uważam, że jest to np. fałszywy alarm, specjalnym SMSem mogę wyłączyć alarm.
Również SMSem o odpowiedniej treści mogę go załączyć (wybór trybu), lub np. otworzyć bramę, lub ją zamknąć.
Otwieranie/zamykanie bramy:
Tutaj wykorzystałbym 3 przekaźniki:
2 sterujące kierunkiem obrotu silnika i jeden odcinający jego zasilanie.
Do tego dochodzą 2 wyłączniki krańcowe, w momencie ich zwarcia praca silnika zostaje zatrzymana i zostaje wyświetlony odpowiedni komunikat na ekranie LCD oraz wysłany SMS.
Na schemacie wyłączniki korzystają z 2 wejść na Arduino, ale można użyć jednego, które będzie służyło jako sygnał STOP.
Opis stanu czujek PIR i lasera:
Myślę, że tutaj wszystko powinno pracować w obwodzie zamkniętym, czyli jego przerwanie sygnalizuje sytuację ALARMOWĄ.
Podłączenie klawiatury (4x4, 8 pinów) z tego przykładu www kropka youtube kropka com/watch?v=iXpM-v8MNAE z użyciem oporników, by użyć tylko 4 wejścia w Arduino.
Całość będzie zasilana poprzez zasilacz buforowy z sieci 220V plus AKU 12V, do tego stabilizator obniżający napięcie na 5V do zasilania przekaźników itd.
To mój pierwszy tak duży projekt i mam nadzieję, że pomożecie mi w poprawnym napisaniu kodu.
Część już zacząłem, ale nie wiem, czy idę dobrą drogą. Najgorzej jest mi zrozumieć i napisać kod tak by system rozróżniał kiedy jest uzbrojony i po wykryciu ruchu dawał 10 sekunt na wbicie kodu, tak jak wspominałem raczkuję w tym temacie więc każda pomoc będzie na wagę złota.
Być może sam projekt/schemat ma wady, to tutaj też moja prośba by je mi wskazać i pomóc zmodernizować całość tak by działała niezawodnie.
Jak na razie to testy niestety kończą się fiaskiem, utknąłem i nie wiem co dalej zrobić .
Będę wdzięczny za porady i pomoc
Pozdrawiam
Marcin
Poniżej kod:
Code: c