Portál o rekonštrukcii kúpeľne. Užitočné rady

Domáci alarm alebo pomocou pohybového senzora a LCD monitora s Arduino. Bezdrôtový poplašný systém založený na Arduino Ako to funguje

Jeho autor chcel urobiť domáci projekt tak, aby bol lacný a bezdrôtový.
Tento domáci produkt využíva PIR pohybový senzor a informácie sa prenášajú pomocou RF modulu.

Autor chcel použiť infračervený modul, ale keďže má obmedzený dosah, navyše môže fungovať iba priamej viditeľnosti s prijímačom, preto zvolil RF modul, s ktorým dosiahne dosah približne 100 metrov.


Aby bolo pre návštevníkov pohodlnejšie prezerať si zostavu alarmu, rozhodol som sa článok rozdeliť do 5 etáp:
Fáza 1: Vytvorenie vysielača.
Fáza 2: Vytvorte prijímač.
Fáza 3: Inštalácia softvéru.
Fáza 4: Testovanie zostavených modulov.
Fáza 5: Zostavenie puzdra a inštalácia modulu do neho.

Všetko, čo autor potreboval, bolo:
- 2 dosky ARDUINO UNO/ARDUINO MINI/ARDUINO NANO pre prijímač a vysielač;
- RF modul vysielača a prijímača (433 MHz);
- snímač pohybu PIR;
- 9V batérie (2 kusy) a ich konektory;
- bzučiak;
- Dióda vyžarujúca svetlo;
- Rezistor s odporom 220 Ohmov;
- doska na chlieb;
- Prepojky/drôty/prepojky;
- Obvodová doska;
- kolíkové konektory medzi doskou;
- spínače;
- Kryty pre prijímač a vysielač;
- farebný papier;
- montážna páska;
- Sadzobný skalpel;
- horúca lepiaca pištoľ;
- Spájkovačka;
- Rezačky drôtu/nástroj na odizolovanie;
- Kovové nožnice.


1. fáza
Začnime vytvárať vysielač.
Nižšie je schéma fungovania snímača pohybu.


Samotný vysielač pozostáva z:
- Pohybový senzor;
- dosky Arduino;
- Vysielací modul.


Samotný senzor má tri výstupy:
- VCC;
- GND;
- VON.

Potom som skontroloval činnosť snímača


Pozor!!!
Pred stiahnutím firmvéru sa autor uistí, že aktuálna doska a sériový port sú správne nastavené v nastaveniach Arduino IDE. Potom som nahral skicu:

Neskôr, keď pohybový senzor zaznamená pohyb pred vami, LED dióda sa rozsvieti a na monitore uvidíte aj príslušnú správu.


Podľa schémy nižšie.


Vysielač má 3 piny (VCC, GND a Data), pripojte ich:
- výstup VCC > 5V na doske;
- GND > GND ;
- Dáta > 12 pinov na doske.

2. fáza


Samotný prijímač pozostáva z:
- RF modul prijímača;
- dosky Arduino
- Bzučiak (reproduktor).

Obvod prijímača:


Prijímač, rovnako ako vysielač, má 3 kolíky (VCC, GND a Data), pripojte ich:
- výstup VCC > 5V na doske;
- GND > GND ;
- Dáta > 12 pinov na doske.


3. fáza
Ako základ celého firmvéru si autor zvolil knižnice súborov. Stiahol som si ho a umiestnil do priečinka Arduino libraries.

Softvér vysielača.
Pred nahraním kódu firmvéru na dosku autor nastavil nasledujúce parametre IDE:
- Doska -> Arduino Nano(alebo doska, ktorú používate);
- Sériový port ->


Po nastavení parametrov autor stiahol súbor firmvéru Wireless_tx a nahral ho na dosku:

Softvér prijímača
Autor opakuje rovnaké kroky pre prijímaciu tabuľu:
- Doska -> Arduino UNO (alebo doska, ktorú používate);
- Sériový port -> COM XX (skontrolujte com port, ku ktorému je pripojená vaša doska).



Keď autor nastaví parametre, stiahne súbor wireless_rx a nahrá ho do dosky:


Potom pomocou programu, ktorý sa dá stiahnuť, autor vygeneroval zvuk pre bzučiak.

4. fáza
Ďalej, po stiahnutí softvéru, sa autor rozhodol skontrolovať, či všetko funguje správne. Autor pripojil napájacie zdroje a podal ruku pred snímač a bzučiak začal fungovať, čiže všetko funguje ako má.


5. fáza.
Konečná montáž vysielača
Najprv autor odrezal vyčnievajúce vodiče z prijímača, vysielača, arduino dosiek atď.


Potom som pomocou prepojok prepojil dosku arduino s pohybovým senzorom a RF vysielačom.


Ďalej autor začal vyrábať kryt pre vysielač.

Najprv vyrezal otvor pre vypínač, aj okrúhly otvor pre pohybový senzor a následne ho prilepil na telo.




Potom autor zroloval hárok farebného papiera a prilepil ho na prednú obálku obrazu, aby skryl vnútorné časti domáceho produktu.


Potom autor začal vkladať elektronickú náplň do puzdra pomocou obojstrannej pásky.



Konečná montáž prijímača
Autor sa rozhodol pripojiť dosku Arduino k doske plošných spojov pomocou gumičky a tiež nainštalovať RF prijímač.


Ďalej autor vyreže dva otvory na druhom puzdre, jeden pre bzučiak a druhý pre spínač.


A prilepí to.


Potom autor nainštaluje prepojky na všetky časti.




Potom autor hotovú dosku vloží do puzdra a zaistí obojstranným lepidlom.

GSM poplašný systém na Arduino

V tomto článku sa dozviete, ako si (kúpiť) sami vyrobiť GSM alarm pomocou GSM modulu a Arduina veľmi lacno. Chata, dom, garáž, byt sú ideálne na ochranu GSM alarmom.


Krok 1: Prvky
Pre tento projekt budete potrebovať:


GSM štít

Bzučiak
Poplašná siréna 12V
Napájanie 12V

Klávesnica pre Arduino
Rám.

Krok 2: Pripojenie komponentov


Najprv umiestnite GSM modul na Arduino Uno, budete musieť prispájkovať vodiče GND a VCC spolu s dvoma senzormi, bzučiakom a vstupom reléového modulu. Potom pripojte tieto spájkované vodiče k príslušnému konektoru GSM štítu. Ďalej si z týchto dielov vyrobíte konektor I/O signálu a posledná vec, ktorú budete musieť urobiť, je pripojiť klávesnicu

Arduino Uno/GSM terminály:

Pin 0: nepripojený;
Záver 1: nesúvisí;
Pin 2: nepripojený (GSM použije tento pin);
Pin 3: nepripojený (GSM použije tento pin);
Pin 4: posledný riadok pomocou klávesnice (klávesnica pin 4 - od 8);
Záver 5: nesúvisiace;
Pin 6: druhý stĺpec cez klávesnicu (pin 6 klávesnice - od 8);
Výstup 7: tretí stĺpec z klávesnice (prstová klávesnica 7 - od 8);
Pin 8: nepripojený (GSM použije tento pin);
Pin 9: nepripojený (GSM použije tento pin);
Pin 10: Údaje snímača PIR č. 2;
Pin 11: zvukový signál sirény (zadaný na vstupe reléového modulu);
Pin 12: Údaje snímača PIR č. 1;
Pin 13: vstupný signál bzučiaka;

Ako vidíte, hoci má klávesnica 8 pinov, sú zapojené len tri (jeden riadok a dva stĺpce, čo umožňuje čítanie dvoch čísel – matica 1×2), takže môžem vytvárať heslá pomocou týchto troch vodičov a nie je musíte použiť všetky kontakty z klávesnice. Je to preto, že akonáhle snímač pohybu zaznamená osobu kráčajúcu v miestnosti, táto osoba bude mať iba 5 sekúnd na vypnutie alarmu. Potom, čo sa budík nespustí pre tento moment GSM Shield vám pošle SMS alebo zavolá na vaše telefónne číslo. Arduino bolo naprogramované na uskutočnenie hovoru a akonáhle prijmete telefón, zloží sa.

