Shema ožičenja Arduino za alarmno zanko. Poceni GSM alarm z Arduino možgani. Iz česa bomo zbirali?

Vrata in okna 07.03.2020
Vrata in okna

So posebne strojne platforme, na podlagi katerih lahko ustvarite različne elektronske naprave, vključno z in . Naprave te vrste odlikuje preprosta zasnova in možnost programiranja algoritmov delovanja. Zahvaljujoč temu, ustvarjen s pomočjo Arduino GSM signalizacijo , se lahko maksimalno prilagodi objektu, ki ga bo varoval.

Kaj je modul Arduino?

Arduini so izvedeni v obliki majhnih plošč, ki imajo svoj mikroprocesor in pomnilnik. Plošča vsebuje tudi nabor funkcionalnih kontaktov, na katere lahko priključite različne elektrificirane naprave, vključno s senzorji, ki se uporabljajo za varnostne sisteme.

Procesor Arduino omogoča nalaganje programa, ki ga je napisal uporabnik sam. Z ustvarjanjem lastnega edinstvenega algoritma lahko zagotovite optimalne načine delovanja varnostnih alarmov za različne objekte in za različni pogoji uporabe in naloge, ki jih je treba rešiti.

Ali je težko delati z Arduinom?

Moduli Arduino so zelo priljubljeni med številnimi uporabniki. To je postalo mogoče zaradi svoje preprostosti in dostopnosti.

Programi za krmiljenje modulov so napisani z običajnim C++ in dodatki v obliki enostavnih funkcij za krmiljenje V/I procesov na pinih modula. Poleg tega je za programiranje mogoče uporabiti brezplačno programsko opremo Arduino IDE, ki deluje pod Windows, Linux ali Mac OS.

Z moduli Arduino je postopek sestavljanja naprav bistveno poenostavljen. Alarmni sistem GSM na Arduino je mogoče ustvariti brez potrebe po spajkalniku - montaža poteka z uporabo mize, mostičkov in žic.

Kako ustvariti alarm z uporabo Arduina?

Osnovne zahteve, ki jih mora izpolnjevati DIY gsm alarmni sistem, ustvarjen na Arduinu, vključujejo:

  • o vlomu ali vstopu obvesti lastnika objekta;
  • podporo zunanji sistemi kot so zvočna sirena, signalne luči;
  • nadzor alarma preko SMS ali klica;
  • avtonomno delovanje brez zunanjega napajanja.

Če želite ustvariti alarm, boste potrebovali:

  • Arduino modul;
  • niz funkcionalnih senzorjev;
  • ali modem;
  • avtonomni vir energije;
  • zunanji aktuatorji.

Posebnost modulov Arduino je uporaba posebnih razširitvenih plošč. Z njihovo pomočjo lahko na Arduino povežete vse dodatne naprave, ki so potrebne za sestavljanje konfiguracije varnostni sistem. Takšne plošče so nameščene na vrhu modula Arduino v obliki "sendviča", ustrezne pomožne naprave pa so povezane s samimi ploščami.

Kako deluje?

Ko se sproži eden od priključenih senzorjev, se signal prenese na procesor modula Arduino. Z uporabo prenesenega programsko opremo po meri, ga mikroprocesor obdela po določenem algoritmu. Kot rezultat tega se lahko generira ukaz za upravljanje zunanjega aktuatorja, ki se nanj prenese prek ustrezne plošče razširitvenega vmesnika.

Za zagotovitev možnosti pošiljanja opozorilnih signalov lastniku hiše ali stanovanja, ki je zaščiteno, je poseben GSM modul povezan z modulom Arduino prek razširitvene plošče. Vanj je nameščena kartica SIM enega od mobilnih ponudnikov.

Če ni posebnega adapterja za GSM, lahko svojo vlogo opravi navaden mobilni telefon. Poleg pošiljanja SMS sporočil z alarmnimi opozorili in klicanjem vam bo prisotnost mobilne komunikacije omogočila upravljanje GSM alarm na Arduino na daljavo, prav tako pa spremlja stanje objekta s pošiljanjem posebnih zahtev.

"Opomba!

Za komunikacijo z lastnikom objekta se poleg GSM modulov lahko uporabljajo navadni modemi, ki omogočajo komunikacijo preko interneta.”

V tem primeru se ob sprožitvi senzorja signal, ki ga obdela procesor, prenese preko modema na poseben portal ali spletno mesto. In s spletnega mesta se samodejno ustvari opozorilno SMS ali e-poštno sporočilo na povezano e-pošto.

zaključki

Uporaba modulov Arduino bo uporabnikom omogočila samostojno oblikovanje GSM alarmov, ki lahko delujejo z različnimi funkcionalni senzorji in upravljati zunanje naprave. Zahvaljujoč možnosti uporabe različnih senzorjev je mogoče funkcije alarma znatno razširiti in ustvariti kompleks, ki bo spremljal ne le varnost objekta, temveč tudi njegovo stanje. Na primer, mogoče bo nadzorovati temperaturo v objektu, zaznati puščanje vode in plina, zapreti njihovo oskrbo v nujnih primerih in še veliko več.

Da zaščitite svoj dom pred nepovabljenimi gosti, vse več ljudi namestite alarme. Omogočajo pravočasno opozarjanje na vdor v prostor. Danes obstajajo Različne vrste alarmi, vendar v Zadnje čase Priljubljenost GSM alarmov je začela naraščati, saj vam omogočajo prejemanje informacij o vdoru na kateri koli razdalji od predmeta, glavno je, da ima lastnik takrat pri sebi telefon in ta telefon je na spletu. Žal ti sistemi še niso preveč poceni, da bi dajali prednost izključno njim. Toda dandanes lahko preprost GSM alarm naredite kar sami. In priljubljena plošča Arduino bo pri tem pomagala.


Ta projekt je varnostni (alarmni) sistem za obveščanje vsiljivcev, ki vstopajo v hišo. Sistem uporablja tehnologijo GSM.



Na mikrokontrolersko ploščo tega varnostnega sistema je priključen modul za zaznavanje vdorov, ki lahko temelji na primer na IR senzorju ali ultrazvočnem senzorju bližine. Ko prejme signal iz takega modula, se na telefon uporabnika pošlje SMS sporočilo, ki nakazuje, da je bil njihov dom vlomljen.


Spodnja slika prikazuje blokovni diagram varnostnega sistema.



Glavna elementa sistema sta mikrokontrolerska plošča (na primer Arduino Uno) in GSM/GPRS modul SIM900A. Celoten sistem se lahko napaja iz enega samega napajalnika 12V/2A.


