Ovládanie garážovej brány pomocou GSM

Ovládanie garážovej brány pomocou GSM
Miroslav Pivovarsky Pridal  Miroslav Pivovarsky
  1096 zobrazení
3
 0
Zaujímavé zapojenia

Určite viac z vás už niekedy chcelo diaľkové ovládanie brány pomocou GSM, no komerčne riešenia sú príliš drahé, prípadne vždy im chýba kúsok funkcionality ktorý by ste ocenili.

Obsah:

  1. Parametre zariadenia
  2. HW riešenie
  3. Zoznam súčiastok
  4. Schéma zapojenia
  5. Plošný spoj
  6. GSM Modul
  7. Osadené zariadenie
  8. Riadiaci SW
  9. Príkazy pre ovládanie brány
  10. Zdroje

Práve preto vznikol tento projekt, ktorý je primárne určený pre diaľkové ovládanie motorizovanej garážovej brány. Ale kedže na výstupe je svorkovnica spínana pomocou RELÉ, tak je iba na vašej fantázii ako to využijete.
V GSM module musí byť použitá SIM karta ktorá podporuje službu CLIP, no služba je už štandardne aktívna na všetkých kartách. Pri prezvonení na  tel.číslo, ak všetko funguje správne, tak v okamihu ako zistí procesor, že niekto volá na dané tel.číslo, zruší hovor. Následne vyčíta z akého tel.čísla bol prichádzajúcu hovor a skontroluje tel.číslo v EEPROM pamäti, či je medzi číslami, ktoré majú prístup k ďalšej funkcionalite. Ak sa nachádza tel.číslo v uloženom  zozname, potom sa po dobu 1000mS zopne výstupná svorkovnica s popisom RELE. Ak sa dané tel.číslo nenachádza v zozname, nestane sa nič.
Zvyčajne garážové brány, využívaju pre manuálnu obsluhu jeden špecifický vstup, ktorý ak zopnete prvý krát proti zemi, brána sa otvorí, v prípade, že bola zatvorená. Ale ak je brána otvorená, a zopnete daný vstup proti zemi, brána sa zatvorí. Práve pre takúto aplikáciu je určené toto zariadenie. Pri prezvonení sa zopne RELE, ktoré uzemní daný vstup, a tým sa môže brána otvoriť alebo zatvoriť.
Aktuálne existujú dve HW verzie. Prvá verzia obsahuje iba RELE pre spínanie  (HW verzia 1.0), a druhá verzia (HW verzia 1.1) obsahuje jeden digitálny vstup oddelený optickým členom. HW verzia 1.1 vznikla až po osadení plošného spoja, a uvedomení si, že by sa zišiel aj digitálny vstup.

1. Parametre zariadenia:

  • Rozmery: 70x49x20mm
  • Napájacie napätie 4.5-40V DC
  • DC-DC menič LM2596
  • Maximálny spínaný prúd pomocou RELE: 0.5A pri 125VAC alebo 1A pri 24VDC
  • Použitá NANO Sim karta
  • Arduino Nano s atmega328P
  • Čínsky GSM modul A6
  • Externá GSM anténa

2. HW riešenie

Zapojenie je v princípe triviálne. Ide o prepojenie Arduino Nano s MCU Atmega328P a lacného čínskeho GSM modulu A6. V zapojení je využité zapojenie dvoch samostatných relé, jedneho digitálneho vstupu (v HW verzii 1.1), a napájacieho modulu LM2596.
Zapojenie využíva 2 samostatné RELE, pričom jedno RELE je stále pod napätím, a druhé RELE je odpojené od napájania. Ide o to, že v prípade nežiadúceho "zlepenia" kontaktov na jednom z dvoch RELE, vždy dôjde k rozpojeniu výstupných kontaktov. Je to HW bezpečnostná ochrana proti "zlepeniu" RELE, stálemu zopnutiu výstupných kontaktov. Tiež v prípade ak by sa samovoľne resetol MCU, alebo vypadol elektricky prúd, ta je po zapnutí o 50% nižšia pravdepodobnosť, že dôjde k náhodnemu zapnutiu relé, a tým pádom možnosti náhodného otvorenia brány.
V návrhu PCB bol kladený dôraz na čo najmenšie rozmery v rámci využitia rôznych čínskych modulov (čiže aj relatívne malé finančné náklady), kedže krabičky s logikou motorizovanej brány sú zvyčajne malé. Štandardne sa tam nachádza jednosmerné napájanie v rozmedzí 12-24V.
Napájanie zapezpečuje DC-DC menič LM2596, ktorý má vstupný rozsah 4.5-40V DC a maximálny odoberaný prúd na výstupe meniča je 3A. Modul bol zvolený práve kôli 2A prúdovej špičke, ktorá vzniká pri registrácii GSMbmodulu v BTS stanici. Štandardný kľudový prúdový odber GSM sa pohybuje už v rozmedzí pár mA po registrácii do BTS stanice.