Samozrejme, je možné získať falošné údaje zo senzora, takže existuje možnosť vypnúť alarm jednoduchým odoslaním SMS z telefónu do Arduina. Ďalšou možnosťou, ktorú môžete urobiť, je nastaviť štít tak, aby vám posielal jednu správu denne, aby ste vedeli, že funguje správne.

Krok 3: Kód

Stačí stiahnuť kód nižšie a skompilovať. Používa knižnice Keypad.ha GSM.h.
Stiahnuť súbor: (stiahnutia: 181)
Stiahnuť súbor: (stiahnutia: 104)

Krok 4: Záver


Vzhľadom na to, že kód Arduino Uno vám pošle textovú správu a zavolá na váš telefón len päť sekúnd po tom, čo sa niekto vláme do vášho domu, hádam budete mať dosť času zavolať políciu. Siréna samozrejme odstraší zlodejov a váš domov či iné priestory sa s pomocou tohto článku stanú bezpečnejšími.

Dnes si povieme, ako ho používať Arduino zbierať bezpečnostný systém. Naša „ochranka“ bude strážiť jeden okruh a ovládať jednu sirénu.

Pre Arduino to nie je problém a ako uvidíte z programového kódu a schémy zariadenia, môžete ľahko zvýšiť počet chránených prístupových bodov a počet notifikačných alebo indikačných zariadení.
Bezpečnostný systém môže byť použitý na ochranu veľkých predmetov (budovy a stavby), ako aj malých predmetov (debny, trezory) a dokonca aj prenosných kufríkov a kufrov. Aj keď s tým druhým treba byť opatrný, ak si na kufor, s ktorým sa rozhodnete cestovať, nainštalujete bezpečnostný systém a na niektorom letisku sa spustí varovný systém, tak si myslím, že budete mať vážny rozhovor s miestna bezpečnostná služba :-)

Zjednodušený princíp činnosti zariadenia je nasledovný (obr. 1). Po zapnutí napájania zariadenie prejde do prevádzkového režimu a čaká na zapnutie stráženia. Zapnutie a vypnutie stráženia sa vykonáva jedným tlačidlom. Pre zvýšenie bezpečnosti je lepšie umiestniť toto tlačidlo do chráneného priestoru (trezor alebo schránka). Pred zapnutím bezpečnostného režimu musia byť dvierka mierne pootvorené. Keď zapnete bezpečnostný režim (stlačte tlačidlo) elektronický obvodčaká, kým zatvoríte dvere do miestnosti (trezorové dvere, veko boxu atď.).

Na dvere (alebo dvere) musí byť nainštalovaný koncový spínač akéhokoľvek typu, o tom neskôr. Zatvorením (alebo otvorením) koncový spínač informuje zariadenie, že chránený obvod je uzavretý a zariadenie prejde do bezpečnostného režimu. Systém vás upozorní na vstup do bezpečnostného režimu dvoma krátkymi signálmi (ako napr autoalarmy). V tomto režime zariadenie „zachytí“ otvorenie dverí. Po otvorení dverí systém počká niekoľko sekúnd (ide o nastaviteľnú hodnotu, asi desať sekúnd pre izby, jednu alebo dve pre box) na vypnutie bezpečnostného režimu, ak sa tak nestane, siréna sa zapne. Algoritmus a obvod sú navrhnuté tak, že sirénu môžete vypnúť iba úplným rozobratím krytu a vypnutím napájania.

Zariadenie bezpečnostný systém veľmi jednoduché (obr. 2). Na základe dosky Arduino. Koncové spínače pripojené ako bežné tlačidlo cez pull-up odpory. Samostatne sa budem venovať koncovým spínačom. Sú buď normálne zatvorené, alebo normálne otvorené. Bežné tlačidlo môžete zapnúť ako koncový spínač, len dráha bežného tlačidla je veľmi veľká, vôľa dverí býva väčšia. Preto je potrebné vymyslieť nejaké zatláčadlo na tlačidlo a zapružiť tak, aby sa tlačidlo s dverami nerozbilo. No, ak nie ste príliš leniví, môžete ísť do obchodu a kúpiť magnetický spínač (jazýčkový spínač) (obr. 3), nebojí sa prachu a nečistôt.

Vhodný je aj koncový spínač pre autoalarmy (obr. 4). Treba poznamenať, že program je napísaný pre jazýčkový spínač. Keď sú dvere zatvorené, ich kontakt je uzavretý. Ak použijete spínač autoalarmu, potom keď sú dvere zatvorené, budú s najväčšou pravdepodobnosťou otvorené a na príslušných miestach v kóde budete musieť zmeniť 0 na 1 a naopak.

Ako sirénu navrhujem použiť zvukovú sirénu PKI-1 IVOLGA, vyrábanú v Bielorusku (obr. 5). Napájacie napätie 9 - 15 V, prevádzkový prúd 20 - 30 mA. To umožňuje jeho používanie s batériovým napájaním. Zároveň „vyrába“ 95 - 105 dB.

S takouto charakteristikou bude znieť niekoľko desiatok minút z batérie Krona. Našiel som to na internete za 110 rubľov. Tam jazýčkový spínač s magnetom stojí asi 30 rubľov. Spínač autoalarmu bol zakúpený v autodieloch za 28 rubľov. Tranzistor KT315 je možné vziať s akýmkoľvek písmenom alebo nahradiť akýmkoľvek moderným nízkovýkonným kremíkovým tranzistorom s vhodnou vodivosťou. Ak by vám hlasitosť jednej sirény nestačila (ktovie, možno ju chcete počuť na mnoho kilometrov), môžete zapojiť niekoľko sirén paralelne alebo zobrať výkonnejšiu, len v tomto prípade treba tranzistor vymeniť za výkonnejší (napríklad známa tranzistorová zostava ULN2003). Ako konektory na pripojenie jazýčkového spínača a sirény som použil najjednoduchšie konektory pre audio / video zariadenia - cena na rádiovom trhu je 5 rubľov. pre pár.

Telo zariadenia môže byť zlepené z plastu alebo preglejky; ak je chránený vážny predmet, je lepšie ho vyrobiť z kovu. Pre zvýšenie spoľahlivosti a bezpečnosti je vhodné do puzdra umiestniť batérie alebo akumulátory.

Pre zjednodušenie programového kódu neboli použité prvky šetriace energiu a batérie nevydržia dlho. Kód môžete optimalizovať alebo ešte lepšie radikálne prerobiť pomocou spracovania udalostí prerušenia a režimu spánku MK. Napájanie z dvoch štvorcových batérií zapojených do série (9 V) by v tomto prípade malo stačiť na niekoľko mesiacov.

Teraz kód

// konštanty
tlačidlo const int = 12; // pin pre tlačidlo
const int gerkon = 3; // kolík pre jazýčkový spínač
const int sirena = 2; // ovládací kolík sirény
const int led = 13; // indikačný kolík
// premenné
int buttonState = 0; // stav tlačidla
int gerkonState = 0; // stav jazýčkového spínača
int N = 0; // deaktivácia počítadla tlačidiel
void setup() (
// ovládacia siréna a indikátor - výstup
pinMode(sirena, OUTPUT);
pinMode(led, OUTPUT); // tlačidlo a jazýčkový spínač - vstupy
pinMode(gerkon, INPUT);
pinMode(tlačidlo, INPUT);
}
void loop()
digitalWrite(led, HIGH);
while(buttonState= =0)( // počkajte v slučke, kým nestlačíme tlačidlo
buttonState = digitalRead(button); // pre prepnutie do bezpečnostného režimu
}
digitalWrite(led, LOW);
buttonState = 0; // resetovanie hodnoty tlačidla
while(gerkonState= =0)( // cyklus, kým nezavrieme dvere

}
oneskorenie(500); // :-)
digitalWrite(sirena, HIGH); // Kód
oneskorenie(100); // indikácie
digitalWrite(sirena, LOW); // povoliť
oneskorenie(70); // režim
digitalWrite(sirena, HIGH); // bezpečnosť
oneskorenie(100); // upozornenie
digitalWrite(sirena, LOW); // zvuk
while(gerkonState= =1)( // počkajte, kým sa otvoria dvere
gerkonState = digitalRead(gerkon);
}
pre (int i=0; i<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead(button); // tajné tlačidlo
if (buttonState = = HIGH) ( // sledujte naše - niekoho iného
N=N+l;
}
oneskorenie(1500); // tajná funkcia :-)))
}
if (N > 0) ( // najdôležitejšia vec
digitalWrite(sirena, LOW); // nezapínajte sirénu
}
inak(
digitalWrite(sirena, HIGH); // alebo zapnite sirénu
}
digitalWrite(led, HIGH); // zapnúť indikátor N = 0;
buttonState = 0;
oneskorenie(15000); // pripomenutie pre dummy, ktorí majú radi
digitalWrite(led, LOW); // stláčanie tlačidiel bez prerušenia oneskorenia (1000);