Spodnja slika prikazuje shema vezja domači sistem varnost z GSM, ki temelji na Arduinu.



Delovanje sistema je zelo preprosto in ne zahteva veliko razlage. Ko pride do napajanja, sistem preide v stanje pripravljenosti. Ko pa je J2 v kratkem stiku, se opozorilno sporočilo samodejno prenese na prednastavljeno številko mobilni telefon. Na vhodni priključek J2 je mogoče priključiti katerikoli senzor zaznavanja. Upoštevati je treba, da je nizka raven na pinu 1 J2 aktivna in vklopi varnostni sistem.


Poleg tega je sistem dodal možnost klica s pritiskom na gumb S2. Z gumbom S3 lahko ponastavite ta klic.


Spodaj je koda za Arduino.


//Povežite pin Tx na pin D3 modula GPS //Povežite pin Rx na pin D4 modula GPS //povežite signal za pošiljanje SMS na pin D7 (aktivna raven nizka) //Povežite signal CALL na pin D8 (aktivna raven nizka) // Povežite signal za ponastavitev klica END na pin D9 (aktivna raven nizka) #include NewSoftSerial mySerial(3,4); // konfigurirajte pine RX in TX za komunikacijo z modulom GSM #define msg_key 7 #define call_key 8 #define end_key 9 String number ="0000000000"; // Tukaj morate namesto ničel vnesti 10-mestno mobilno številko void setup() ( Serial.begin(9600); mySerial.begin(9600); pinMode(msg_key,INPUT); pinMode(call_key,INPUT) pinMode(end_key,HIGH); digitalWrite(end_key,HIGH); =LOW) / / Preverjanje, ali je gumb za pošiljanje SMS-a pritisnjen ( mySerial.println("AT+CMGF=1"); // Nastavi način kot besedilni način delay(150); mySerial.println("AT+CMGS=\ "+00"+ številka+"\""); // Določite prejemnikovo številko v mednarodni obliki, zamenjajte ničle delay(150); mySerial.print("Opozorilo! Opozorilo vsiljivca!"); // Vnesite zakasnitev sporočila(150) ); mySerial.write((byte)0x1A); // Konec znaka sporočila 0x1A: enakovredno Ctrl+z delay(50); // Izvedite klic, ko se sproži call_key else if (digitalRead (call_key)==LOW) // Preverite, ali je bila call_key že pritisnjena ( mySerial.println("ATD+91"+number+";"); //Določite številko za klic while(digitalRead(call_key)==LOW ); zamuda (50); ) //Ponastavi klic else if (digitalRead(end_key)==LOW) //Preveri, ali je gumb za ponastavitev klica že pritisnjen ( mySerial.println("ATH"); while(digitalRead(end_key)==LOW); delay (50 ) )

Tako lahko preprosto ustvarite GSM alarmni sistem na osnovi plošče Arduino z lastnimi rokami. Takšen alarmni sistem bo glede na svojo ceno zagotovo cenejši od blagovnih znamk, ki so danes na trgu, in bo deloval na skoraj enak način.

Danes bomo govorili o tem, kako uporabljati Arduino zbirati varnostni sistem. Naša "varnost" bo varovala en tokokrog in nadzorovala eno sireno.

Za Arduino to ni problem in, kot boste videli iz programske kode in diagrama naprave, lahko enostavno povečate število zaščitenih dostopnih točk in število naprav za obveščanje ali prikazovanje.
Varnostni sistem se lahko uporablja za zaščito velikih predmetov (zgradb in objektov) in majhnih predmetov (škatle, sefi) in celo prenosnih kovčkov in kovčkov. Čeprav je pri slednjem treba biti previden, če na primer namestite varnostni sistem na kovček, s katerim se odločite potovati, in se na kakšnem letališču sproži opozorilni sistem, potem mislim, da se boste resno pogovorili z lokalna varnostna služba :-)

Poenostavljeno načelo delovanja naprave je naslednje (slika 1). Po vklopu napajanja naprava preide v način delovanja in čaka na vklop. Vklop in izklop se izvede z enim gumbom. Za večjo varnost je bolje, da ta gumb postavite znotraj zaščitenega prostora (sefa ali škatle). Pred vklopom varnostnega načina je treba vrata rahlo odpreti. Ko vklopite varnostni način (pritisnite gumb) elektronsko vezje počaka, da zaprete vrata sobe (vrata trezorja, pokrov škatle itd.).

Na vratih (ali vratih) je treba namestiti končno stikalo katere koli vrste, več o tem kasneje. Z zapiranjem (ali odpiranjem) bo končno stikalo obvestilo napravo, da je zaščiteno vezje zaprto, naprava pa bo prešla v varnostni način. O vstopu v varnostni način vas bo sistem obvestil z dvema kratkima signaloma (kot pri avtomobilskih alarmih). V tem načinu naprava "ujame" odpiranje vrat. Po odpiranju vrat sistem počaka nekaj sekund (to je nastavljiva vrednost, približno deset sekund za sobe, ena ali dve za škatlo), da se varnostni način izklopi, če se to ne zgodi, se vklopi sirena. Algoritem in vezje sta zasnovana tako, da lahko sireno izklopite samo tako, da popolnoma razstavite ohišje in izklopite napajanje.

Naprava varnostni sistem zelo preprosto (slika 2). Na podlagi plošče Arduino. Končna stikala so povezana kot navaden gumb, preko vlečnih uporov. Ločeno se bom osredotočil na končna stikala. So normalno zaprti ali normalno odprti. Običajni gumb lahko vklopite kot končno stikalo, samo premikanje običajni gumb zelo velika, je zračnost vrat običajno večja. Zato je treba izmisliti nekakšen potiskalnik za gumb in ga vzmetiti, da gumba ne zlomite z vrati. No, če niste preveč leni, lahko greste v trgovino in kupite magnetno stikalo (reed stikalo) (slika 3), ne boji se prahu in umazanije.

Primerno je tudi končno stikalo za avtoalarme (slika 4). Treba je opozoriti, da je program napisan za reed stikalo. pri zaprta vrata njegov kontakt je zaprt. Če uporabljate stikalo za avtomobilski alarm, bodo vrata, ko so zaprta, najverjetneje odprta, na ustreznih mestih v kodi pa boste morali spremeniti 0 v 1 in obratno.