3. Zoznam suciastok pre HW 1.0:

V HW verzii 1.1 ešte pribudne:

  • 1x konektor Phoenix 3.5mm KF350-3.5-2P
  • 1x optoizolátor ILD213T
  • SMD rezistor 0805 10k
  • SMD rezistor 0805 470ohm

Všetky tieto súčiastky môžete ľahko nakúpiť aj v čínskych obchodoch za nízke ceny. Schéma zapojenia je identická pre oba HW verzie, v HW verzii 1.1 je iba pridaný opto izolátor pre digitálny vstup. No kedže reálne nemám osadenú HW verziu 1.1, tak budem opisovať iba HW verziu 1.0. Pre komunikáciu s GSM modemom je využitá SW sériová linka, aby bolo možné odlaďovat SW cez Mini USB konektor. Pri prenosovej rýchlosti 9600baud medzi GSM modemom a Arduinom je to SW sériova komunikácia postačujúca.


4. Schéma zapojenia

Verzia 1.0, klikni pre zväčšenie

Verzia 1.1, klikni pre zväčšenie

Jumper JP1 slúži pre nastavenie DC-DC meniča. Čiže pri prvom nastavovaní DC-DC meniša rozpojíme jumper JP1, na jumpri JP1 si zmeriame aktuálne napätie na výstupe DC meniča, a nastavíme ho na 5V, ktoré bude priamo napájať Arduino a GSM modul. Po nastavení spojíme jumper J1.

5. Plošný spoj

Top

Verzia 1.0, BOTTON

TOP

Verzia 1.1, BOTTON

6. GSM Modul

GSM modul A6 je zvyčajne dodávaný aj s malou anténou, ktorú je možné osadiť priamo na PCB. Túto anténu ale nevyužijeme.

GSM Modul si môžte zakúpiť na tomto odkaze - klikni

Kedže GSM modul dokáže slušne zarušiť okolitú elektroniku pri svojej komunikácii, práve preto je potrebné zakúpit kábel RP-SMA to U.FL, ktorý pripojíme na dosku. Následne budeme potrebovať GSM anténu s konektorom RP-SMA, ktorú vytiahneme ideálne mimo krabičku. Môžeme využiť aj štandardnú malú 4dBi WI-FI anténu, no tá nieje naladená na frekvenciu GSM, no bude to fungovať.

Další zapeklitý problém je s osadením SIM karty do GSM modulu. Ona sa tam vkladá proti zdravému sedliackemu rozumu. Výrez SIM karty nevložíme do vnútra slotu, ale smerom zo slotu von. Použitá je NANO sim.

Ak vložíte SIM kartu naopak tak ju nezničíte, no nebude to fungovat. GSM modul musí byť osadený v zastrkávacom konektore, aby sa mohol hocikedy vybrať. Problem bol s rozmiestnením súčiastok, a ak by sme ho osadili na pevno do PCB, tak viac nevyberieme SIM kartu, kôli RELE, ktoré nám budú zavadziať. Bohužiaľ bolo potrebné obetovať rozmery do výšky, na úkor šírky PCB.

7. Osadené zariadenie

 

Digitálny vstup, ktorý je pridaný v HW verzii 1.1 je možné využiť napríklad na magnetické relé, pomocou ktorého môžete kontrolovať, či sa brána určite zatvorila. Prípadne niečo iné, záleží iba od vašej kreativity.

8. Riadiaci SW

SW je napísaný v štandardnom Arduino IDE. Využíva iba základné knižnice ako:

  • EEPROM – práca s EEPROM pameäťou
  • SoftwareSerial –  práca so softwerovou sériovou linkou
  • Arduino – dátové typy a atď.
  • AVR/WDG – využitie watchdogu

SW pozostáva z knižníc:

  • GSM_Controll.ino – Obsahuje Main, Setup….
  • GSM_A6.h, GSM_A6.cpp – ktoré sa starajú o komunikáciu s GSM modemom
  • System.h, System.cpp – kde je napísaná samotná logika spínania RELE, pridávanie, a vymazávanie tel.čísla zo zoznamu, zobrazenie zoznamu tel.čísiel a tak ďalej.
  • Variable.h, Variable.cpp – globálne premenné
  • HW_cfg.h – kde je uložená konfigurácia MCU

Aktuálna SW 1.0 verzia nepracuje s digitálnym vstupom, lebo bol pridaný iba ako doplnok. V blízkej budúcnosti plánujem vytvoriť SW verziu 1.1 v ktorej bude možnosť odosielania SMS správ pri zmene digitálneho vstupu, prípadne zistiť stav digitálneho vstupu pomocou SMS správy, ako  kontrola, či ste branu, prípadne garážové dvere určite zatvorili.

Ako bolo spomínané, pri prezvonení na tel.číslo sa zopne relé po dobu 1000mS. Tento parameter je možné zmeniť v hlavičkovom súbore System.h, konkrétne parameter SYSTEM_RELE_TIMEOUT.