Ahojte všetci, dnes sa pozrieme na zariadenie s názvom pohybový senzor. Mnohí z nás o tejto veci počuli, niektorí sa dokonca zaoberali týmto zariadením. Čo je to snímač pohybu? Skúsme na to prísť, takže:

Snímač pohybu alebo snímač posunu - zariadenie (zariadenie), ktoré sníma pohyb akýchkoľvek predmetov. Veľmi často sa tieto zariadenia používajú v bezpečnostných, poplachových a monitorovacích systémoch. Existuje mnoho foriem faktorov týchto snímačov, ale my budeme brať do úvahy modul snímača pohybu na pripojenie k doskám Arduino,a konkrétne od spoločnosti RobotDyn. Prečo práve táto spoločnosť? Nechcem robiť reklamu tomuto obchodu a jeho produktom, ale práve produkty tohto obchodu boli vybrané ako laboratórne vzorky z dôvodu kvalitnej prezentácie ich produktov konečnému spotrebiteľovi. Takže sa stretávame - pohybový senzor(PIR senzor) od RobotDyn:


Tieto snímače majú malú veľkosť, spotrebujú málo energie a ľahko sa používajú. Pohybové senzory RobotDyn majú navyše aj hodvábne tienené kontakty, to je samozrejme maličkosť, ale veľmi príjemná. Tí, ktorí používajú rovnaké senzory, ale iba od iných spoločností, by sa nemali obávať - ​​všetky majú rovnakú funkčnosť a aj keď kontakty nie sú označené, pinout takýchto senzorov sa dá ľahko nájsť na internete.

Hlavné technické vlastnosti snímača pohybu (PIR snímač):

Pracovná plocha snímača: od 3 do 7 metrov

Uhol sledovania: až 110 o

Prevádzkové napätie: 4,5...6 voltov

Spotreba prúdu: do 50 µA

Poznámka:Štandardnú funkcionalitu snímača je možné rozšíriť pripojením svetelného snímača na piny IN a GND a potom bude snímač pohybu fungovať len v tme.

Inicializácia zariadenia.

Po zapnutí trvá inicializácia senzora takmer minútu. Počas tohto obdobia môže snímač vydávať falošné signály; toto je potrebné vziať do úvahy pri programovaní mikrokontroléra so snímačom, ktorý je k nemu pripojený, alebo v obvodoch akčného člena, ak je pripojenie uskutočnené bez použitia mikrokontroléra.

Uhol a plocha detekcie.

Uhol detekcie (sledovania) je 110 stupňov, rozsah detekčnej vzdialenosti je od 3 do 7 metrov, obrázok nižšie zobrazuje všetko:

Nastavenie citlivosti (detekčnej vzdialenosti) a časového oneskorenia.

Nižšie uvedená tabuľka ukazuje hlavné nastavenia snímača pohybu, vľavo je podľa toho regulátor časového oneskorenia, popis je uvedený v ľavom stĺpci; možné nastavenia. Pravý stĺpec popisuje nastavenia detekčnej vzdialenosti.


Pripojenie snímača:

  • PIR senzor - Arduino Nano
  • PIR senzor - Arduino Nano
  • PIR senzor - Arduino Nano
  • PIR senzor - pre svetelný senzor
  • PIR senzor - pre svetelný senzor

Typická schéma zapojenia je znázornená na obrázku nižšie, v našom prípade je senzor znázornený konvenčne zo zadnej strany a je pripojený k Arduino Nano doske.

Náčrt znázorňujúci činnosť snímača pohybu (používame program):

/* * Senzor PIR -> Arduino Nano * Senzor PIR -> Arduino Nano * Senzor PIR -> Arduino Nano */ void setup() ( //Vytvorenie pripojenia k monitoru portu Serial.begin(9600); ) void loop( ) ( //Prečítajte prahovú hodnotu z portu A0 //zvyčajne je vyššia ako 500, ak existuje signál if(analogRead(A0) > 500) ( //Signál zo snímača pohybu Serial.println("Došlo k pohybu! !!"); ) else ( / /Žiadny signál Serial.println("Všetko je ticho...");

Náčrt je bežný test činnosti snímača pohybu, má mnoho nevýhod, ako napríklad:

  1. Možné falošné poplachy, snímač vyžaduje samoinicializáciu do jednej minúty.
  2. Pevná väzba na monitor portu, žiadne výstupné aktuátory (relé, siréna, LED indikátor)
  3. Čas signálu na výstupe snímača je príliš krátky pri detekcii pohybu je potrebné programovo oneskoriť signál na dlhšiu dobu.

Komplikovaním obvodu a rozšírením funkčnosti snímača sa môžete vyhnúť vyššie popísaným nevýhodám. Aby ste to dosiahli, budete musieť obvod doplniť reléovým modulom a cez tento modul pripojiť bežnú 220-voltovú lampu. Samotný reléový modul bude pripojený na pin 3 na doske Arduino Nano. Takže schematický diagram:

Teraz je čas mierne vylepšiť skicu, ktorá testovala pohybový senzor. V náčrte bude implementované oneskorenie vypnutia relé, pretože samotný snímač pohybu má pri spustení príliš krátky čas signálu na výstupe. Program implementuje 10-sekundové oneskorenie pri spustení senzora. V prípade potreby je možné tento čas zvýšiť alebo znížiť zmenou hodnoty premennej DelayValue. Nižšie je náčrt a video celého zostaveného obvodu v akcii:

/* * PIR senzor -> Arduino Nano * PIR senzor -> Arduino Nano * PIR senzor -> Arduino Nano * Reléový modul -> Arduino Nano */ //relout - pin (výstupný signál) pre reléový modul const int relout = 3 ; //prevMillis - premenná pre uloženie času predchádzajúceho cyklu skenovania programu //interval - časový interval pre počítanie sekúnd pred vypnutím relé unsigned long prevMillis = 0; int interval = 1000; //DelayValue - doba, počas ktorej je relé udržiavané v zapnutom stave int DelayValue = 10; //initSecond - premenná iterácie inicializačnej slučky int initSecond = 60; //countDelayOff - počítadlo časového intervalu static int countDelayOff = 0; //spúšťač - príznak spúšťania snímača pohybu static bool trigger = false; void setup() ( //Štandardný postup na inicializáciu portu, ku ktorému je pripojený reléový modul //DÔLEŽITÉ!!! - aby reléový modul zostal v počiatočnom vypnutom stave //a nespustil sa počas inicializácie, potrebujete na zapísanie //hodnoty HIGH na vstupno/výstupný port sa tým zabráni falošnému „kliknutiu“ a // sa zachová stav relé, ako bol pred zapnutím celého obvodu pinMode(relout, OUTPUT); (relout, HIGH //Všetko je tu jednoduché - počkáme, kým skončí 60 cyklov (premenná initSecond) //trvajúcich 1 sekundu, počas ktorých sa senzor „samoinicializuje“ for(int i = 0; i);< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) ( //Nastavte príznak spustenia snímača pohybu if(!trigger) ( trigger = true; ) ) //Keď je príznak spustenia snímača pohybu nastavený while(trigger) ( //Vykonajte nasledujúce pokyny //Uložte do súboru currMillis premenná //hodnota milisekúnd, ktorá uplynula od //začiatku vykonávania programu unsigned long currMillis = millis(); //Porovnaj s predchádzajúcou hodnotou milisekúnd //ak je rozdiel väčší ako zadaný interval, potom: if(currMillis); - prevMillis > interval) ( //Uložiť aktuálnu hodnotu milisekúnd do premennej prevMillis prevMillis = currMillis; //Skontrolujte počítadlo oneskorenia porovnaním s hodnotou periódy //počas ktorej by malo byť relé udržiavané v stave ON if(countDelayOff >= DelayValue) ( ​​​​//Ak je hodnota rovnaká, potom: //resetujte spúšťač pohybu príznaku aktivácie senzora = false; //Resetujte počítadlo oneskorenia countDelayOff = 0; //Vypnite relé digitalWrite( relout, HIGH); //Preruší prerušenie cyklu //Ak je hodnota stále menšia, potom //Zvýšte počítadlo oneskorenia o jeden. //Ponechanie relé v zapnutom stave digitalWrite(relout, LOW); )))))

Program obsahuje nasledujúcu štruktúru:

unsigned long prevMillis = 0;

int interval = 1000;

...

unsigned long currMillis = millis();

if(currMillis - prevMillis > interval)

{

prevMillis = currMillis;

....

// Naše operácie sú uzavreté v tele konštrukcie

....

}

Na objasnenie bolo rozhodnuté, že sa k tomuto dizajnu vyjadríme samostatne. takže, tento dizajn umožňuje vykonávať paralelnú úlohu v programe. Telo konštrukcie pracuje približne raz za sekundu, čo je uľahčené premennou interval. Po prvé, premenná currMillis je priradená hodnota vrátená pri volaní funkcie milis(). Funkcia milis() vráti počet milisekúnd, ktoré uplynuli od začiatku programu. Ak rozdiel currMillis - prevMillis väčšia ako hodnota premennej interval potom to znamená, že od začiatku vykonávania programu už uplynula viac ako sekunda a musíte uložiť hodnotu premennej currMillis do premennej prevMillis potom vykonajte operácie obsiahnuté v tele štruktúry. Ak rozdiel currMillis - prevMillis menšia ako premenná hodnota interval, potom medzi cyklami skenovania programu ešte neuplynula sekunda a operácie obsiahnuté v tele štruktúry sa preskočia.

No a na konci článku video od autora:

Povoľte javascript, aby komentáre fungovali.

Dobrý deň Opäť, viacnásobná recenzia čínskych elektronických súčiastok, ako obvykle o troche zo všetkého, pokúsim sa to skrátiť, ale bude to fungovať? Zoznámte sa teda s poplachovým systémom GSM, ktorý stojí až 700 rubľov. zaujímavé? Prosím, použite "vystrihnúť"!

Začnime! Skôr ako začnete, odporúčam vám pozrieť sa na tento, menej komponentov a väčšia autonómia. Takže „technické špecifikácie“, základné požiadavky na signalizáciu:

1) Upozorniť na aktiváciu senzorov.
2) V prípade výpadku prúdu musí byť zabezpečená určitá autonómia.
3) Ovládanie alarmu cez SMS a hovory.