Kot sireno predlagam uporabo zvočne sirene PKI-1 IVOLGA, proizvedene v Belorusiji (slika 5). Napajalna napetost 9 - 15 V, delovni tok 20 - 30 mA. To omogoča uporabo z baterijskim napajanjem. Hkrati "proizvaja" 95 - 105 dB.

S takšnimi lastnostmi bo zvenel nekaj deset minut iz baterije Krona. Našel sem ga na internetu za 110 rubljev. Tam reed stikalo z magnetom stane približno 30 rubljev. Stikalo za avtomobilski alarm je bilo kupljeno pri avtomobilskih delih za 28 rubljev. Tranzistor KT315 lahko vzamete s katero koli črko ali zamenjate s katerim koli sodobnim silicijevim tranzistorjem z nizko močjo ustrezne prevodnosti. Če glasnost ene sirene ne zadošča (kdo ve, morda želite, da se sliši več kilometrov daleč), lahko povežete več siren vzporedno ali vzamete močnejšo, le v tem primeru je treba tranzistor zamenjati z močnejši (na primer znani tranzistorski sklop ULN2003). Kot priključke za priključitev reed stikala in sirene sem uporabil najpreprostejše priključke za avdio / video naprave - cena na radijskem trgu je 5 rubljev. za par.

Telo naprave je lahko zlepljeno iz plastike ali vezanega lesa; če je zaščiten resen predmet, je bolje, da je kovinski. Za večjo zanesljivost in varnost je priporočljivo, da v ohišje postavite baterije ali akumulatorje.

Za poenostavitev programske kode niso bili uporabljeni elementi za varčevanje z energijo, baterije pa ne zdržijo dolgo. Kodo lahko optimizirate ali še bolje, radikalno predelate z uporabo prekinitvene obdelave dogodkov in mirovanja MK. V tem primeru naj bi napajanje iz dveh zaporedno povezanih kvadratnih baterij (9 V) zadostovalo za nekaj mesecev.

Zdaj koda

// konstante
gumb const int = 12; // žebljiček za gumb
const int gerkon = 3; // zatič za reed stikalo
const int sirena = 2; // kontrolni zatič sirene
const int led = 13; // indikatorski zatič
// spremenljivke
int buttonState = 0; // stanje gumba
int gerkonState = 0; // stanje reed stikala
int N = 0; // deaktiviraj števec gumbov
void setup() (
// krmiljenje sirene in indikatorja - izhod
pinMode(sirena, IZHOD);
pinMode(led, IZHOD); // gumb in reed stikalo - vhodi
pinMode(gerkon, INPUT);
pinMode(gumb, INPUT);
}
void loop()
digitalWrite(led, HIGH);
while(buttonState= =0)( // čakalna zanka, dokler ne pritisnemo gumba
buttonState = digitalRead(gumb); // za preklop v varnostni način
}
digitalWrite(led, LOW);
buttonState = 0; // ponastavi vrednost gumba
while(gerkonState= =0)( // zanka, dokler ne zapremo vrat
}
zamuda (500); // :-)
digitalWrite(sirena, HIGH); // Koda
zamuda (100); // indikacije
digitalWrite(sirena, LOW); // omogoči
zamuda (70); // način
digitalWrite(sirena, HIGH); // varnost
zamuda (100); // obvestilo
digitalWrite(sirena, LOW); // zvok
while(gerkonState= =1)( // počakajte, da se vrata odprejo
gerkonState = digitalRead(gerkon);
}
za (int i=0; i<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead(gumb); // tajni gumb
if (buttonState = = HIGH) ( // sledenje našemu - tujemu
N=N+1;
}
zamuda (1500); // skrivna funkcija :-)))
}
if (N > 0) ( // najpomembnejša stvar
digitalWrite(sirena, LOW); // ne vklopi sirene
}
sicer (
digitalWrite(sirena, HIGH); // ali vključite sireno
}
digitalWrite(led, HIGH); // vklopi indikator N = 0;
buttonState = 0;
zamuda (15000); // opomnik za telebane, ki imajo radi
digitalWrite(led, LOW); // pritisnite gumbe brez zakasnitve prekinitve (1000);

Pomlad, kot veste, spremljajo vse vrste poslabšanj, zdaj pa je glavno "poslabšanje" prilezlo iz svojih lukenj na ulico, da bi si prisvojilo tisto, kar mu ne pripada. To pomeni, da postaja tema varovanja vaše lastnine bolj aktualna kot kdaj koli prej.
Na spletnem mestu je že več ocen domačih. Seveda so funkcionalni, vendar jih imajo vsi splošna lastnost- odvisnost od vtičnice. Če to ni problem pri nepremičnini, kjer je elektrika že dobavljena, kaj pa potem pri nepremičnini, kjer je vtičnica daleč ali je okolica popolnoma brez električne energije? Odločil sem se za drugo pot - sestaviti čim bolj enostavno in od električnega omrežja neodvisno napravo z dolgo življenjsko dobo, ki bo ves čas spala, ob vlomu roparjev pa se bo zagnala in poklicala lastnika na telefon, signalizacijo s preprostim alarmnim klicem.

Pregled predmetov

Kupljeno:
1. Kruh enostranski 5x7 cm: getinaks- ali steklena vlakna
* - steklena vlakna so veliko bolj kakovostna kot getinax.
2. Modul Neoway M590 - z anteno na PCB -
3. Arduino Pro Mini "RobotDyn" ATmega168PA 8MHz 3,3V -
4. Nadzorna plošča polnjenja in praznjenja litija -

Minirano iz ruševin civilizacije:
1. Stojala za plošče, izrezana iz ohišij naprav - 6 kosov.
2. Litijeva ploščata baterija 1300 mAh
3. Sponke, ki se uporabljajo za pritrditev kabla na steno
4. Radirka za pisalne potrebščine
5. Bakrena žica debeline 1,5 mm
6. Ohišje instrumentov z lokalnega radijskega trga - 1.5$
7. Par LED diod drugačna barva(povzeto iz VHS predvajalnika)
8. Antena in gumb s pokrovčkom (posneto z Wi-Fi usmerjevalnika)
9. 4-polni priključni blok (vzeto iz dimmerja)
10. Napajalni konektor (vzet iz starega polnilca za 18650)
11. 6-polni konektor (vzeto iz DVD pogona)
12. Lahko(na primer iz kave)

Arduino Pro Mini "RobotDyn" Atmega 168PA 3.3V 8MHz

