Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Zlecę] Napisanie programu w C lub C++, do prostej centralki alarmowej.

Arsenek-galu 28 Jan 2021 14:29 804 6
Optex
  • #1
    Arsenek-galu
    Level 3  
    Witam serdecznie!

    Chciałbym uzyskać pomoc, od kogoś kto potrafi programować w języku C/C++ i ew. w Arduino.
    Misja do wykonania wygląda następująco.
    Projekt mojego autorstwa: Centralka alarmowa, służąca do kontrolowania jednego pomieszczenia (ilość drzwi: 1)
    Chciałbym oprogramować µ-kontroler Atmega328P (na płytce Arduino UNO R3), w ten sposób, by program został napisany w języku C, i później skompilowany do Arduino (i ew. przetłumaczony, jeśli było by to potrzebne).
    Dodam, iż jestem świeżakiem w branży programowania i nie znam się na tym na tyle, by poczynić program, którego funkcjonalność zaraz szerzej opiszę.



    Centralka alarmowa:

    1) SKŁAD ELEMENTÓW:
    ^okablowanie
    ^Zasilacz z wewnętrznym akumulatorkiem, zapewniającym zasilanie po wyłączeniu prądu AC)
    ^ indukcyjny czujnik ruchu lub kontaktron, (montowany w wewnętrznej części drzwi. (aktywuje się po otwarciu drzwi)
    ^sygnalizator optyczny (pasek czerwonych diod LED), [Sopt]
    ^sygnalizator akustyczny (syrena z alarmu samochodowego) [Saku]
    ^moduł arduino UNO R3
    ^ czujka ruchu (ze stykiem anty sabotażowym) [Cruh]
    ^ dioda mocy LED (czerwona 1W, zasilana napięciem 1,8-3V). [Lled]
    ^przycisk do załączania, który będzie ukryty (nie trzeba będzie go oprogramować) [Pzal]
    ^przycisk do uzbrojenia i uśpienia alarmu (mogą być 2 różne, lub ten sam, ew. przełącznik dźwigienkowy) -
    ten też będzie ukryty w tle, lub zamaskowany. [Pusp i Pcuw]
    ^ przycisk do restartu (sprawia, że dioda Led nie świeci ciągle, tylko mruga co 2 sekundy) {Prst}
    * proszę dopisać, jeśli coś będzie potrzebne ponad to



    2) ZASADA FUNKCJONALNOŚCI:

    Układ na być ciągle zasilany. Może znajdować się w 3-ech stanach:
    I. Uśpienia
    II. Czuwania
    II'. Alarmu.
    III. Naruszenia



    ! NA CZYM POLEGA DZIAŁANIE W KAŻDYM ZE STANÓW:

    I. czujniki mogą być aktywne, ale centralka to ignoruje. Dioda Led 1W - nie świeci, sygnalizatory są wyłączone.

    II. czujki są aktywne, centrala reaguje na to po 10 sekundowym opóźnieniu, Dioda Led miga cyklicznie (5 s nie świeci, 1 s świeci).

    Sygnalizatory wyłączone.

    II'. Dioda LED świeci ciągłym światłem, syg, opt miga cyklicznie (2 sek świeci, 2 sek nie), syg aku jest aktywny ciągle (syrena wyje)

    III. Układ działa tak jak w trybie czuwania, z tą różnicą, że dioda LED świeci światłem ciągłym, do momentu, aż układ zostanie zrestartowany przyciskiem (Prst)



    Działanie:
    Pierwsze uruchomienie, lub przywrócenie zasilania:
    Po załączeniu zasilania, licznik (timer) rusza i odlicza CZAS NA DECYZJĘ PO URUCHOMIENIU = 30 SEKUND.
    Po tym czasie, układ uzbraja się (przechodzi w stan czuwania). Dla t>30 s
    Przed tym czasem (dla t=<30 s), możliwe jest załączenie trybu Uśpienia.

    Jak załącza się tryb alarmu i ile trwa:
    Gdy UKŁAD ZNAJDUJE SIĘ W STANIE CZUWANIA i pojawi się impuls na czujniku indukcyjnym lub/i czujce ruchu, centralka ma uruchomić licznik CZASU NA WEJŚCIE = 10 s i uruchomić ALARM po tym czasie, JEŻELI NIE ZOSTANIE WŁĄCZONY TRYB UŚPIENIA szybciej niż w 10 sekund.
    CZAS TRWANIA ALARMU: ustawiony cyklicznie: 180 s-Alarm, 30 s- Przerwa, 120 s-Alarm, 30 s przerwa, 60 s- A i wyłaczenie alarmu (układ przechodzi w tryb czuwania, ale dioda LED

    Jak załączyć tryb czuwania:
    Włączyć zasilanie i poczekać 30 sekund, lub przyciskiem (Pcuw), JEŻELI CENTRALA JEST W STANIE UŚPIENIA.

    Jak uruchomić tryb uśpienia:
    Naciskając przycisk (Pusp) w czasie =<10s w przypadku aktywowania czujników (syt. gdy wchodzimy)
    lub =<30s licząc od momentu włączenia zasilania.



    ! chciałbym, aby układ posiadał możliwość rozbudowy o taką rzecz, jak wysyłanie wiadomości SMS z telefonu, lub zadzwonienie, w przypadku załączenia alarmu.
    (wyglądało by to tak,
    że stale podłączony do zasilania, stary telefon komórkowy, np legendarna nokia, lub motorolla, jest połączony jakąś linią do arduino i po pojawieniu się stanu wysokiego np.: na syg. akustycznym, została by wykonana interakcja w postaci SMS lub wykonania połączenia)



    Jeżeli ktoś podjąłby się napisania takiego programu, będę bardzo wdzięczny!
    Mile widziane komentarze, przy funkcjach realizowanych przez program.
    (Wówczas mógłbym się czegoś nauczyć po zapoznaniu się z kodem)


    Z góry dziękuję za wszelkie wskazówki !
    Pozdrawiam gorąco.
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • Optex
  • #2
    kristofsid

    Level 14  
    Witam,
    "bardzo wdzięczny!" , to konkretnie jaki budżet masz na to przeznaczony?
  • Optex
  • #3
    Arsenek-galu
    Level 3  
    To zależy od wkładu.
    Podkreślam, że post wylądował w zakładce ,,Zlecę" za sprawą moderatora.

    Nie chcę, by ktoś wykonał całą robotę, tylko by nakierował mnie w jaki sposób mam oprogramować mikro kontroler (problem mam z
    połączeniem akcji na wejściach, aby wywołały rządane interakcje na wyjściach)
  • #4
    Kuba_Cooper
    Level 3  
    if(czujka == HIGH && status == „active”){
    Syrena(1);
    }

    Nie dziękuj.

    Admin!
  • #5
    Arsenek-galu
    Level 3  
    O coś takiego mi chodziło, ale to jest w zasadzie niewielka część.
  • #6
    czareqpl
    Level 32  
    Może Kolega po prostu potrzebuje korepetycji z programowania w postaci wspólnego "za rączkę" zrealizowania tego projektu.
    Ja w ten sposób realizuję zajęcia z juniorami zamiast klepać o samych algorytmach ich wadach i zaletach...
  • #7
    ex-or
    Level 27  
    Hardware jest już gotowy, albo przynajmniej na etapie schematu ideowego albo chociaż na etapie wiedzy jakie konkretnie sygnały wystawiają czujniki? Czy też trzeba to wymyślać w trakcie pisania softu?

    To może na tę chwilę dorzucę swoją cegiełkę w dziele wspólnego nauczania ;-). Oto wstępny, zgrubny szkic automatu realizującego zadane funkcje.
    [Zlecę] Napisanie programu w C lub C++, do prostej centralki alarmowej.

    Dalej już będzie z górki ;-)