Vzhľadom na to, že proces vytvorenia alarmu trval niekoľko mesiacov a niektorí predajcovia už nepredávajú komponenty, ktoré boli u nich zakúpené, budú odkazy aktualizované na produkty od iných predajcov, ktorí majú maximum alebo blízko maximálny počet predaj produktov a najlepšia cena. Ceny v recenzii sú aktuálne ku dňu jej napísania.

Zoznam toho, čo budete potrebovať:

Zoznam zmien

GSM_03_12_2016-14-38.hex- pevná prevádzka zariadenia s modemom M590.
GSM_05_12_2016-13-45.hex- pridaný príkaz konzoly memtest, ktorý optimalizuje využitie pamäte RAM.
GSM_2016_12_06-15-43.hex- pridaný výstup výsledkov príkazov do konzoly, optimalizácia pamäte. Obsadené: 49% SRAM.
GSM_2016_12_07-10-59.hex- teraz sú telefónne čísla pridané a odstránené správne. Zaneprázdnený: 49 % SRAM, 74 % Flash pamäť.
GSM_2016_12_07-15-38.hex- pridaná možnosť pripojenia pohybového senzora, pripojeného na pin A0 (v tomto prípade je pin A0 použitý ako digitálny). Pridané SMS príkazy PIRON, PIROff. Zaneprázdnený: 48 % SRAM, 76 % Flash pamäť.
GSM_2016_12_08-13-53.hex- Teraz, po úspešnom vykonaní príkazu, ktorý neodošle SMS správu ako odpoveď, zariadenie raz zabliká modrou LED. Teraz, po nesprávnom vykonaní príkazu, ktorý neodošle SMS správu, zariadenie dvakrát zabliká modrou LED. Teraz, po inicializácii parametrov zariadenia, ak je povolený „tichý“ režim (SendSms = 0), zariadenie často bliká modrou LED na 2 sekundy. Opravená chyba, kvôli ktorej nebolo číslo vždy vymazané z pamäte pomocou príkazu DeletePhone. Zaneprázdnený: 48 % SRAM, 78 % Flash pamäť.
GSM_2016_12_11-09-12.hex- Pridané konzolové príkazy AddPhone a DeletePhone, syntax je podobná SMS príkazom. Optimalizácia pamäte. Zaneprázdnený: 43 % SRAM, 79 % Flash pamäť.
GSM_2017_01_03-22-51.hex- Bola implementovaná podpora pre podobné expandéry I/O portov na čipe PCF8574 pre pripojenie ďalších 8 senzorov, vrátane jazýčkových spínačov. Automatické vyhľadávanie adries a automatické nastavenie modul. Štandardné názvy senzorov a logická úroveň ich odozvy sa menia pomocou príkazu EditSensor. Obsah poplachovej SMS pre hlavný snímač (pin D0) bol zmenený: „Alarm! Hlavný senzor! a snímač pohybu (pin A0) „Alarm! PIR senzor! Pridané príkazy EditSensor a I2CScan. Obsadené: 66 % SRAM, 92 % Flash pamäť.
GSM_2017_01_15-23-26.hex- Podpora pre modem A6_Mini. Monitorovanie prítomnosti externého napájania (pin D7). Pridané SMS príkazy WatchPowerOn, WatchPowerOff. Pridané konzolové príkazy ListConfig, ListSensor. Teraz SMS príkaz EditSensor funguje správne. Výstup informácií o ladení do monitora portov bol mierne znížený. Obsadené: 66 % SRAM, 95 % Flash pamäť.
GSM_2017_01_16-23-54.hex- Teraz je v správe s odpoveďou na SMS príkaz „Info“ hlásený aj stav snímača pohybu. Opravená chyba, kvôli ktorej sa niekedy odosielali prázdne odpovedné SMS správy. Teraz zariadenie upozorní nielen na vypnutie, ale aj na obnovenie externého napájania. Všetky modemy začali menej klepať a monitor portov je teraz o niečo čistejší. Obsadené: 66 % SRAM, 95 % Flash pamäť.
GSM_2017_02_04-20-23.hex- Opravená chyba „Sledujte zapnutie“. Teraz, po deaktivácii, je „výstražný kolík“ vypnutý. Teraz, po odstránení čísla, sa v konzole zobrazia správne informácie. Pravdepodobne opravená chyba, kvôli ktorej sa niekedy odosielali prázdne odpovedné SMS správy. Zaneprázdnený: 66 % SRAM, 90 % Flash pamäť.
GSM_2017_02_14-00-03.hex- Teraz sa štandardne odosielajú SMS správy, parameter SendSms je opäť rovný 1. Teraz, keď sú kontakty hlavného jazýčkového senzora zatvorené (zatvorenie dverí), zariadenie bliká modrou LED na 2 sekundy, čo signalizuje normálna operácia senzor Zaneprázdnený: 66 % SRAM, 90 % Flash pamäť.
GSM_2017_03_01-23-37.hex- Príkaz WatchPowerOn bol odstránený. Pridaný konzolový príkaz WatchPowerOff, identický s SMS príkazom. Pridané príkazy WatchPowerOn1, WatchPowerOn2. WatchPowerOn1 - monitorovanie externého napájania je povolené, ak je alarm zapnutý, WatchPowerOn2 - monitorovanie externého napájania je vždy povolené. Implementovaná funkcia zapnutia a vypnutia stráženia externých zariadení, slúžia na to kolíky A1(D15) a A2(D16). Alarm zapne/vypne stráženie, keď sa na kolíku A1(D15) objaví vysoká úroveň +5V alebo na kolíku A2(D16) nízka úroveň GND. Pin A1(D15) je vytiahnutý na GND, pin A2(D16) je vytiahnutý na +5V cez 20 (10) kOhm odpory. Pridané príkazy GuardButtonOn a GuardButtonOff. Teraz, po zapnutí stráženia, červená LED bliká, kým sa neskontroluje integrita obvodu hlavného jazýčkového spínača. Ak je obvod neporušený, rozsvieti sa červená LED. Obsadené: 66 % SRAM, 95 % Flash pamäť.
GSM_2017_03_12-20-04.hex- Teraz je konzola ešte čistejšia, ale ak je povolený testovací režim „TestOn“, na konzole sa zobrazia ďalšie informácie. Chyba „Odoslané!“ sa teraz v konzole zobrazuje správne. Opravená chyba „opakované falošné volanie“. Teraz by mala požiadavka na zostatok fungovať správne na všetkých modemoch. Zaneprázdnený: 67 % SRAM, 95 % Flash pamäť.
GSM_2017_04_16-12-00.hex- Opravené. Teraz príkazy Info a Money vždy pošlú SMS s odpoveďou. Príkaz GuardButtonOn bol nahradený príkazmi GuardButtonOn1 a GuardButtonOn2. Obsadené: 67 % SRAM, 99 % Flash pamäť.
GSM_2017_04_21-09-43.hex - neodporúča sa používať, len na testovacie účely, ďakujeme za identifikáciu chýb :) - Parameter sendsms teraz neovplyvňuje posielanie SMS správ na monitorovanie elektrickej siete. Pridaný SMS príkaz DelayBeforeGuard zodpovedný za oneskorenie pri zapnutí stráženia, hodnota nemôže presiahnuť 255 sekúnd. Pridaný SMS príkaz DelayBeforeAlarm, ktorý je zodpovedný za oneskorenie odoslania upozornení a zapnutie „alarm pinu“ pri spustení senzorov, hodnota nesmie presiahnuť 255 sekúnd. Príkazy ClearSMS boli odstránené, správy sa teraz vymazávajú automaticky po prijatí. Obsadené: 68% SRAM, 100% Flash pamäť.
GSM_2017_04_22-20-42.hex- Opravených viacero chýb. Príkazy ClearSMS sú opäť prítomné vo firmvéri. Optimalizácia pamäte. Zaneprázdnený: 68 % SRAM, 98 % Flash pamäť.
GSM_2017_04_23-17-50.hex- Teraz by mala požiadavka na zostatok fungovať správne na všetkých modemoch. Zapnutie a vypnutie stráženia pomocou externých zariadení teraz funguje správne. SMS odpovede z príkazu Info by nemali byť prázdne. Optimalizácia pamäte. Zaneprázdnený: 68 % SRAM, 98 % Flash pamäť.
GSM_2017_04_24-13-22.hex- Teraz sa príkazy konzoly odosielajú do modulu GSM iba vtedy, ak je povolený testovací režim. Teraz neexistuje žiadne rozdelenie medzi príkazy SMS a príkazy konzoly, všetky existujúce príkazy je možné prenášať cez SMS aj cez konzolu. Chyba s príkazom Info mohla byť opravená. Optimalizácia pamäte. Zaneprázdnený: 68 % SRAM, 94 % Flash pamäť.
GSM_2017_04_25-20-54.hex- Opravená chyba, kedy príkaz ListConfig zmenil hodnotu poslednej udalosti. Teraz sa pri zadávaní príkazov cez konzolu neodosielajú zbytočné SMS správy. Chyba s príkazom Info mohla byť opravená. Optimalizácia pamäte. Obsadené: 66% SRAM, 94% Flash pamäť.
GSM_2017_04_30-12-57.hex- Výstup je dočasne povolený Ďalšie informácie do konzoly pri odosielaní SMS správ a generovaní odpovede na príkaz Info. Chyba s príkazom Info mohla byť opravená. Optimalizácia pamäte. Obsadené: 66 % SRAM, 92 % Flash pamäť.
GSM_2017_05_06-11-52.hex- Opravené s funkciou DelayBeforeAlarm. Obsadené: 66 % SRAM, 93 % Flash pamäť.
GSM_2017_05_23-21-27.hex- Výstup informácií do konzoly bol mierne zmenený. Pridaná podpora pre moduly rozšírenia portov na PCF8574A s adresami od 0x38 do 0x3f vrátane. Opravená chyba c. Teraz sa zariadenie automaticky reštartuje po príkazoch FullReset, ResetConfig, ResetPhone a po úspešnom vykonaní príkazu MemTest. Pridaný príkaz WatchPowerTime. Teraz je možné nastaviť čas, po ktorom bude odoslaná SMS správa o vypnutí externého napájania. Zaneprázdnený: 67 % SRAM, 94 % Flash pamäť.
GSM_2017_05_26-20-22.hex- Opravená inicializácia pamäte snímača rozširujúcej dosky. Syntax príkazu AddPhone bola zmenená. Pridaný príkaz EditMainPhone. Princíp fungovania notifikačného systému bol zmenený, keď sa spustí senzor, najskôr sa odošlú SMS správy, po ktorých sa uskutočnia hlasové hovory. Poplachové SMS správy sa budú odosielať na telefónne čísla so znakom „S“ (SMS). Hlasové hovory sa budú uskutočňovať na čísla so znakom „R“ (Zvonenie). Správy o vypnutí/zapnutí externého zdroja napájania sa budú odosielať na telefónne čísla so znakom „P“ (Napájanie). Pridaný príkaz RingTime. Teraz je možné nastaviť dĺžku trvania alarmujúceho hlasového hovoru, parameter môže mať hodnotu od 10 do 255 sekúnd. Príkaz RingOn/RingOff teraz globálne zapína/vypína upozornenia na hlasové hovory. Pridaný príkaz ResetSensor. Obsadené: 68% SRAM, 99% Flash pamäť.
GSM_2017_06_02-17-43.hex- Pridaný parameter „I“ (Info) do príkazov AddPhone a EditMainPhone, ktorý je zodpovedný za sms notifikácia o zapnutí alebo vypnutí zariadenia. Teraz po pridaní hlavného čísla sa zariadenie automaticky reštartuje. Teraz môžete zadať rovnaké čísla do pamäte zariadenia. Pri pridávaní druhého a ďalších duplicitných čísel sa z nich automaticky odstránia atribúty „M“, „S“, „P“ a „I“. Tieto čísla sa použijú na opakované hlasové hovory, keď sa aktivujú senzory. Chyba s nesprávnym výstupom konzoly po vykonaní príkazu AddPhone bola opravená, teraz sa informácie po pridaní čísla nezobrazujú automaticky. Pridaný príkaz Reboot. Obsadené: 69% SRAM, 99% Flash pamäť.
GSM_2017_06_11-00-07.hex- Teraz znova, keď sú kontakty hlavného jazýčkového snímača zatvorené (zatvorenie dverí), zariadenie bliká modrou LED na 2 sekundy, čo indikuje normálnu činnosť snímača, ale neberie do úvahy, či je zariadenie zapnuté alebo odzbrojené. Príkazy RingOn/RingOff boli odstránené. Teraz je možné zariadenie deaktivovať počas alarmového hovoru, teraz sú vykonávané na pozadí. Obsadené: 69% SRAM, 99% Flash pamäť.
GSM_2017_07_04-21-52.hex- Teraz príkaz Pauza neposiela SMS s odpoveďou. Príkazy TestOn a TestOff boli odstránené. Atribút Management bol odstránený zo všetkých čísel. Zaneprázdnený: 68 % SRAM, 96 % Flash pamäť.
GSM_2017_07_24-12-02.hex- Pridané príkazy ReedSwitchOn/ReedSwitchOff na monitorovanie hlavného jazýčkového senzora, teraz ho možno zapnúť/vypnúť rovnakým spôsobom ako pohybový senzor. Opravená chyba v príkaze Info. Príkazy TestOn a TestOff sú opäť prítomné vo firmvéri. Zaneprázdnený: 68 % SRAM, 96 % Flash pamäť.
GSM_2017_07_26-10-03.hex- Pridaný príkaz ModemID. Automatická detekcia modemu sa vykoná iba vtedy, ak je hodnota tohto parametra 0. Po nastavení hodnoty parametra na 0 sa zariadenie automaticky reštartuje. Zaneprázdnený: 68 % SRAM, 98 % Flash pamäť.
GSM_2017_08_03-22-03.hex- Teraz môže alarm ovládať externé zariadenia. Na ovládanie sa používa analógový výstup A3 (D17 - používa sa ako digitálny). Úroveň logického výstupu (+5V alebo GND) je možné zmeniť po zmene úrovne pomocou konfiguračného príkazu, zariadenie sa automaticky reštartuje. Trvanie riadiaceho signálu externého zariadenia je možné zmeniť. Pridané príkazy ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open. Niektoré zmeny v logike ovládacích príkazov. Optimalizácia pamäte. Obsadené: 68% SRAM, 99% Flash pamäť.
GSM_2017_08_10-12-17.hex- Príkazy SmsOn/SmsOff, ReedSwitchOn/ReedSwitchOff, PIROn/PIROff a všetko s nimi spojené boli odstránené. Príkaz DelayBeforeAlarm bol nahradený rozšírenými príkazmi. Zmenil sa výstup príkazu Info. Výstup príkazu ListConfig do konzoly bol optimalizovaný. Teraz môžu byť kolíky D6 a A0 pripojené k ľubovoľnému digitálnych senzorov s vysokou alebo nízkou úrovňou odozvy, vrátane jazýčkových spínačov. Kolíky D6 a A0 by mali byť pripojené k zemi (GND) cez odpor 10 (20) kOhm. Ak je snímač nastavený na nízku úroveň odozvy (povolená v režime jazýčkového spínača), potom sa skontroluje integrita obvodu. Úroveň logického spúšťania pre vstupy D6 a A0 (+5V alebo GND) je možné zmeniť po zmene logická úroveň Zariadenie sa automaticky reštartuje. Pre každý zo senzorov (hlavný, druhý, rozširujúca doska PCF) je možné pri spustení nastaviť vlastný čas, po ktorom sa uskutoční upozornenie (SMS a/alebo hlasový hovor). „PIR senzor“ bol premenovaný na „Druhý senzor“. Opravená činnosť rozširujúcej karty, chyba, kvôli ktorej zariadenie vždy upozornilo na spustenie senzorov, bez ohľadu na to, či bolo zariadenie zapnuté alebo nie. Teraz môžete zvoliť prevádzkový režim, v ktorom môže zariadenie monitorovať snímače rozširujúcej karty v režime stráženia (GuardOn) aj v režime vypnutia (GuardOff). Pridané príkazy PCFForceOn/PCFForceOff, MainSensorLevelHigh/MainSensorLevelLow/MainSensorLevelOff, SecondSensorLevelHigh/SecondSensorLevelLow/SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeforeAlarm, PCFAlarmDelayBefore Obsadené: 68 % SRAM, 99 % Flash pamäť.