Tehnični podatki:
Mikrokrmilnik: ATmega168PA
Neposredna delovna napetost: 0,8 - 5,5 V
Delovna napetost preko stabilizatorja LE33: 3,3 V ali 5 V (odvisno od modela)
Delovna temperatura:-40°C… 105°C
Vhodna napetost: 3,35–12 V (3,3 V model) ali 5–12 V (5 V model)
Digitalni vhodi/izhodi: 14 (od tega jih je 6 mogoče uporabiti kot izhode PWM: 3, 5, 6, 9, 10 in 11)
Analogni vhodi: 6
Časovniki-števci: dva 8-bitna in en 16-bitni
Načini varčevanja z energijo: 6
Enosmerni tok preko vhoda/izhoda: 40 mA
Flash pomnilnik: 16 KB (2 uporabljena za zagonski nalagalnik)
OVEN: 1 KB
EEPROM: 512 bajtov
Vir snemanja/brisanja v pomnilnik: 10.000 Flash/100.000 EEPROM
Frekvenca ure: 8 MHz (3,3 V model) ali 16 MHz (5 V model)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) in A5 (SCL)
UART TTL: 0 (RX) in 1 (TX)
Podatkovni list:

Izbira je padla na to atmego povsem po naključju. Na enem forumu, kjer so razpravljali o energetsko učinkovitih projektih, so bili v komentarjih nasveti za uporabo 168. atmega.
Vendar sem se moral poigrati, da bi našel takšno ploščo, saj so bile pogosto vse serije napolnjene s 328 atmegi pri frekvenci 16 MHz, ki delujejo od 5V. Za moj projekt so bile takšne karakteristike že od samega začetka odveč in neprijetne, iskanje pa je postalo bolj zapleteno.
Posledično sem na eBayu naletel na 3,3-voltno različico Pro Mini na Atmega 168PA, in ne le na preprosto kitajsko, ampak pod blagovno znamko RobotDyn ruskega razvijalca. Ja, sprva sem imela, tako kot ti, tudi zrno dvoma. Ampak zaman. Ko je bil projekt že sestavljen in je AliExpress uvedel obvezno plačano dostavo za poceni blago (po kateri so se paketi začeli veliko pogosteje izgubljati), sem kasneje naročil običajni Pro Mini Atmega168 (brez PA) 3,3 V 8MHz. Z obema ploščama sem malo eksperimentiral z načini varčevanja z energijo, pri čemer sem v vsako vstavil posebno skico, ki je mikrokrmilnik postavila v način največjega varčevanja z energijo, in pokazalo se je tole:
1) Arduino Pro Mini "RobotDyn": ~250µA
2) Arduino Pro Mini »NoName«: ko se napetostni stabilizator (pin RAW) napaja in je LED prispajkana, je poraba toka ~3,92 mA




- kot razumete, je razlika v porabi energije skoraj 16-krat, vse zato, ker NoName's Pro Mini uporablja kombinacijo Atmega168+, od katere sam MK poje samo 20uA tok (to sem preveril posebej), vso preostalo požrešnost predstavlja linearni napetostni pretvornik AMS1117 - podatkovni list to samo potrjuje:


V primeru plošče RobotDyn je kombinacija nekoliko drugačna - to je Atmega168PA+ - tukaj se uporablja drugačen stabilizator LDO, katerega značilnosti glede varčevanja z energijo so se izkazale za bolj prijetne:


Nisem ga odspajkal, zato ne morem reči, koliko toka Atmega168PA porabi v čisti obliki. V tem primeru sem imel dovolj ~250µA ko ga poganja Nokia litijeva baterija. Vendar, če odpajkate AMS1117 z matične plošče NoName, potem običajni ATmega168 v svoji čisti obliki, kot sem rekel zgoraj, porabi 20uA.
LED z napajalnikom lahko odbijete z nečim ostrim. To ni problem. Stabilizator smo odspajkali s sušilcem za lase. Vendar nimajo vsi sušilnika za lase in spretnosti za delo z njim, zato imata obe zgornji možnosti pravico do obstoja.

Modul Neoway M590E

Tehnični podatki:
frekvence: EGSM900/DCS1800 Dvopasovni ali GSM850/1900 ali štiripasovni
Občutljivost:-107dBm
Največja moč prenos: EGSM900 razred 4 (2W), DCS1800 razred 1 (1W)
Najvišji tok: 2A
Delovni tok: 210 mA
Tok spanja: 2,5 mA
Delovna temperatura:-40°C… +85°C
Delovna napetost: 3,3 V do 4,5 V (priporočeno 3,9 V)
Protokoli: GSM/GPRS Phase2/2+, TCP/IP, FTP, UDP itd.
Internet: GPRS RAZRED 10
Podatkovni list:

Najcenejši GSM modul, ki ga lahko najdete na trgu, običajno rabljen, spajkan ne vedno spretno s kitajskimi rokami od opreme. Zakaj ne vedno spreten? Da, vse zaradi odspajkanja s sušilcem za lase - pogosto ljudje prejmejo te module s kratkim plusom in minusom, kar je eden od razlogov za njihovo nedelovanje. Zato je prvi korak preverjanje napajalnih kontaktov za kratek stik.

Opomba. Po mojem mnenju bi rad opozoril na ločeno pomembno točko, da so ti moduli lahko opremljeni z okroglim koaksialnim priključkom za anteno, ki vam omogoča, da ločeno naročite resnejšo anteno in jo povežete z modulom brez plesa s tamburinom. Ali pa pridejo brez tega priključka. To je, če govorimo o najcenejših kompletih. Če se ne želite zanašati na srečno nesrečo, potem obstajajo nekoliko dražji kompleti, kjer je ta priključek prisoten + v kompletu je zunanja antena na tekstolitni plošči.

Ta modul je muhast tudi pri napajanju, saj na vrhuncu porabi do 2A toka, dioda, ki je v kompletu, pa je videti zasnovana tako, da zniža napetost od 5V (zato na sami plošči piše 5V ) na 4,2 V, vendar sodeč po pritožbah ljudi povzroča več težav, kot je vredno.
Recimo, da ste ta modul že sestavili in je namesto diode prispajkan mostiček, saj nanj ne bomo navajali napetosti 5 V, ampak ga bomo napajali neposredno iz litijeve baterije, kar je v dovoljenem napetostne meje 3,3-4,2V.
Treba ga bo nekako povezati z računalnikom in preveriti funkcionalnost. Za ta primer je bolje, da si enega kupite vnaprej - prek njega bomo komunicirali z modulom in ploščami Arduino prek serijskega vmesnika UART (USART).
Povezava je prikazana spodaj na sliki (narisal sem jo najbolje kot znam):
TX modem >>> RX pretvornik
RX modem<<< TX конвертера
Baterija plus - Modem plus
Negativni pol litijeve baterije je kombiniran z GND modema in GND pretvornika
Za zagon modema priključite BOOT pin skozi upor 4,7 kOhm na GND