Aktuálne pracuje SW s 20timi uloženými tel.číslami v EEPROM. Tento parameter je tiež možné zmeniť, no prv je potrebné upraviť v System.h parameter SYSTEM_MAX_NUMBER, následne v súbore HW_cfg.h pridať ďalšiu adresu pamäte pre požadovaný počet tel. čísel a v súbore System.cpp, vo funkcii SystemGetAddress musíte pridať ďalšie adresy.

Do pamäte je možné pridávať/mazať tel. čísla pomocou SMS správ. To ale môže robiť iba MASTER číslo. MASTER číslo nemôže byť z pamäte cez SMS správu odstránené. Master číslo je potrebné pridať riadkom:

Master číslo je potrebné pridať riadkom:

SystemEepromWriteNumber("421900123456",SYSTEM_EEPROM_ADD,SYSTEM_E_NUM_MASTER);

Kde 421900123456 je naše Master tel. číslo. Tento riadok je aktuálne zakomentovaný v súbore GSM_Controll.ino, vo funkcii Setup. Po zapísani tel. čísla do EEPROM pamäte môžeme túto časť kódu zakomentovať, aby sa zpytočne neprepisovala EEPROM pamäť pri každom reštarte procesora.

Súčasťou implementácie je aj vloženie Watchdogu, čiže automatického stráženia MCU. WDG je nastavený na 8s, a ak by sa náhodou čokoľvek stalo s procesorom, bude automaticky reštartovaný pomocou WDG po čase 8s. No nie všetky Arduino Nano dosky majú v bootloaderi povolený WDG. Dá sa to jednotucho skontrolovať.

  • Povolíme sériovu konzolu, a pri štarte do nej niečo vypíšeme. Napr „Start MCU“
  • Aktivujeme WDG pomocou wd_enable(WDTO_8S);
  • Následne vložíme nekonečný cyklus while(1);

Ak je WDG povolený v bootloaderi, tak sa MCU po 8s reštartuje, a znova vypíše text do konzoly, pretože sme nereštartovali WDG timer pomocou funkcie wdg_reset(). Ak sa procesor nereštartuje, musíme nahrať do procesora bootloader, ktorý ma povolený WDG. Ideálne je to Optiboot bootloadre pre Arduino UNO zariadenie. Potom sa už ale Arduino Nano nebude správat v Arduino IDE ako Arduino NANO, ale ako Arduino UNO. No ak nam nevadí nefunkčný watchdog, nemusíme robiť nič.

9. Príkazy pre ovládanie GSM brány

Ako bolo spomínane, ovládať zariadenie, čiže spínať RELE, môžu iba tel. čísla v zozname. Existujú 3 príkazy pre nastavovanie pomocou SMS správ, ktoré môže vykonávať iba Master číslo. Pridanie tel.čísla, odobranie tel.čísla a vypísanie zoznamu povolených tel.čísiel.

  • Pridanie telefónneho čísla

Pridáme ho krátkou SMS správou „A 421901345678“. Písmeno A na začiatku určuje „Add“, a tel. číslo musí byť v danom formáte, čiže pred tel.číslon musí byť predvoľba bez znamienka +.

  • Odobratie telefónneho čísla

Môžeme vykonať pomocou príkazu „D 421901345678“, ako delete. Na tieto SMS správy neodpovie procesor žiadnou správou. Iba v sériovej konzole sa vypíše text o pridani telefónneho čísla,

  • Pre zoznam telefónnych čísiel

Ktoré môžu zopnúť relé slúži príkaz „Zoznam“, na čo nám procesor odpovie SMS správou, v ktorej sú zobrazené všetky telefónne čísla. ktoré môžu ovládať relé. Ak je pri telefónnom čísle písmeno „A“, znamená to, že dané číslo je aktívne. Ak je pri nom písmeno „D“ značí to o deaktivácii daného pamäťového slotu.

10. Zdroje

Aktuálny zdrojovy kód + HW zapojenie a design PCB s foto dokumentáciou nájdete na mojom GIT repozitári - klikni

Autor konštrukcie : Miroslav Pivovarský

Máte otázky? Kontaktujte ma - klikni

Ďakujem za prečítanie

Táto stránka obsahuje affliate odkazy pre nákup vybraných produktov. Pokiaľ nás chcete podporiť malou sumou pri písaní našich recenzií budeme radi. Ďakujeme vám



Páčil sa Vám článok? Pridajte k nemu hodnotenie, alebo podporte jeho autora.
 

       

Komentáre k článku

Zatiaľ nebol pridaný žiadny komentár k článku. Pridáte prvý? Berte prosím na vedomie, že za obsah komentára je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.
Pre komentovanie sa musíte prihlásiť.

Vaša reklama na tomto mieste

Vyhľadajte niečo na našom blogu

PCBWay Promo

ourpcb Promo

PCBWay Promo

ourpcb Promo

PCBWay Promo

ourpcb Promo


Webwiki Button