*Nasledujúce verzie firmvéru zahŕňajú zmeny oproti predchádzajúcim verziám.


Použité porty Arduino Nano v3

D4- výstup „alarmového“ kolíka pri spustení snímača je na tomto kolíku nastavený signál vysokej úrovne
D5- inverzný výstup „alarmového“ kolíka pri spustení snímača je na tomto kolíku nastavený signál nízkej úrovne;

D6- jazýčkový senzor. Od verzie GSM_2017_08_10-12-17.hex je možné na pin D6 pripojiť akékoľvek digitálne snímače s vysokou alebo nízkou úrovňou odozvy, vrátane jazýčkových spínačov. Pin D6 by mal byť pritiahnutý k zemi (GND) cez odpor 10 (20) kOhm.
D7- pripojený na delič napätia z externého zdroja +5V. Horné rameno 2,2 kOhm, spodné rameno 3,3 kOhm.

Delič napätia


D8- TX modem
D9- RX modem

D10- červená LED
D11- modrá LED
D12- zelená LED

Periférne pripojenie:
A0- Pohybový senzor . Od verzie GSM_2017_08_10-12-17.hex je možné na pin A0 pripojiť akékoľvek digitálne snímače s vysokou alebo nízkou úrovňou odozvy, vrátane jazýčkových spínačov. Pin A0 by mal byť pritiahnutý k zemi (GND) cez odpor 10 (20) kOhm.