Medtem zaženite program na vašem računalniku. Bodite pozorni na nastavitve:
1) Izberite vrata COM, na katera je priključen pretvornik TTL, v mojem primeru je to COM4, ​​vaš je lahko drugačen.
2) Izberite hitrost prenosa podatkov. (Tukaj je odtenek, ker se lahko sami moduli konfigurirajo za različne hitrosti, najpogosteje 9600 baud ali 115200 baud. Tukaj ga morate izbrati empirično, izbrati nekaj hitrosti, se povezati in poslati ukaz AT, če pride do razpok v odgovor, nato bo prekinil povezavo, izbral drugo hitrost in ponovil ukaz In tako naprej, dokler odgovor ni OK).
3) Izberite dolžino paketa (v tem primeru 8 bitov), ​​paritetni bit onemogočen (brez), stop bit (1).
4) Ne pozabite potrditi polja +CR, nato pa bo vsakemu ukazu, ki ga pošljemo modulu na koncu, samodejno dodan znak za vrnitev v prvi vrstico - modul razume ukaze samo s tem znakom na koncu.
5) Povezava, tukaj je vse jasno, kliknite in lahko delamo z modulom.

Če kliknete »Povezava« in nato zaženete modul tako, da uporabite BOOT skozi upor 4,7 K na maso, bo terminal najprej prikazal napis »MODEM:STARTUP«, nato čez nekaj časa napis »+PBREADY«, kar pomeni, da je telefonska številka prebrana knjiga, čeprav je lahko prazna:

Pod tem spojlerjem so ukazi AT s primeri

Natisnemo ukaz AT - v odgovor nam modul pošlje naš ukaz, saj je način odmeva omogočen in OK:

Preverimo stanje modema z ukazom AT+CPAS - odgovor je spet naš ukaz, +CPAS: 0 in OK.
0 pomeni, da je modul pripravljen za delovanje, vendar so lahko glede na situacijo druge številke, na primer 3 – dohodni klic, 4 – v načinu povezave, 5 – način mirovanja. Nisem mogel najti nobenih informacij o 1 in 2.

Spreminjanje hitrosti prenosa podatkov prek UART se izvede z ukazom AT+IPR=9600 - to je, če potrebujete hitrost 9600. Če kaj drugega, podobno kot AT+IPR=19200, na primer ali AT+IPR=115200.

Preverimo signal omrežja. AT+CSQ, odgovor je +CSQ: 22.1 - vrednost pred decimalno vejico ima obseg 0... 31 (115... 52 dBl) - to je nivo signala, višji kot je, bolje je. Toda 99 pomeni njegovo odsotnost. Vrednost za decimalno vejico je kakovost signala 0... 7 - tukaj je obratno, nižje kot je število, bolje je.

Onemogočimo način odmeva s pošiljanjem ukaza ATE0, da podvojeni ukazi ne motijo. Ta način se ponovno vklopi z ukazom ATE1.

Oglejte si različico vdelane programske opreme AT+GETVERS



Te in številne druge ukaze si lahko ogledate

Poravnava plošč

Če spajkanje Pro Mini na testno ploščo ni težko, potem je z GSM modulom situacija nekoliko bolj zapletena, ker njegov kontaktni glavnik se nahaja samo na eni strani in če spajkate samo njega, bo druga stran plošče preprosto visela v zraku. Potem sem spet moral izvrtati dodatne 3 luknje na oko v bližini treh vogalov na plošči. Območja okoli vsake luknje so bila nato zamaskirana. Za udobje sem odklopljene vodnike iz glavnika položil na ploščo brez spajkanja (belo) in jih po namestitvi plošče modula GSM nanje normalno spajkal:

Kasneje sem moral narediti še eno luknjo, v mojem primeru na črko "I", kjer piše "Made In China", na robu deske.


Izkazalo se je, da se je dodani kontakt, ki je v bistvu GND, nahajal poleg GND plošče Pro Mini in tako je postalo mogoče povezati maso modula GSM in Pro Mini s kapljico spajke (dolg zatič na sredini in zatič Pro Mini desno od njega) – označil sem ju s puščicami. Seveda se je izkazalo za malo ukrivljeno, zdaj pa varno drži:



Med ploščama je ostalo nekaj prostora - vanj sem postavil ploščo za nadzor polnjenja praznjenja litija s predspajkanim priključkom microUSB in spajkanimi žicami.

Šal se zelo tesno prilega, sij LED diod ob strani pa bo jasno viden skozi majhno luknjo v ohišju.



Stojala za kartice

Za varno namestitev plošče v ohišje sem moral porabiti nekaj dni za razmišljanje, kako bi to lahko implementirali. Možnost s talilnim lepilom ni bila upoštevana iz več razlogov - lahko bi odpadlo, se deformiralo in kar je najpomembneje, konstrukcijo bi bilo težko razstaviti.
Prišel sem do zaključka, da bi bila tukaj najenostavnejša in najbolj pravilna možnost uporaba stojal, ki pa jih seveda nisem imel. Vendar je bilo nekaj nedelujočih polnilnikov, iz katerih je bilo izrezano eno dolgo stojalo z navojem za samorezne vijake. Vsako stojalo je bilo razžagano na pol in nabrušeno na približno 9,5 mm - na tej višini ima baterija, ki se nahaja pod ploščo, zadosten rob približno 2 mm - to je narejeno tako, da se spajkani kontakti plošče s konicami ne dotaknite se ga in tako, da je med njima mogoče vstaviti kos pene za pritrditev.
Kar se tiče pritrditve plošče neposredno na ohišje, sem iz pločevinke za kavo izrezal štiri trakove, na katerih koncih izvrtal luknjo, nato pa jih pritrdil na iste vijake, ki so priviti v stojala. Poglejte na spodnji fotografiji, kako izgleda.
Naslednji korak je privijanje nekaj stojal na drugi strani plošče, to je na vrhu, tako da ko je ohišje zaprto, pokrov rahlo leži na teh stojalih, kar ustvarja dodatno pritrditev. Malo kasneje sem v ta namen naletel na ohišje sovjetskega propagandnega radia (če bi ga našli prej, bi od tod vzel vsa stojala), kjer sem našel nekaj bolj ali manj primernih višin, a najprej sem jih vrtal v sredini s svedrom pod samoreznimi vijaki Nato sem jih odžagal in jih tudi dodelal s pilo ter odstranil odvečno. Tukaj sem prišel do ene malenkosti - na fotografiji lahko vidite, da je eno belo stojalo privito na getinaks ploščo z roba, drugo belo pa je privijačeno direktno na modulno ploščo, ker z enega roba plošča modema v celoti pokriva spodnjo ploščo, z nasprotnega roba pa - nasprotno - spodnja že kuka ven. Hkrati je bilo treba v obe plošči izvrtati dodatne luknje, da so lahko glave vijakov prosto prehajale.
In končno, še vedno je treba zagotoviti, da je plošča vedno vzporedna s telesom - sponke, ki se uporabljajo za pritrditev žic in kablov na steno, so kot nalašč za to nalogo; prej sem odstranil žeblje z njih. Nosilci se dobro oprimejo plošče s konkavno stranjo brez kakršnih koli dodatnih pripomočkov, edino kar je desno od SIM kartice, širina nosilca se je izkazala za preveliko in sem jo moral tudi pobrusiti.
Vse podrobnosti so bile prilagojene na oko in eksperimentalno, spodaj je fotografija vseh zgoraj naštetih:



Konektorji. LED diode. Gumb.

Ker mi je zmanjkalo glavnika, sem moral odstraniti 6-pinski konektor s plošče DVD pogona, ki sem ga nato prispajkal na Pro Mini, to je zaradi udobja fleširanja plošče. V bližini sem spajkal okrogel konektor (Nokiev 3,5 mm) za polnjenje litija.

Telo 6-polnega konektorja smo rahlo dodelali s pilico, saj njeni robovi rahlo štrlijo nad telo. Polnilna vtičnica se popolnoma prilega steni ohišja.

Na drugi strani plošče sem spajkal gumb za ponovni zagon naprave in dve LED za odpravljanje napak v strojni programski opremi - rdeča LED je povezana z GSM modulom, druga zelena LED je povezana z 10. nožico Pro Mini - to je lažje odpravljam napake v programu.

Modifikacija baterije

Plošča baterija Nokia iz telefonov Nokia ni nič manj pogosta kot 18650, vendar jo mnogi preprosto nočejo uporabljati zaradi neprijetnosti pri povezovanju kontaktov, ki so globoko vstavljeni v samo baterijo. Neželeno jih je spajkati, zato je bilo odločeno, da uporabimo metodo, ki so jo predlagali, in sicer sami izdelamo kontaktni blok iz pisarniške radirke in bakrene žice (debeline 1,5 mm).
Najprej sem prebodel kos radirke z dvema žicama s predhodno oluščenimi konci in ju prilagodil kontaktom baterije, tako da je razdalja med njima sovpadala,
Konce sem upognil, pokositril s spajkalnikom in jih za dolge konce nekoliko potegnil nazaj, da so bili nastali kontakti zamaknjeni v radirko.



Preizkušanje baterije:

Kontaktni blok lahko pritrdite z gumico ali ovijete z modrim električnim trakom, kar sem na koncu tudi naredil.

Montaža.

Glavnina dela je opravljena, preostane le še montaža in snemanje.
Med baterijo in ploščo sem dal penasto gumo, da se kasneje ne bi premikala znotraj ohišja. Za napajanje modula sem dodatno spajkal kondenzator 2200 uF.

Ko je polnjenje priključeno:

Okvir. Zunanji priključni blok.

Etui je bil na voljo na lokalnem radijskem trgu za približno 1,5 dolarja, če ga preračunamo v dolarje, meril je 95 x 60 x 25 mm, kar je skoraj velikost zavojčka cigaret. Vanjo sem izvrtal več lukenj. Prvič, za 4-polni priključni blok, vzet iz nedelujočega zatemnitve.
Dva zunanja kontakta sem v celoti osvobodil vijakov z distančniki, izvrtal luknje za daljše vijake, ki bodo držali celotno spenjalno ploščo na ohišju. Na samem ohišju bosta seveda dve zunanji luknji veliki, sredinski pa manjši - skoznje bosta imeli napeljane kontakte, od katerih je eden povezan z VCC Pro Mini, drugi kontakt pa s pinom. 2.

Vrtanje lukenj, čeprav na prvi pogled preprosto opravilo, ni nič manj delovno zahtevno, zelo hitro ga je zgrešiti, zato sem se tega lotil najprej s svedrom manjšega premera, nato z večjim.

Za taktični gumb sem izbral pokrovček z rahlo vbočenim vrhom, da ga z vžigalico ali sponko zlahka dosežemo skozi ozko luknjico v etuiju.

Plošča v ohišju s priključenim pretvorniškim kablom USB-TTL:

O anteni.
Kot ste morda opazili v pregledu, se je antena nenehno spreminjala, ko sem eksperimentiral z različnimi domačimi antenami. Sprva je bil na plošči modula okrogel koaksialni konektor, ki pa je ob peti uporabi za zunanjo anteno preprosto razpadel, zato ne pozabite, da je krhek. Posledično sem iz starega usmerjevalnika iztrgal anteno na tiskanem vezju in jo prispajkal na ploščo modula, ker ... malo bolje ujame mrežo kot vzmet in žica.

No, popolnoma sestavljeno s priključenim polnjenjem izgleda takole:

Test. Kako deluje:

Poleg preizkusov z antenami sem preveril, kako se bo alarm obnašal zunaj, pri -15 zmrzali. Da bi to naredil, sem preprosto postavil celotno notranjost v posodo in jo pustil na balkonu čez noč, alarm se ni sprožil, razlog se je izkazal za na splošno očitnega - litij ne mara zmrzali. To je potrdil še en test, kjer sem baterijo pustil doma, ploščo pa skozi dolge žice odnesel ven in jo tako pustil en dan na istem mrazu - delala je kot da se ni nič zgodilo. Po drugi strani pa bi bilo čudno, če alarm ne bi deloval, ker... V podatkovnih listih za Atmega, za module in za kvarc so dovoljene delovne temperature do -40 stopinj.