A1- Vstup pre externé ovládanie. Alarm zapne/vypne, keď sa na vstupe objaví vysoká úroveň +5V.
A2- Inverzný vstup pre externé ovládanie. Alarm zapne/vypne stráženie, keď sa na vstupe objaví nízka úroveň GND.

A3- Konfigurovateľný (+5V alebo GND) výstup pre ovládanie externých zariadení. Po prijatí riadiaceho príkazu sa hodnota na tomto výstupe zmení v závislosti od toho, čo bolo nastavené na nastavený časový úsek.

A4- SDA I2C
A5- SLC I2C
, na pripojenie ďalších 8 snímačov.


Riadiace príkazy pre hex firmvér

Pozor! Oddané tímy tučným písmom môžu byť spustené iba z hlavného čísla, pretože sú zodpovedné za konfiguráciu zariadenia. Ostatné príkazy je možné vykonávať z čísel s atribútom „Management“.

SMS - ovládacie príkazy nerozlišujú veľké a malé písmená:
AddPhone- Pridajte telefónne číslo. Celkovo nie je možné pridať viac ako 9 čísel + 1 hlavné číslo, ktoré sa automaticky uloží do pamäte pri prvom zavolaní zariadenia po obnovení továrenských nastavení pomocou príkazov Resetovať telefón alebo FullReset. Tie. „Master“ je ten, kto ako prvý zavolal na zariadenie po obnovení továrenských nastavení, toto číslo sa zadá do prvej pamäťovej bunky a nie je možné ho zmeniť ani vymazať cez SMS. Nie je možné sčítať dve rovnaké čísla.
Príklad príkazu:



Syntax príkazu:

AddPhone- tím
: - oddeľovač
5 - zápis do piatej pamäťovej bunky
+71234567890 - tel
Až do verzie GSM_2017_05_26-20-22.hex:
a - Parameter „Alarm“ - na čísla s týmto parametrom budú zasielané SMS správy - správy o aktivácii alarmu a správy o zapnutí alebo vypnutí stráženia.
Od verzie GSM_2017_05_26-20-22.hex:
m - Parameter „Management“ – správa alarmov je povolená
s - parameter “SMS” - pri aktivácii snímačov bude odoslaná SMS správa
r - Parameter „Ring“ - pri aktivácii senzorov sa uskutoční hlasový hovor
p - parameter „Napájanie“ - pri zapnutí/vypnutí externého napájania bude odoslaná SMS správa
i - Parameter „Info“ - pri zapnutí alebo vypnutí stráženia bude odoslaná SMS správa
Ak chýbajú parametre „m“, „s“, „r“, „p“, „i“, telefón je uložený v pamäti, ale nie je žiadnym spôsobom využívaný.


Odstrániť telefón- Vymazať telefónne číslo.
Príklad príkazu:

Syntax príkazu:

DeletePhone - príkaz
: - oddeľovač
+71234567891 - tel


Upravte hlavný telefón- Zmeňte parametre „s“, „r“, „p“, „i“ hlavného telefónu, toto číslo je uložené v prvej bunke pamäte.
Príklad príkazu:

Syntax príkazu:

EditMainPhone - príkaz
: - oddeľovač
srpi - parametre


BalanceNum- Zmena čísla požiadavky na zostatok a spracovanie dĺžky odpovede na požiadavku. Predvolená hodnota pre Beeline: #100#L22.
Príklad príkazu:

Syntax príkazu:

BalanceNum - príkaz
: - oddeľovač
#103# - číslo žiadosti o zostatok
L24 - Dĺžka (dĺžka) preposlanej odpovede je 24 znakov, odrezali sme spam od požiadavky na zostatok.


EditSensor- Zmeňte názov senzora a úroveň logickej odozvy. Celkovo nemôže byť viac ako 8 ďalších senzorov. Po zmene parametrov je potrebné zariadenie reštartovať.
Príklad príkazu:
EditSensor:1+Datchik dvizheniya v koridore#h

Syntax príkazu:

EditSensor - príkaz
: - oddeľovač
1 - zápis do prvej pamäťovej bunky
+ - oddeľovač
Datchik dvizheniya v koridore - názov snímača nesmie presiahnuť 36 znakov vrátane medzier.
#h - Signál vysokej logickej úrovne zo snímača, po prijatí ktorého sa spustí alarm. Ak "#h" chýba, alarm sa spustí, keď zo snímača bude prijatá nízka logická úroveň.


Čas na spanie- Čas prechodu budíka do režimu spánku pri prijatí SMS príkazu „Pauza“ je uvedený v minútach. Predvolená hodnota: 15, nemôže byť menšia ako 1 alebo väčšia ako 60.
Príklad príkazu:

Syntax príkazu:

SleepTime - príkaz
: - oddeľovač
20 - 20 minút „spánku“.


AlarmPinTime- Čas, počas ktorého je alarm/inverzný kolík zapnutý/vypnutý, je uvedený v sekundách. Predvolená hodnota: 60, nemôže byť kratšia ako 1 sekunda a viac ako 43 200 sekúnd (12 hodín).
Príklad príkazu:

Syntax príkazu:

AlarmPinTime - príkaz
: - oddeľovač
30 - 30 sekúnd na zapnutie/vypnutie alarmového kolíka.


DelayBeforeGuard- Čas pred zapnutím zariadenia, po prijatí príslušného príkazu.
Príklad príkazu:

Syntax príkazu:

DelayBeforeGuard - príkaz
: - oddeľovač
25 - 25 sekúnd pred zapnutím stráženia


DelayBeforeAlarm- Čas, po ktorom bude zaslané „alarmové“ SMS upozornenie, ak alarm nebol počas tejto doby vypnutý. Nahradené rozšírenými príkazmi od verzie GSM_2017_08_10-12-17.hex
Príklad príkazu:

Syntax príkazu:

DelayBeforeAlarm - príkaz
: - oddeľovač
40 - 40 sekúnd pred odoslaním upozornenia „alarm“.


WatchPowerTime- Čas v minútach, po ktorom bude odoslaná SMS správa oznamujúca, že externý zdroj napájania je vypnutý. Ak sa externé napájanie obnoví pred uplynutím nastaveného času, správa sa neodošle.
Príklad príkazu:

Syntax príkazu:

WatchPowerTime - príkaz
: - oddeľovač
5 - 5 minút pred odoslaním SMS správy


Čas zvonenia- Trvanie alarmujúceho hlasového hovoru, parameter môže mať hodnotu od 10 do 255 sekúnd.
Príklad príkazu:

Syntax príkazu:

RingTime - príkaz
: - oddeľovač
40 - 40 bude trvanie hovoru 40 sekúnd, po ktorých bude zavolaný ďalší účastník.


ModemID - Nútená inštalácia model použitého modemu. Možné hodnoty: 0 - automatická detekcia modemu, 1 - M590, 2 - SIM800l, 3 - A6_Mini.
Príklad príkazu:

Syntax príkazu:

ModemID - príkaz
: - oddeľovač
2 - ID modemu.


ExtDeviceTime- Počet sekúnd, o ktoré sa zmení úroveň signálu na riadiacom výstupe externého zariadenia.
Príklad príkazu:

Syntax príkazu:

ExtDeviceTime- príkaz
: - oddeľovač
5-5 sekúnd


ExtDeviceLevelLow- Externé zariadenie pripojené k výstupu A3 je riadené nízkou úrovňou signálu (GND). Výstup bude štandardne nastavený na vysokú úroveň +5 V, kým nebude prijatý riadiaci príkaz z externého zariadenia
ExtDeviceLevelHigh- Externé zariadenie pripojené k výstupu A3 je riadené vysokou úrovňou signálu (+5V). Výstup bude štandardne nastavený na nízku úroveň GND, kým sa neprijme príkaz na ovládanie externého zariadenia.

ResetSensor- resetujte snímače expandéra portov

ResetConfig- resetovanie nastavení na výrobné nastavenia

Resetovať telefón- vymazanie všetkých telefónnych čísel z pamäte

FullReset- obnoviť nastavenia, vymazať všetky telefónne čísla z pamäte, obnoviť predvolenú hodnotu príkazu BalanceNum.

RingOn- povoliť notifikáciu volaním „hlavného“ čísla zaznamenaného v prvej pamäťovej bunke pri spustení senzora. Odstránené od verzie GSM_2017_06_11-00-07.hex
Vypnuté zvonenie- vypnite upozornenie zvonením pri spustení senzora. Odstránené od verzie GSM_2017_06_11-00-07.hex

SmsOn- povoliť SMS notifikáciu pri spustení senzora. Odstránené od verzie GSM_2017_08_10-12-17.hex
SmsOff- vypnite SMS notifikáciu pri spustení senzora. Odstránené od verzie GSM_2017_08_10-12-17.hex

PIRON- povoliť spracovanie snímača pohybu
PIROff- zakázať spracovanie snímača pohybu

ReedSwitchOn- umožniť spracovanie hlavného jazýčkového senzora
ReedSwitchOff- vypnúť spracovanie hlavného jazýčkového senzora

WatchPowerOn- povoliť ovládanie externého napájania, SMS správa o vypnutí externého napájania bude odoslaná v prípade, že je zabezpečovací systém zapnutý. Odstránené od verzie GSM_2017_03_01-23-37.

WatchPowerOn1- povoliť ovládanie externého napájania, SMS správa o vypnutí externého napájania bude odoslaná v prípade, že je zabezpečovací systém zapnutý.
WatchPowerOn2- povoliť ovládanie externého napájania, v každom prípade bude odoslaná SMS správa o vypnutí externého napájania

WatchPowerOff- vypnite externé ovládanie napájania

GuardButtonOn- ovládanie alarmu externými zariadeniami alebo tlačidlom je od verzie GSM_2017_04_16-12-00 odstránené.
GuardButtonOn1- funkcia nastavenie alebo odstránenie je zapnutá ochrana externými zariadeniami alebo tlačidlom
GuardButtonOn2- funkcia iba produkcie stráženie externými zariadeniami alebo je zapnuté tlačidlo vypnutie stráženia sa vykonáva zavolaním na zariadenie alebo pomocou SMS príkazu;
GuardButtonOff- je vypnuté ovládanie alarmu externými zariadeniami alebo tlačidlom

PCForceOn- neustále sledovanie skupiny všetkých snímačov rozširujúceho modulu
PCFForceOff- monitorovanie skupiny všetkých snímačov rozširujúceho modulu iba vtedy, keď je zariadenie zapnuté

MainSensorLevelHigh- upozornenie bude odoslané, keď sa na vstupe (D6) zo snímača objaví signál vysokej úrovne (+5 V)
MainSensorLevelLow- upozornenie na alarm sa odošle, keď sa na vstupe (D6) zo snímača objaví signál nízkej úrovne (GND).
MainSensorLevelOff- spracovanie vstupu snímača (D6) je vypnuté