Princip delovanja je organiziran z uporabo zunanje prekinitve, sprva je pin 2 zaprt na VCC in tako se na izhodu ohranja logična 1, krmilnik pa spi. Takoj, ko je kontakt prekinjen in se na pin 2 pojavi 0, se mikrokrmilnik zbudi, spusti 3. pin (na katerega je BOOT modema povezan prek upora) na maso - modul se zažene, MK občasno anketira modul za pripravljenost in takoj, ko ujame omrežje, takoj pošlje klic na telefonsko številko lastnika, navedeno v kodi. Po zavrnitvi klica se naprava izklopi, ne da bi pošiljala več neskončnih klicev, kar je težava mnogih kitajskih alarmov.

Dodatne informacije

#vključi #vključi // knjižnica programske opreme UART SoftwareSerial gsm(7, 6); // RX(7), TX(6) void wakeUp()() // prazen upravljalnik prekinitev ///////////////////////////// /////////////// void gsmOFF())( // PORTD|=(1<<3); // ВЫКЛЮЧЕНИЕ МОДУЛЯ _delay_ms(10); // gsm.println("AT+CPWROFF"); // ПЕЧАТАЕМ КОМАНДУ OFF PORTB &=~ (1<<2); // выключить LED 10 } // //========================================= void gsmON(){ // PORTD|=(1<<6); // 6-му порту (TX) назначить 1 PORTD &= ~(1<<3); // ЗАПУСК МОДУЛЯ _delay_ms(10); // while(!gsm.find("+PBREADY")); // ждём прочтения тел. книги PORTB |= (1<<2); // включить LED 10 _delay_ms(100); // while(1){ // gsm.println("AT+CREG?"); // проверяем в сети ли модуль if (gsm.find("0,1")) break; // если сеть есть, выходим из цикла _delay_ms(400); // проверка раз в 0,4 сек } // } // /////////////////////////////////////////// // void sleepNow(){ // функция засыпания ADCSRA = 0x00; // отключить подсистему АЦП (экономия 140 мкА) PORTD&=~(1<<6); // в вывод TX поставить 0 _delay_ms(100); // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна PWR_DOWN sleep_enable(); // включение сна attachInterrupt(0, wakeUp, LOW); // включить прерывания sleep_mode(); // sleep_disable(); // detachInterrupt(0); // отключить прерывания } void setup(){ gsm.begin(9600); // скорость работы UART DDRD = B01001000; // 3-й и 6-й выводы на выход DDRB |= (1<<2); // вывод 10 на выход gsmON(); // запуск модуля для теста gsmOFF(); // выключаем модуль } void loop(){ if (!(PIND&(1<<2))){ // если на 0-ом прерывании появился 0 gsmON(); gsm.println("ATD+79xxxxxxxxx;"); // отзваниваемся, в ответ приходит OK и CONNECT _delay_ms(100); if (gsm.find("OK")) while(1){ // ожидание сброса вызова gsm.println("AT+CPAS"); // при каждой итерации опрашиваем модуль if (gsm.find("0")) break; // если 0, то выходим из цикла while _delay_ms(100); // проверка раз в 0,1 сек } for (char i=0; i<14; i++){ PORTB|=(1<<2); // LED 10 ON _delay_ms(200); PORTB&=~(1<<2); // LED 10 OFF _delay_ms(200); } gsmOFF(); // выключить модуль _delay_ms(10); while(1); // блокируем программу } else { sleepNow(); // укладываем контроллер спать } }

Shema vezja (brez nadzorne plošče za polnjenje in praznjenje)



Sklepi in razmišljanja. Načrti.

Alarm se uporablja na dachi, z delom sem zadovoljen, vendar se z nadaljnjim preučevanjem AVR pojavlja vedno več idej za nadaljnje spremembe. Arduino s svojim psevdo-jezikom Wiring me je res razburil, ker ... V delu je bil odkrit en neprijeten trenutek. Ko sem uporabil funkcije vrat digitalWrite(); ali pinMode(); - iz nekega razloga je GSM modul zelo pogosto zamrznil. Vendar jih je bilo vredno nadomestiti s triki, kot je DDRB|=(1<Samo delovanje neposrednega dostopa do vrat je omogočilo, da je naprava delovala, kot je predvideno.

O varčevanju z energijo ...
Sestavljena naprava je delovala polne štiri mesece brez ponovnega polnjenja in še naprej deluje, čeprav bi bilo pravilneje reči "spanje". To lahko preverite s preprostim ponovnim zagonom prek belega gumba. Pri porabi 250 μA (preko stabilizatorja LE33) in bateriji ~1430 mAh, čeprav v redu, zaradi novosti baterije, zaokrožimo na 1000 mAh, se izkaže, da lahko naprava spi približno 5,5 mesecev brez polnjenja. Če še vedno odstranite stabilizator, lahko čas delovanja varno pomnožite za 10-krat. Toda v mojem primeru to ni potrebno, ker morate še vedno porabiti stanje s kartice SIM enkrat na tri mesece, hkrati pa je mogoče napravo preveriti in napolniti.
Primer varčevanja z energijo, naveden v pregledu, še zdaleč ni meja, ker sodeč po podatkih iz podatkovnega lista lahko znižate taktno frekvenco mikrokontrolerja (in to naredite z vgradnjo varovalk) na 1 MHz in če uporabite 1,8 V napetosti, bo poraba padla pod 1 μA bar v aktivnem načinu . Zelo lepo! Če pa se MK taktira iz notranjega RC oscilatorja, se bo pojavila še ena težava - zrak UART bo zamašen s smetmi in napakami, še posebej, če se krmilnik segreje ali ohladi.

Ob zaključku...
1) Navadna žica, nameščena za prekinitev, ni zelo priročna, nameravam eksperimentirati s Hallovim senzorjem in reed stikalom, čeprav o slednjem pravijo, da ni zelo zanesljiv, ker se lahko kontakti v njem držijo.
2) Lepo bi bilo dodati možnost spreminjanja "lastniške številke" brez sodelovanja računalnika in utripanja. Delati boste morali z EEPROM.
3) Preizkusite prekinitve časovnika watchdog, vendar ne samo zaradi radovednosti, ampak tako, da se mikrokrmilnik občasno sam zbudi, izmeri napetost baterije in pošlje dobljeno vrednost preko SMS-a, da se zaveda, kako prazna je baterija.
4) Solarna plošča lahko popolnoma odpravi potrebo po ponovnem polnjenju naprave; to še posebej velja za baterije z nizko zmogljivostjo.
5) Že dolgo sem želel kupiti baterije LiFePo4, ki po ocenah dobro prenašajo zmrzal, a medtem ko sem iskal primerno parcelo, je pomlad že tiho prišla.
6) Delajte na estetski komponenti