SecondSensorLevelHigh- upozornenie na alarm sa odošle, keď sa na vstupe (A0) zo snímača objaví signál vysokej úrovne (+5 V)
SecondSensorLevelLow- upozornenie na alarm sa odošle, keď sa na vstupe (A0) zo snímača objaví signál nízkej úrovne (GND).
SecondSensorLevelOff- spracovanie vstupu snímača (A0) je zakázané

MainDelayBeforeAlarm- čas, po ktorom bude odoslaná „alarmová“ SMS notifikácia pri spustení hlavného senzora (D6), ak počas tejto doby alarm nebol vypnutý. Syntax je rovnaká ako pri príkaze DelayBeforeAlarm.
Second DelayBeforeAlarm- čas, po ktorom sa odošle „alarmová“ SMS notifikácia pri spustení prídavného senzora (A0), ak počas tejto doby alarm nebol vypnutý. Syntax je rovnaká ako pri príkaze DelayBeforeAlarm.
PCFDelayBeforeAlarm- čas, po ktorom bude odoslaná „alarmová“ SMS notifikácia, keď sa spustia snímače rozširujúcej dosky (PCF8574), ak počas tejto doby alarm nebol deaktivovaný. Syntax je rovnaká ako pri príkaze DelayBeforeAlarm.

GuardOn - rameno
GuardOff - odstránenie ochrany

Open - príkaz na ovládanie externého zariadenia

Info - skontrolujte stav, ako odpoveď na túto správu príde SMS s informáciou, na ktorom čísle bolo zabezpečenie zapnuté/vypnuté

Pauza - pozastaví systém na dobu nastavenú príkazom sleeptime v minútach, systém nereaguje na spustenie senzora;

TestOn - testovací režim je zapnutý, modrá LED bliká.
TestOff - testovací režim je vypnutý.

LedOff - vypne LED pohotovostného režimu.
LedOn - zapne pohotovostnú LED.

Peniaze - žiadosť o zostatok.

ClearSms - Vymazanie všetkých SMS z pamäte

Príkazy konzoly (až do verzie GSM_2017_04_24-13-22.hex) - zadané v monitore portov Arduino IDE:

AddPhone – podobne ako príkaz AddPhone sms

DeletePhone – podobne ako príkaz DeletePhone sms

EditSensor – podobný príkazu EditSensor sms

ListPhone - výstup na monitor portov zoznam telefónov uložených v pamäti

ResetConfig - podobný príkazu ResetConfig sms

ResetPhone - podobný príkazu ResetPhone sms

FullReset - podobný príkazu FullReset sms

ClearSms – podobný príkazu ClearSms sms

WatchPowerOn1 – podobne ako sms príkaz WatchPowerOn1
WatchPowerOn2 – podobne ako sms príkaz WatchPowerOn2
WatchPowerOff – podobný príkazu WatchPowerOff sms

GuardButtonOn - podobný príkazu GuardButtonOn sms. Odstránené od verzie GSM_2017_04_16-12-00
GuardButtonOn1 – podobne ako sms príkaz GuardButtonOn1
GuardButtonOn2 – podobne ako sms príkaz GuardButtonOn2
GuardButtonOff – obdoba sms príkazu GuardButtonOff

Memtest - test permanentnej pamäte zariadenia budú resetované všetky nastavenia zariadenia, podobne ako pri príkaze FullReset.

I2CScan - vyhľadávanie a inicializácia podporovaných zariadení na zbernici I2C.

ListConfig - zobrazuje aktuálnu konfiguráciu zariadenia na monitore portov.

ListSensor - výstup aktuálnej konfigurácie snímača na monitor portu.

UPD. Pri použití snímača pohybu, aby sa predišlo falošným poplachom počas prevádzky modemu, je potrebné medzišpendlíky GND A A0 Arduino klásť odpor, ďakujem súdruh
AllowPhone = („70001234501“, „70001234502“, „70001234503“, „70001234504“, „70001234505“) – Čísla, ktoré môžu spravovať bezpečnosť.
AlarmPhone = (“70001234501”, “70001234502”) - Čísla na odosielanie SMS upozornení pri spustení senzora a upozornení na vypnutie alebo zapnutie stráženia. Prvé číslo v zozname sa zavolá pri spustení senzora, ak je vykonaný príkaz RingOn, táto možnosť je štandardne povolená. Je to spôsobené tým, že správy SMS môžu prísť s určitým oneskorením, ale hovor by sa mal uskutočniť okamžite.

V prípade prijatia hovoru z autorizovaného čísla alebo SMS správy s príkazom GuardOn/GuardOff bude v závislosti od aktuálneho stavu zabezpečenia odoslaná SMS správa o zapnutí alebo vypnutí stráženia na čísla uvedené v poli AlarmPhone a SMS správa bude odoslaná aj na číslo, z ktorého hovor prišiel.

Keď je senzor spustený SMS správy sa posielajú na všetky čísla z poľa AlarmPhone (zoznamu) a na prvé číslo z tohto poľa sa uskutoční hlasový hovor.

Svetelná indikácia:
LED dióda svieti na červeno - je zapnutá.
LED sa rozsvieti zelená- vypnuté, zapnuté/deaktivované SMS príkazom LedOn/LedOff.
LED neustále bliká na modro - signalizuje, že s Arduinom je všetko v poriadku, doska nie je zamrznutá, slúži výhradne na ladenie, zapína/vypína sa SMS príkazom TestOn/TestOff.
* Kód obsahuje funkciu LedTest(), bliká modrou LED, je vyrobený len na monitorovanie Arduina, bliká - to znamená, že funguje, nebliká - je zamrznutý. ešte som nezložil :)

Nie je relevantné!

Pripojenie 2 alebo viacerých snímačov pre otvorený firmvér (platí len pre tento firmvér sketch_02_12_2016.ino)
Na pripojenie ďalších jazýčkových snímačov používame voľné digitálne piny D2, D3, D5 alebo D7. Schéma zapojenia s prídavným snímačom na D7.

Nevyhnutné zmeny vo firmvéri
... #define DoorPin 6 // Číslo vstupu pripojeného k hlavnému senzoru int8_t DoorState = 0; // Premenná pre uloženie stavu hlavného snímača int8_t DoorFlag = 1; // Premenná pre uloženie stavu hlavného senzora #define BackDoorPin 7 // Číslo vstupu pripojeného k prídavnému senzoru int8_t BackDoorState = 0; // Premenná na uloženie stavu prídavného senzora int8_t BackDoorFlag = 1; // Premenná na uloženie stavu prídavného senzora...
void setup() ( ... pinMode(DoorPin, INPUT); pinMode(BackDoorPin, INPUT); ...
... void Detect() ( // Čítanie hodnôt zo snímačov DoorState = digitalRead(DoorPin); BackDoorState = digitalRead(BackDoorPin); // Spracovanie hlavného snímača if (DoorState == LOW && DoorFlag == 0) ( DoorFlag = 1; oneskorenie (100) if (LedOn == 1) digitalWrite (GLed, LOW); if (BackDoorState == LOW && BackDoorFlag == 0) ( BackDoorFlag = 1; delay(100); if (LedOn == 1) digitalWrite(GLed, LOW); Alarm(); ) if (BackDoorState == HIGH && BackDoorFlag = = 1)( BackDoorFlag = 0; oneskorenie(100); ) ) ...

A ešte jedna vec:
1. Je lepšie použiť diódy dimenzované na prúd 2 A, keďže modulom tečie prúd 1 A a stále potrebujeme niečím napájať Arduino a modem. Táto inštancia používa diódy 1N4007, ak zlyhajú, vymeňte ich za 2A.
2. Všetky odpory som použil pre LED na 20 kOhm, aby som v noci neosvetlil celú chodbu.
3. Na jazýčkový snímač som medzi pin GND a pin D6 umiestnil aj 20 kOhm rezistor.

To je zatiaľ všetko. Ďakujem za tvoju pozornosť! :)

Plánujem kúpiť +207 Pridať k obľúbeným Recenzia sa mi páčila +112 +243