Kateri Pro Mini kupiti?
Če nimate sušilnika za lase, potem Pro Mini "RobotDyn" Atmega168PA 3,3 V, odstranite LED z nečim ostrim in imate ~250 µA.
Če imate sušilec za lase, potem katero koli ploščo, spajkajte stabilizator in LED za napajanje - dobite ~ 20 µA porabe toka.

To je zaenkrat vse, upam, da je bil pregled zanimiv in uporaben.

Načrtovanje nakupa +174 Dodaj med priljubljene Ocena mi je bila všeč +143 +278

Pozdravljeni, dragi bralec! Današnji članek govori o ustvarjanju preprostega domačega varnostnega sistema z uporabo takoj dostopnih komponent. Ta majhna in poceni naprava vam bo pomagala zaščititi vaš dom pred vsiljivci z uporabo Arduina, senzorja gibanja, zaslona in zvočnika. Napravo lahko napaja baterija ali USB priključek računalnika.

Torej, začnimo!

Kako deluje?

Telesa toplokrvnih živali oddajajo infrardeče sevanje, ki je človeškim očem nevidno, lahko pa ga zaznamo s senzorji. Takšni senzorji so narejeni iz materiala, ki se lahko spontano polarizira, ko je izpostavljen toploti, kar omogoča zaznavanje pojava toplotnih virov v dosegu senzorja.

Za širši razpon se uporabljajo Fresnelove leče, ki zbirajo IR sevanje iz različnih smeri in ga koncentrirajo na samem senzorju.

Slika prikazuje, kako leča popači žarke, ki padajo nanjo.

Omeniti velja, da roboti brez posebej vročih delov in hladnokrvni oddajajo zelo malo infrardečega sevanja, zato senzor morda ne bo deloval, če se vas uslužbenci Boston Dynamics ali plazilci odločijo obkrožiti.

Ko pride do spremembe nivoja IR sevanja v območju, bo to obdelano na Arduinu, nato pa se bo na LCD zaslonu izpisalo stanje, LED bo utripala, zvočnik pa bo piskal.

Kaj potrebujemo?

  1. (ali katero koli drugo ploščo).
  2. (16 znakov v dveh vrsticah)
  3. En priključek za priključitev krone na Arduino
  4. (čeprav lahko uporabite navaden zvočnik)
  5. USB kabel - samo za programiranje ( pribl. prevod: Vedno pride z našim Arduinom!)
  6. Računalnik (spet samo za pisanje in nalaganje programa).

Mimogrede, če ne želite kupiti vseh teh delov posebej, vam priporočamo, da bodite pozorni na naše. Na primer, vse, kar potrebujete, in še več je v našem začetnem kompletu.

Povežimo se!

Priključitev senzorja gibanja je zelo preprosta:

  1. Vcc pin priključimo na 5V Arduino.
  2. Priključek Gnd povežemo z GND Arduina.
  3. Priključimo OUT pin na digitalni pin št. 7 iz Arduina

Zdaj povežimo LED in zvočnik. Tukaj je prav tako preprosto:

  1. Kratko nogo (minus) LED povežemo z maso
  2. Dolgo nogo (plus) LED priključimo na izhod št. 13 Arduina
  3. Rdeča žica zvočnika na izhod št. 10
  4. Črna žica - na maso

In zdaj je najtežji del povezovanje LCD zaslona 1602 z Arduinom. Imamo zaslon brez I2C, zato bomo potrebovali veliko izhodov Arduino, vendar bo rezultat vreden tega. Diagram je predstavljen spodaj:

Potrebujemo samo del vezja (ne bomo imeli nastavitve kontrasta s potenciometrom). Zato morate storiti le naslednje:

Zdaj veste, kako povezati zaslon 1602 z Arduino UNO R3 (kot tudi s katero koli različico Arduina od Mini do Mega).

Programiranje

Čas je, da nadaljujemo s programiranjem. Spodaj je koda, ki jo morate samo izpolniti in, če ste vse pravilno sestavili, je naprava pripravljena!

#vključi int ledPin = 13; // LED zatič int inputPin = 7; // Pin, na katerega je povezan senzor gibanja Out of int pirState = LOW; // Trenutno stanje (na začetku ni bilo zaznano nič) int val = 0; // Spremenljivka za branje stanja digitalnih vhodov int pinSpeaker = 10; // Pin, na katerega je priključen zvočnik. Zahteva priključek PWM LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Inicializacija LCD zaslona void setup() ( // Določanje smeri prenosa podatkov na digitalnih zatičih pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); pinMode(pinSpeaker, OUTPUT); // Začetek izpisa informacij o odpravljanju napak prek serijskih vrat .begin(9600); // Začetek izpisa na LCD zaslon lcd.begin(16, 2); // Nastavitev indeksa na zaslonih, s katerih bomo začeli izpis // (2 znaka, 0 vrstic ) lcd.setCursor(2, 0) ; // Izhod na LCD zaslon lcd.print("P.I.R Motion"); // Ponovno premakni lcd.setCursor("Sensor" ); // Premor za branje, kar je bila zakasnitev izpisa (5000); // Enako kot lcd.setCursor (0, 0); lcd.print ("Obdelava podatkov." lcd.setCursor(3, 0); lcd.print("Čakanje"); lcd.print() Preberite branje senzorja val = digitalRead(inputPin); if (val == HIGH) ( // Če pride do gibanja, prižgite LED in vklopite sireno digitalWrite(ledPin, HIGH); playTone(300, 300); zamuda (150); // Če do tega trenutka ni bilo nobenega gibanja, prikažemo sporočilo // da je bilo zaznano // Spodnja koda je potrebna samo za zapis spremembe stanja in ne za izpis vrednosti vsakič, če (pirState == LOW) ( Serial.println( "Zaznano gibanje!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Zaznano gibanje!"); pirState = HIGH; ) else ( // Če je gibanje is over digitalWrite(ledPin, LOW); playTone(0, 0); delay(300); if (pirState == HIGH)( // Označuje, da je bilo gibanje, vendar se je že končalo "); lcd.clear() ; lcd.setCursor(3, 0); lcd.print("Čakanje"); lcd.setCursor(3, 1); lcd.print("Gibanje...."); / Funkcija predvajanja zvoka. Duration (trajanje) - v milisekundah, Freq (frequency) - v Hz void playTone(long duration, int freq) ( duration *= 1000; int period = (1.0 / freq) * 100000; long elapsed_time = 0; while (elapsed_time< duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }



Priporočamo branje

Vrh