Arduino beveiliging brandalarm circuit. Voordelig GSM alarmsysteem met hersens van Arduino

De auteur wilde een zelfgemaakt product maken, zodat het goedkoop en draadloos was.
Dit zelfgemaakte product maakt gebruik van een PIR-bewegingssensor en de informatie wordt verzonden met behulp van een RF-module.

De auteur wilde een infraroodmodule gebruiken, maar omdat deze een beperkt bereik heeft, en plus kan werken enkel en alleen zichtlijn naar de ontvanger, dus koos hij voor een RF-module die een bereik van ongeveer 100 meter kan bereiken.


Om het voor bezoekers gemakkelijker te maken om de alarmmontage te bekijken, heb ik besloten het artikel in 5 fasen op te delen:
Fase 1: Bouw een zender.
Fase 2: Maak een ontvanger.
Stap 3: Installeren van de software.
Fase 4: Testen van de geassembleerde modules.
Fase 5: De behuizing monteren en de module erin installeren.

Het enige dat de auteur nodig had, was:
- 2 borden ARDUINO UNO / ARDUINO MINI / ARDUINO NANO voor ontvanger en zender;
- RF-zendontvangermodule (433 MHZ);
- PIR bewegingssensor;
- 9V batterijen (2 stuks) en connectoren daarvoor;
- Zoemer;
- Lichtgevende diode;
- Weerstand met een weerstand van 220 Ohm;
- Broodplank;
- Jumpers / draden / jumpers;
- Printplaat;
- Board-to-board pin-connectoren;
- Schakelaars;
- Behuizingen voor ontvanger en zender;
- Gekleurd papier;
- Montagetape;
- Type-setting scalpel;
- Heet lijmpistool;
- Soldeerbout;
- Nippers / striptang;
- Schaar voor metaal.


Fase 1.
Laten we beginnen met het maken van de zender.
Hieronder ziet u een diagram van hoe de bewegingssensor werkt.


De zender zelf bestaat uit:
- Bewegingssensor;
- Arduino-borden;
- Zendermodule.


De sensor zelf heeft drie uitgangen:
- VCC;
- GND;
- UIT.

Daarna heb ik de werking van de sensor gecontroleerd


Aandacht!!!
Voordat de firmware wordt gedownload, zorgt de auteur ervoor dat het huidige bord en de seriële poort correct zijn ingesteld in de Arduino IDE-instellingen. Vervolgens heb ik de schets geüpload:

Later, als de bewegingssensor beweging ervoor detecteert, gaat de LED branden en ziet u ook het bijbehorende bericht op de monitor.


Volgens onderstaand schema.


De zender heeft 3 pinnen (VCC, GND en Data), we verbinden ze:
- VCC> 5V door pin op het bord;
- GND> GND;
- Gegevens> 12-pins op het bord.

Stage 2.


De ontvanger zelf bestaat uit:
- RF-ontvangermodule;
- Arduino-borden
- Zoemer (luidspreker).

Ontvangercircuit:


De ontvanger heeft, net als de zender, 3 pinnen (VCC, GND en Data), we verbinden ze:
- VCC> 5V door pin op het bord;
- GND> GND;
- Gegevens> 12-pins op het bord.


Fase 3.
De auteur koos het bibliotheekbestand als basis voor de volledige firmware. Ik heb gedownload wat hij is en plaatste het in de map Arduino-bibliotheken.

Zendersoftware.
Voordat de firmwarecode naar het bord wordt geüpload, heeft de auteur de volgende parameters: IDE:
- Bord -> Arduino Nano (of welk bord je ook gebruikt);
- Seriële poort ->


Na het instellen van de parameters heeft de auteur het Wireless_tx-firmwarebestand gedownload en naar het bord geüpload:

Ontvangersoftware
De auteur herhaalt dezelfde stappen voor het ontvangende bord:
- Bord -> Arduino UNO (of welk bord je ook gebruikt);
- Seriële poort -> COM XX (controleer de com-poort waarop uw bord is aangesloten).



Nadat de auteur de parameters heeft ingesteld, downloadt het bestand wireless_rx en uploadt het naar het bord:


Vervolgens genereerde de auteur met behulp van een programma dat kan worden gedownload een geluid voor de zoemer.

Fase 4.
Verder besloot de auteur na het downloaden van de software te controleren of alles naar behoren werkt. De auteur sloot de voedingen aan en hield zijn hand voor de sensor, en de zoemer begon voor hem te werken, wat betekent dat alles werkt zoals het hoort.


Fase 5.
Eindmontage van de zender
Eerst sneed de auteur de uitstekende pinnen van de ontvanger, zender, arduino-kaarten, enz.


Daarna heb ik het Arduino-bord verbonden met een bewegingssensor en een RF-zender met behulp van jumpers.


Toen begon de auteur een behuizing voor de zender te maken.

Eerst knipte hij uit: een gat voor de schakelaar, evenals een rond gat voor de bewegingssensor, en plakte het vervolgens op het lichaam.




Vervolgens vouwde de auteur een vel gekleurd papier en plakte de afbeelding op de voorkant om de interne delen van het zelfgemaakte product te verbergen.


Daarna begon de auteur de elektronische vulling in de behuizing te plaatsen met dubbelzijdig plakband.



Eindmontage van de ontvanger
De auteur besloot het Arduino-bord met rubberen tape op de printplaat aan te sluiten en ook de RF-ontvanger te installeren.


Vervolgens snijdt de auteur twee gaten in de andere behuizing, één voor de zoemer, de andere voor de schakelaar.


En lijmt het.

Goedemiddag! Nogmaals, een multi-review van Chinese elektronische componenten, zoals gewoonlijk een beetje over alles, ik zal proberen korter te zijn, maar zal het werken? Zo welkom GSM-alarm kost tot 700 roebel. Interessant? Ik vraag om "knippen"!

Laten we beginnen! Voordat ik begin, raad ik aan om hiernaar te kijken, minder componenten en meer autonomie. Dus, de "term of reference", de basisvereisten voor de signalering:

1) Waarschuw wanneer sensoren worden geactiveerd.
2) In het geval van een stroomstoring, moet er voor enige autonomie worden gezorgd.
3) Alarmbeheer via sms en oproepen.

Omdat het proces van het maken van een alarm enkele maanden heeft geduurd en sommige verkopers de componenten die bij hen zijn gekocht niet langer verkopen, worden links bijgewerkt naar producten van andere verkopers die het maximale of bijna het maximale aantal hebben van de productverkoop en beste prijs... De prijzen in de review zijn actueel op de datum van schrijven.

Lijst met wat je nodig hebt:

Lijst met wijzigingen

GSM_03_12_2016-14-38.hex- vaste werking van het apparaat met de M590-modem.
GSM_05_12_2016-13-45.hex- consoleopdracht memtest toegevoegd, optimalisatie van RAM-gebruik.
GSM_2016_12_06-15-43.hex- uitvoer van opdrachtresultaten toegevoegd aan de console, geheugenoptimalisatie. Bezetting: 49% SRAM.
GSM_2016_12_07-10-59.hex- nu worden telefoonnummers correct toegevoegd en verwijderd. Bezet: 49% SRAM, 74% Flash-geheugen.
GSM_2016_12_07-15-38.hex- de mogelijkheid toegevoegd om een ​​bewegingssensor aan te sluiten, aangesloten op pin A0 (in dit geval wordt pin A0 als digitaal gebruikt). Toegevoegd SMS - commando's PIRON, PIRUit... Bezet: 48% SRAM, 76% Flash-geheugen.
GSM_2016_12_08-13-53.hex- Nu, na de succesvolle uitvoering van de opdracht, die als reactie geen SMS-bericht verzendt, knippert het apparaat eenmaal met een blauwe LED. Nu, na het verkeerd uitvoeren van de opdracht, die geen sms-bericht stuurt als reactie, knippert het apparaat twee keer met een blauwe LED. Nu, na het initialiseren van de apparaatparameters, als de "stille" modus is ingeschakeld (SendSms = 0), knippert het apparaat gedurende 2 seconden snel met de blauwe LED. Een bug opgelost waardoor het nummer niet altijd uit het geheugen werd verwijderd door de opdracht DeletePhone. Bezet: 48% SRAM, 78% Flash-geheugen.
GSM_2016_12_11-09-12.hex- Toegevoegd console-opdrachten AddPhone en DeletePhone, de syntaxis is vergelijkbaar met sms-opdrachten. Geheugen optimalisatie. Bezet: 43% SRAM, 79% Flash-geheugen.
GSM_2017_01_03-22-51.hex- Ondersteuning geïmplementeerd voor vergelijkbare I / O-poortverlengers op de PCF8574-chip, voor het aansluiten van extra 8 sensoren, inclusief reed-schakelaars. Automatisch zoeken adressen en automatische configuratie van de module. De standaardnamen van de sensoren en het logische niveau van hun activering worden gewijzigd met behulp van de opdracht EditSensor. Gewijzigde inhoud alarm-sms voor de hoofdsensor (pin D0) “Alarm! Hoofdsensor!" en bewegingssensor (pin A0) “Alarm! PIR-sensor! ". EditSensor- en I2CScan-opdrachten toegevoegd. Bezet: 66% SRAM, 92% Flash-geheugen.
GSM_2017_01_15-23-26.hex- Ondersteuning voor A6_Mini-modem. Externe voeding controle (pin D7). Toegevoegd SMS-commando's WatchPowerOn, WatchPowerOff. Console-opdrachten ListConfig, ListSensor toegevoegd. Nu werkt het sms-commando EditSensor correct. De debug-uitvoer naar de poortmonitor is enigszins "bezuinigd". Bezet: 66% SRAM, 95% Flash-geheugen.
GSM_2017_01_16-23-54.hex- Nu wordt in het antwoordbericht op het sms-commando "Info" ook de status van de bewegingssensor gerapporteerd. Een bug opgelost waardoor soms lege sms-antwoordberichten werden verzonden. Nu meldt het apparaat niet alleen over het loskoppelen, maar ook over het hervatten van de externe voeding. Alle modems begonnen "minder te chatten", nu is de poortmonitor een beetje schoner. Bezet: 66% SRAM, 95% Flash-geheugen.
GSM_2017_02_04-20-23.hex- Bug opgelost "Kijk naar de stroom aan". Nu, na het uitschakelen, is de "alarmpin" uitgeschakeld. Nu, na het verwijderen van het nummer, wordt de juiste informatie weergegeven in de console. Mogelijk een bug opgelost waardoor soms lege sms-antwoordberichten werden verzonden. Bezet: 66% SRAM, 90% Flash-geheugen.
GSM_2017_02_14-00-03.hex- Nu worden standaard SMS-berichten verzonden, de parameter SendSms is weer gelijk aan 1. Nu, wanneer de contacten van de hoofdreedschakelaar zijn gesloten (deur is gesloten), knippert het apparaat gedurende 2 seconden een blauwe LED, wat de normale werking aangeeft van de sensor. Bezet: 66% SRAM, 90% Flash-geheugen.
GSM_2017_03_01-23-37.hex- WatchPowerOn-opdracht verwijderd. Console-opdracht WatchPowerOff toegevoegd, identiek aan sms-opdracht. WatchPowerOn1, WatchPowerOn2-opdrachten toegevoegd. WatchPowerOn1 - externe stroombewaking is ingeschakeld als het alarm is ingeschakeld, WatchPowerOn2 - externe stroombewaking is altijd ingeschakeld. De functie van in- en uitschakelen door externe apparaten is geïmplementeerd, hiervoor worden pinnen A1 (D15) en A2 (D16) gebruikt. Alarm inschakelen / uitschakelen wanneer verschijnt op pin A1 (D15) hoog niveau+ 5V of op pin A2 (D16) laag niveau GND. Pin A1 (D15) wordt naar GND getrokken, pin A2 (D16) wordt naar + 5V getrokken via 20 (10) kΩ-weerstanden. GuardButtonOn- en GuardButtonOff-opdrachten toegevoegd. Nu, na het inschakelen, knippert de rode LED totdat de integriteit van het circuit van de belangrijkste reed-sensor is gecontroleerd. Als de schakeling intact is, gaat de rode LED branden. Bezet: 66% SRAM, 95% Flash-geheugen.
GSM_2017_03_12-20-04.hex- Nu is de console nog schoner geworden, maar als de testmodus "TestOn" is ingeschakeld, wordt aanvullende informatie weergegeven in de console. Bug opgelost "Verzonden!", Nu wordt het bericht over het verzenden van berichten correct weergegeven in de console. De bug van "herhaalde valse oproep" is verholpen. Het saldoverzoek zou nu correct moeten werken op alle modems. Bezet: 67% SRAM, 95% Flash-geheugen.
GSM_2017_04_16-12-00.hex- Vast. Nu sturen de Info- en Geldteams altijd een antwoord-sms. De opdracht GuardButtonOn is vervangen door de opdrachten GuardButtonOn1 en GuardButtonOn2. Bezet: 67% SRAM, 99% Flash-geheugen.
GSM_2017_04_21-09-43.hex - niet aanbevolen voor gebruik, alleen als test, bedankt voor de geïdentificeerde fouten :) - Nu heeft de parameter sendsms geen invloed op het verzenden van sms-berichten voor het bewaken van het elektriciteitsnet. Toegevoegd SMS-commando DelayBeforeGuard, dat verantwoordelijk is voor de vertraging bij het inschakelen, de waarde mag niet langer zijn dan 255 seconden. Toegevoegd SMS-commando DelayBeforeAlarm, dat verantwoordelijk is voor de vertraging bij het verzenden van meldingen en het inschakelen van de "alarmpin" wanneer de sensoren worden geactiveerd, de waarde mag niet langer zijn dan 255 seconden. ClearSMS-commando's verwijderd, nu worden berichten automatisch verwijderd bij ontvangst. Bezet: 68% SRAM, 100% Flash-geheugen.
GSM_2017_04_22-20-42.hex- Meerdere bugs opgelost. ClearSMS-commando's zijn weer aanwezig in de firmware. Geheugen optimalisatie. Bezet: 68% SRAM, 98% Flash-geheugen.
GSM_2017_04_23-17-50.hex- Nu zou het saldoverzoek correct moeten werken op alle modems. In- en uitschakelen door externe apparaten werkt nu correct. Info-opdracht SMS-antwoordberichten mogen niet leeg zijn. Geheugen optimalisatie. Bezet: 68% SRAM, 98% Flash-geheugen.
GSM_2017_04_24-13-22.hex- Nu wordt de overdracht van consolecommando's naar de GSM-module alleen uitgevoerd als de testmodus is ingeschakeld. Nu is er geen onderverdeling in SMS-commando's en console-commando's, alle bestaande commando's kunnen zowel via SMS als via de console worden verzonden. Waarschijnlijk is een bug met het Info-commando verholpen. Geheugen optimalisatie. Bezet: 68% SRAM, 94% Flash-geheugen.
GSM_2017_04_25-20-54.hex- Een bug opgelost waarbij de opdracht ListConfig de waarde van de laatste gebeurtenis veranderde. Nu worden bij het invoeren van opdrachten via de kosol geen onnodige sms-berichten verzonden. Waarschijnlijk is een bug met het Info-commando verholpen. Geheugen optimalisatie. Bezet: 66% SRAM, 94% Flash-geheugen.
GSM_2017_04_30-12-57.hex- Tijdelijk de uitvoer van aanvullende informatie naar de console ingeschakeld bij het verzenden van sms-berichten en het vormen van een reactie op het Info-commando. Waarschijnlijk is een bug met het Info-commando verholpen. Geheugen optimalisatie. Bezet: 66% SRAM, 92% Flash-geheugen.
GSM_2017_05_06-11-52.hex- Opgelost met DelayBeforeAlarm-functie. Bezet: 66% SRAM, 93% Flash-geheugen.
GSM_2017_05_23-21-27.hex- De uitvoer van informatie naar de console is enigszins gewijzigd. Ondersteuning toegevoegd voor poortuitbreidingsmodules op PCF8574A met adressen van 0x38 tot en met 0x3f. Bug opgelost c. Nu wordt het apparaat automatisch opnieuw opgestart na de FullReset-, ResetConfig-, ResetPhone-opdrachten en als de MemTest-opdracht met succes is uitgevoerd. WatchPowerTime-opdracht toegevoegd. Het is nu mogelijk om de tijd in te stellen waarna een SMS bericht wordt verzonden over het loskoppelen van de externe stroombron. Bezet: 67% SRAM, 94% Flash-geheugen.
GSM_2017_05_26-20-22.hex- Vaste initialisatie van geheugen van sensoren op uitbreidingskaart. De syntaxis van de opdracht AddPhone is gewijzigd. Commando EditMainPhone toegevoegd. Het werkingsprincipe van het notificatiesysteem is gewijzigd, wanneer de sensor wordt geactiveerd, worden eerst sms-berichten verzonden, waarna spraakoproepen worden gedaan. Alarmerende sms-berichten worden verzonden naar telefoonnummers met het "S"-teken (SMS). Spraakoproepen worden gedaan naar nummers met het "R"-teken (Ring). Berichten over het uit-/aanzetten van de externe voeding worden naar de telefoonnummers gestuurd met het teken “P” (Power). RingTime-opdracht toegevoegd. Nu is het mogelijk om de duur van de alarmoproep in te stellen, de parameter kan een waarde hebben van 10 tot 255 seconden. Nu schakelt de opdracht RingOn / RingOff globaal de melding van spraakoproepen in / uit. ResetSensor-opdracht toegevoegd. Bezet: 68% SRAM, 99% Flash-geheugen.
GSM_2017_06_02-17-43.hex- De parameter "I" (Info) toegevoegd aan de opdrachten AddPhone en EditMainPhone, die verantwoordelijk is voor sms-meldingen over het in- of uitschakelen van het apparaat. Nu na het toevoegen van het hoofdnummer, start het apparaat automatisch opnieuw op. Nu kunt u dezelfde nummers toevoegen aan het apparaatgeheugen. Bij het toevoegen van de tweede en volgende dubbele nummers worden de attributen "M", "S", "P" en "I" automatisch verwijderd. Deze nummers worden gebruikt voor herhaalde spraakoproepen wanneer de sensoren worden geactiveerd. Een bug opgelost met een curve-uitvoer naar de console na het uitvoeren van de AddPhone-opdracht, nu wordt de informatie niet automatisch weergegeven na het toevoegen van een nummer. Commando opnieuw opstarten toegevoegd. Bezet: 69% SRAM, 99% Flash-geheugen.
GSM_2017_06_11-00-07.hex- Nogmaals, wanneer de contacten van de hoofdreedschakelaar gesloten zijn (deur is gesloten), knippert het apparaat gedurende 2 seconden met een blauwe LED, wat de normale werking van de sensor aangeeft, terwijl het apparaat niet in- of uitgeschakeld is. RingOn / RingOff-opdrachten verwijderd. Nu kan het apparaat worden uitgeschakeld tijdens een alarmoproep, nu worden ze op de achtergrond uitgevoerd. Bezet: 69% SRAM, 99% Flash-geheugen.
GSM_2017_07_04-21-52.hex- Nu stuurt de opdracht Pauze geen antwoord-sms. TestOn- en TestOff-opdrachten verwijderd. De managementvlag is van alle nummers verwijderd. Bezet: 68% SRAM, 96% Flash-geheugen.
GSM_2017_07_24-12-02.hex- ReedSwitchOn / ReedSwitchOff-commando's toegevoegd voor het bewaken van de belangrijkste reed-sensor, nu kan deze op dezelfde manier worden in- of uitgeschakeld als de bewegingssensor. Bug van Info-opdracht opgelost. De opdrachten TestOn en TestOff zijn weer aanwezig in de firmware. Bezet: 68% SRAM, 96% Flash-geheugen.
GSM_2017_07_26-10-03.hex- Commando ModemID toegevoegd. Automatische detectie van de modem wordt alleen uitgevoerd als de waarde van deze parameter 0 is. Nadat de waarde van de parameter op 0 is ingesteld, wordt het apparaat automatisch opnieuw opgestart. Bezet: 68% SRAM, 98% Flash-geheugen.
GSM_2017_08_03-22-03.hex- Nu kan het alarm externe apparaten bedienen. Analoge uitgang A3 (D17 - gebruikt als digitaal) wordt gebruikt voor besturing. Het logische niveau van de uitgang (+ 5V of GND) kan worden gewijzigd, na het wijzigen van het niveau via het instelcommando, zal het apparaat automatisch opnieuw opstarten. De duur van het stuursignaal van het externe apparaat kan worden gewijzigd. Commando's toegevoegd ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open. Enkele wijzigingen in de logica van de stuurcommando's. Geheugen optimalisatie. Bezet: 68% SRAM, 99% Flash-geheugen.
GSM_2017_08_10-12-17.hex- Commando's SmsOn / SmsOff, ReedSwitchOn / ReedSwitchOff, PIROn / PIROff en alles wat daarmee verband houdt verwijderd. DelayBeforeAlarm-opdracht vervangen door uitgebreide opdrachten. Uitvoer van info-opdracht gewijzigd. De uitvoer van de opdracht ListConfig naar de console geoptimaliseerd. Nu kunnen alle digitale sensoren met een hoog of laag responsniveau, inclusief reed-schakelaars, worden aangesloten op pinnen D6 en A0. De pennen D6 en A0 moeten worden aangesloten op aarde (GND) via een weerstand van 10 (20) kOhm. Als de sensor is geconfigureerd voor een laag triggerniveau (ingeschakeld in reed-schakelaarmodus), wordt de continuïteit van het circuit gecontroleerd. Het logische niveau van triggering op de ingangen D6 en A0 (+ 5V of GND) kan worden gewijzigd, na het wijzigen van het logische niveau zal het apparaat automatisch opnieuw opstarten. Voor elk van de sensoren (hoofd-, tweede-, PCF-uitbreidingskaarten) kan bij activering een eigen tijd worden ingesteld, waarna een melding wordt gedaan (SMS en/of spraakoproep). "PIR Sensor" hernoemd naar "Tweede sensor". De werking van de uitbreidingskaart is verholpen, een fout waardoor het apparaat altijd op de hoogte was van het activeren van sensoren, ongeacht of het apparaat was ingeschakeld of niet. Nu kunt u de bedrijfsmodus selecteren waarin het apparaat de sensoren van de uitbreidingskaart zowel in de ingeschakelde modus (GuardOn) als in de uitgeschakelde modus (GuardOff) kan bewaken. Toegevoegde commando's PCFForceOn / PCFForceOff, MainSensorLevelHigh / MainSensorLevelLow / MainSensorLevelOff, SecondSensorLevelHigh / SecondSensorLevelLow / SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeFAforeAlay, PC Bezet: 68% SRAM, 99% Flash-geheugen.

* Latere firmwareversies bevatten wijzigingen ten opzichte van eerdere versies.


Gebruikte poorten van Arduino Nano v3

D4- "alarm" pin-uitgang, wanneer de sensor wordt geactiveerd, wordt een hoog niveau-signaal op deze pin ingesteld
D5- omgekeerde uitgang van de "alarm"-pin, wanneer de sensor wordt geactiveerd, wordt een laag niveau-signaal op deze pin ingesteld

D6- reed-schakelaar. Vanaf de versie GSM_2017_08_10-12-17.hex kunnen alle digitale sensoren met een hoog of laag triggerniveau, inclusief reed-schakelaars, worden aangesloten op pin D6. Pin D6 moet naar aarde (GND) worden getrokken via een weerstand van 10 (20) kΩ.
D7- aangesloten op een spanningsdeler van een externe voeding + 5V. De bovenarm is 2,2 kOhm, de onderste is 3,3 kOhm.

Spanningsdeler:


D8- TX-modem
D9- RX-modem

D10- rode LED
D11- blauwe LED
D12- groene LED

Perifere aansluiting:
A0- Bewegingssensor . Vanaf de versie GSM_2017_08_10-12-17.hex kunnen alle digitale sensoren met een hoog of laag triggerniveau, inclusief reed-schakelaars, worden aangesloten op pin A0. Pin A0 moet naar aarde (GND) worden getrokken via een weerstand van 10 (20) kΩ.

A1- Ingang voor externe besturing. Het alarm zal het systeem in-/uitschakelen wanneer een hoog + 5V-niveau op de ingang verschijnt.
A2- Omgekeerde ingang voor externe besturing. Het alarm zal het systeem in-/uitschakelen als er een laag niveau GND op de ingang verschijnt.

A3- Configureerbare (+ 5V of GND) uitgang om externe apparaten te bedienen. Wanneer een stuurcommando wordt ontvangen, verandert de waarde op deze uitgang afhankelijk van welke voor een bepaalde tijd is ingesteld.

A4-SDA I2C
A5- SLC I2C
, voor het aansluiten van extra 8 sensoren.


Besturingscommando's voor hex - firmware

Aandacht! Toegewijde opdrachten vetgedrukt kunnen alleen vanaf het hoofdnummer worden uitgevoerd, omdat ze verantwoordelijk zijn voor de configuratie van het apparaat. De rest van de commando's kunnen worden uitgevoerd vanaf nummers met het "Management" teken.

SMS - bedieningscommando's zijn niet hoofdlettergevoelig:
Telefoon toevoegen- Voeg een telefoonnummer toe. In totaal kunnen er niet meer dan 9 nummers + 1 hoofdnummer worden toegevoegd, die automatisch in het geheugen worden opgeslagen bij de eerste oproep naar het apparaat na resetten naar fabrieksinstellingen door commando's Telefoon resetten of Volledige reset... Die. degene die het apparaat het eerst heeft gebeld nadat het naar de fabrieksinstellingen was teruggezet, is de "hoofd"; dit nummer wordt in de eerste geheugencel ingevoerd en kan niet worden gewijzigd of verwijderd via sms. Het is niet mogelijk om twee identieke nummers toe te voegen.
Voorbeeld opdracht:



Opdrachtsyntaxis:

Telefoon toevoegen- team
: - scheidingsteken
5 - schrijf naar de vijfde geheugenlocatie
+71234567890 - telefoonnummer
Vóór GSM_2017_05_26-20-22.hex-versie:
a - "Alarm" parameter - SMS wordt verzonden naar nummers met deze parameter - berichten over alarmactivering en berichten over in- of uitschakelen.
Vanaf versie GSM_2017_05_26-20-22.hex:
m - Parameter "Beheer" - alarmbeheer ingeschakeld
s - "SMS"-parameter - er wordt een sms-bericht verzonden wanneer de sensoren worden geactiveerd
r - "Ring"-parameter - er wordt een spraakoproep gedaan wanneer de sensoren worden geactiveerd
p - Parameter "Power" - er wordt een sms-bericht verzonden wanneer de externe voeding wordt in- of uitgeschakeld
i - Parameter "Info" - sms-bericht wordt verzonden bij in- of uitschakelen
Bij afwezigheid van parameters "m", "s", "r", "p", "i" wordt de telefoon in het geheugen opgeslagen, maar op geen enkele manier gebruikt.


Telefoon verwijderen- Telefoonnummer verwijderen.
Voorbeeld opdracht:

Opdrachtsyntaxis:

Telefoon verwijderen - commando -
: - scheidingsteken
+71234567891 - telefoonnummer


BewerkenHoofdtelefoon- Wijzig de parameters "s", "r", "p", "i" van de hoofdtelefoon, dit nummer wordt in de eerste geheugencel ingevoerd.
Voorbeeld opdracht:

Opdrachtsyntaxis:

BewerkMainPhone - commando
: - scheidingsteken
srpi - parameters


SaldoNum- Het wijzigen van het saldoverzoeknummer en het verwerken van de lengte van het verzoekantwoord. Standaardwaarde voor Beeline: # 100 # L22.
Voorbeeld opdracht:

Opdrachtsyntaxis:

BalanceNum - commando
: - scheidingsteken
# 103 # - nummer van saldoverzoek
L24 - De lengte (len) van het verzonden antwoord is 24 tekens, we hebben de spam van het saldoverzoek afgesneden.


Bewerken Sensor- Wijzig de naam van de sensor en het logische werkingsniveau. Er kunnen in totaal niet meer dan 8 extra sensoren zijn. Na het wijzigen van de parameters is een herstart van het apparaat vereist.
Voorbeeld opdracht:
EditSensor: 1 + Datchik dvizheniya v koridore # h

Opdrachtsyntaxis:

Bewerken Sensor - commando
: - scheidingsteken
1 - schrijf naar de eerste geheugenlocatie
+ - scheidingsteken
Datchik dvizheniya v koridore - de naam van de sensor, mag niet langer zijn dan 36 tekens, inclusief spaties.
#h - Teken van een hoog logisch niveau van de sensor, bij ontvangst wordt een alarm geactiveerd. Als "#h" afwezig is, wordt het alarm geactiveerd wanneer een laag logisch niveau van de sensor wordt ontvangen.


Bedtijd- De tijd van "in slaap vallen" van het alarm bij ontvangst van SMS - het commando "Pauze", wordt aangegeven in minuten. Standaardwaarde: 15, kan niet kleiner zijn dan 1 en meer dan 60.
Voorbeeld opdracht:

Opdrachtsyntaxis:

SleepTime - commando
: - scheidingsteken
20 - 20 minuten "slaap".


AlarmPinTijd- De tijd dat de alarm/inverse pin aan/uit staat, wordt aangegeven in seconden. Standaardwaarde: 60, kan niet minder dan 1 seconde en meer dan 43200 seconden (12 uur) zijn.
Voorbeeld opdracht:

Opdrachtsyntaxis:

AlarmPinTime-opdracht
: - scheidingsteken
30 - 30 seconden aan/uit alarmpin.


VertragingBeforeGuard- Tijd voordat het apparaat wordt ingeschakeld na ontvangst van het juiste commando.
Voorbeeld opdracht:

Opdrachtsyntaxis:

DelayBeforeGuard - Team
: - scheidingsteken
25 - 25 seconden voor inschakelen


Vertraging Voor Alarm- De tijd waarna de "alarmerende" SMS-melding wordt verzonden als het alarm gedurende deze periode niet is uitgeschakeld. Vervangen door uitgebreide commando's vanaf versie GSM_2017_08_10-12-17.hex
Voorbeeld opdracht:

Opdrachtsyntaxis:

DelayBeforeAlarm - commando
: - scheidingsteken
40 - 40 seconden voordat de "alarm" melding wordt verzonden


WatchPowerTime- Tijd in minuten waarna een SMS-bericht wordt verzonden over het loskoppelen van de externe stroombron. Als de externe voeding wordt hersteld voordat de ingestelde tijd is verstreken, wordt het bericht niet verzonden.
Voorbeeld opdracht:

Opdrachtsyntaxis:

WatchPowerTime - Team
: - scheidingsteken
5 - 5 minuten voor het verzenden van een sms-bericht


BelTijd- Duur van de alarmoproep, de parameter kan een waarde hebben van 10 tot 255 seconden.
Voorbeeld opdracht:

Opdrachtsyntaxis:

RingTime - commando
: - scheidingsteken
40 - 40 gespreksduur is 40 seconden, waarna de volgende abonnee wordt gebeld.


ModemID - Installatie forceren het model van de modem die u gebruikt. Mogelijke waarden: 0 - modem autodetectie, 1 - M590, 2 - SIM800l, 3 - A6_Mini.
Voorbeeld opdracht:

Opdrachtsyntaxis:

ModemID - commando
: - scheidingsteken
2 - modem-ID.


ExtApparaatTijd- Het aantal seconden waarmee het signaalniveau op de besturingsuitgang van het externe apparaat zal veranderen.
Voorbeeld opdracht:

Opdrachtsyntaxis:

ExtDeviceTime- commando
: - scheidingsteken
5 - 5 seconden


ExtApparaatNiveauLaag- Een extern apparaat aangesloten op uitgang A3 wordt aangedreven door een laag signaalniveau (GND). Standaard zal de uitgang aanwezig zijn op een hoog niveau van + 5V totdat een commando wordt ontvangen om een ​​extern apparaat te bedienen.
ExtApparaatNiveauHoog- Een extern apparaat aangesloten op uitgang A3 wordt bestuurd door een hoog signaalniveau (+ 5V). De uitgang wordt standaard ingesteld op een laag GND-niveau totdat een opdracht wordt ontvangen om een ​​extern apparaat te bedienen.

ResetSensor- reset de parameters van de poortuitbreidingssensoren

ResetConfig- fabrieksinstellingen

Telefoon resetten- verwijdering uit het geheugen van alle telefoonnummers

Volledige reset- resetten van de instellingen, verwijderen van alle telefoonnummers uit het geheugen, herstellen van de standaardwaarde van het BalanceNum-commando.

Bel aan- melding inschakelen door een oproep naar het "hoofdnummer" dat is opgeslagen in de eerste geheugencel wanneer de sensor wordt geactiveerd. Verwijderd sinds versie GSM_2017_06_11-00-07.hex
Bel uit- schakel de melding door een oproep uit wanneer een sensor wordt geactiveerd. Verwijderd sinds versie GSM_2017_06_11-00-07.hex

Sms aan- sms-melding inschakelen wanneer een sensor wordt geactiveerd. Verwijderd sinds versie GSM_2017_08_10-12-17.hex
Sms Uit- schakel sms-meldingen uit wanneer een sensor wordt geactiveerd. Verwijderd sinds versie GSM_2017_08_10-12-17.hex

PIRON- bewegingssensorverwerking inschakelen
PIRUit- bewegingssensorverwerking uitschakelen

ReedSwitchOn- verwerking van de belangrijkste reed-sensor mogelijk maken
ReedSwitchOff- schakel de verwerking van de belangrijkste reed-sensor uit

WatchPowerOn- schakel de externe voeding in, SMS-bericht over het uitschakelen van de externe voeding wordt verzonden, op voorwaarde dat het alarm is ingeschakeld. Verwijderd sinds versie GSM_2017_03_01-23-37.

WatchPowerOn1- schakel de externe voeding in, SMS-bericht over het uitschakelen van de externe voeding wordt verzonden, op voorwaarde dat het alarm is ingeschakeld.
WatchPowerOn2- schakel besturing van externe voeding in, SMS-bericht over loskoppeling van externe voeding wordt in ieder geval verzonden

BekijkPowerOff- externe voedingsregeling uitschakelen

BewakerKnop Aan- alarmcontrole door externe apparaten of door knop is ingeschakeld.Verwijderd uit versie GSM_2017_04_16-12-00.
BewakerKnopAan1- functie in- of uitschakelen bescherming door externe apparaten of de knop is ingeschakeld
BewakerKnopAan2- functie alleen producties ingeschakeld door externe apparaten of de knop is ingeschakeld, wordt het uitschakelen uitgevoerd door het apparaat te bellen of een sms-opdracht te gebruiken.
BewakerKnop Uit- alarmcontrole door externe apparaten of door knop is uitgeschakeld

PCFForceOn- continue bewaking van een groep van alle sensoren van de expander
PCFForceUit- een groep van alle uitbreidingssensoren alleen bewaken wanneer het apparaat is ingeschakeld

HoofdSensorNiveauHoog- er wordt een alarmmelding verzonden wanneer een hoog niveau signaal (+5 V) verschijnt op de ingang (D6) van de sensor
HoofdSensorNiveauLaag- er wordt een alarmmelding verzonden wanneer een laag niveau-signaal (GND) verschijnt op de ingang (D6) van de sensor
HoofdSensorNiveau Uit- verwerking van invoersensor (D6) uitgeschakeld

TweedeSensorNiveauHoog- er wordt een alarmmelding verzonden wanneer een hoog niveau signaal (+5 V) verschijnt aan de ingang (A0) van de sensor
TweedeSensorNiveauLaag- er wordt een alarmmelding verzonden wanneer een laag niveau signaal (GND) verschijnt op de ingang (A0) van de sensor
SecondSensorLevelOff- verwerking van de sensor aan de ingang (A0) is uitgeschakeld

HoofdVertragingVóórAlarm- de tijd waarna een “alarm”-sms-melding wordt verzonden wanneer de hoofdsensor (D6) wordt geactiveerd, als het alarm gedurende deze periode niet is uitgeschakeld. De syntaxis is hetzelfde als de opdracht DelayBeforeAlarm.
TweedeVertragingVóórAlarm- de tijd waarna de "alarm"-sms-melding wordt verzonden wanneer een extra sensor (A0) wordt geactiveerd, als het alarm gedurende deze periode niet is uitgeschakeld. De syntaxis is hetzelfde als de opdracht DelayBeforeAlarm.
PCFVertraging voorAlarm- de tijd waarna de "alarm"-sms-melding wordt verzonden wanneer de sensoren van de uitbreidingskaart (PCF8574) worden geactiveerd, als het alarm gedurende deze periode niet is uitgeschakeld. De syntaxis is hetzelfde als de opdracht DelayBeforeAlarm.

GuardOn - arm
GuardOff - bescherming verwijderen

Open - opdracht om een ​​extern apparaat te bedienen

Info - controleer de status, in reactie op dit bericht wordt een sms verzonden met informatie over het nummer waarvan de beveiliging is in- / uitgeschakeld

Pauze - pauzeert het systeem gedurende de tijd die is ingesteld door de sleeptime-opdracht in minuten, het systeem reageert niet op activering van de sensor.

TestOn - testmodus is ingeschakeld, blauwe LED knippert.
TestOff - de testmodus is uitgeschakeld.

LedOff - schakelt de standby-LED uit.
LedOn - schakelt de standby-LED in.

Geld - saldoverzoek.

ClearSms - Verwijder alle sms uit het geheugen

Console-opdrachten (tot versie GSM_2017_04_24-13-22.hex) - ingevoerd in de monitor van de Arduino IDE-poort:

AddPhone - vergelijkbaar met het SMS-commando AddPhone

DeletePhone - vergelijkbaar met het SMS-commando DeletePhone

EditSensor - vergelijkbaar met sms-commando EditSensor

ListPhone - uitvoer naar de poortmonitor van de lijst met telefoons die in het geheugen zijn opgeslagen

ResetConfig - vergelijkbaar met de opdracht ResetConfig sms

ResetPhone - vergelijkbaar met het SMS-commando ResetPhone

FullReset - vergelijkbaar met sms-commando FullReset

ClearSms - vergelijkbaar met de opdracht ClearSms sms

WatchPowerOn1 - vergelijkbaar met de WatchPowerOn1 sms-opdracht
WatchPowerOn2 - vergelijkbaar met de WatchPowerOn2 sms-opdracht
WatchPowerOff - vergelijkbaar met de WatchPowerOff sms-opdracht

GuardButtonOn - vergelijkbaar met de GuardButtonOn sms-opdracht. Verwijderd sinds versie GSM_2017_04_16-12-00
GuardButtonOn1 - vergelijkbaar met de GuardButtonOn1 sms-opdracht
GuardButtonOn2 - vergelijkbaar met de GuardButtonOn2 sms-opdracht
GuardButtonOff - vergelijkbaar met de GuardButtonOff sms-opdracht

Memtest - test van het niet-vluchtige geheugen van het apparaat, alle apparaatinstellingen worden gereset, vergelijkbaar met de opdracht FullReset.

I2CScan - zoek en initialiseer ondersteunde apparaten op de I2C-bus.

ListConfig - voer de huidige apparaatconfiguratie uit naar de poortmonitor.

ListSensor - voer de huidige sensorconfiguratie uit naar de poortmonitor.

UPD. Bij gebruik van een bewegingssensor, om valse positieven uit te sluiten wanneer de modem in bedrijf is, is het noodzakelijk tussen pinnen GND en A0 Arduino weerstand bieden, zeggen we dank aan een vriend
AllowPhone = ("70001234501", "70001234502", "70001234503", "70001234504", "70001234505") - Nummers die de beveiliging mogen beheren.
AlarmPhone = ("70001234501", "70001234502") - Nummers voor het verzenden van SMS-meldingen wanneer een sensor wordt geactiveerd en meldingen over in- of uitschakelen. Het eerste nummer in de lijst wordt gebeld wanneer de sensor wordt geactiveerd als de opdracht RingOn wordt uitgevoerd, standaard is deze optie ingeschakeld. Dit wordt gedaan omdat sms-berichten met enige vertraging kunnen komen, maar de oproep moet onmiddellijk doorkomen.

Als u een oproep ontvangt van een geautoriseerd nummer of een SMS-bericht met het GuardOn / GuardOff-commando, dan, afhankelijk van: huidige toestand beveiliging wordt een sms-bericht over in- of uitschakelen verzonden naar de nummers die in de AlarmPhone-array staan, evenals een sms-bericht naar het nummer waarvan de oproep is ontvangen.

Wanneer de sensor wordt geactiveerd: sms-berichten worden verzonden naar alle nummers uit de AlarmPhone-array (lijst) en er wordt een spraakoproep gedaan naar het eerste nummer uit deze array.

Licht indicatie:
Rode LED - ingeschakeld.
LED is aan groente- uitgeschakeld, ingeschakeld / uitgeschakeld door sms-commando LedOn / LedOff.
De LED knippert constant blauw - het geeft aan dat alles in orde is met de Arduino, het bord is niet bevroren, het wordt uitsluitend gebruikt voor debuggen, het wordt aan / uitgezet door het sms-commando TestOn / TestOff.
* De code bevat de LedTest ()-functie, deze knippert met een blauwe LED, is alleen gemaakt om de Arduino te bewaken, knippert - dit betekent dat hij werkt, knippert niet - hij is bevroren. Het vriest nog niet :)

Niet relevant!

2 of meer sensoren aansluiten voor open firmware (alleen van toepassing op deze firmware sketch_02_12_2016.ino)
Om extra reed-schakelaars aan te sluiten, gebruiken we vrije digitale pinnen D2, D3, D5 of D7. Aansluitschema met extra sensor op D7.

Vereiste firmwarewijzigingen
... #define DoorPin 6 // Nummer van de ingang aangesloten op de hoofdsensor int8_t DoorState = 0; // Variabele voor het opslaan van de status van de hoofdsensor int8_t DoorFlag = 1; // Variabele voor het opslaan van de status van de hoofdsensor #define BackDoorPin 7 // Nummer van de ingang die is aangesloten op de extra sensor int8_t BackDoorState = 0; // Variabele voor het opslaan van de status van de extra sensor int8_t BackDoorFlag = 1; // Variabele voor het opslaan van de status van de extra sensor ...
void setup () (... pinMode (DoorPin, INPUT); pinMode (BackDoorPin, INPUT); ...
... void Detect () (// Lees waarden van sensoren DoorState = digitalRead (DoorPin); BackDoorState = digitalRead (BackDoorPin); // Verwerking van de hoofdsensor if (DoorState == LAAG && DoorFlag == 0) (DoorFlag = 1; vertraging (100); if (LedOn == 1) digitalWrite (GLed, LOW); Alarm ();) if (DoorState == HIGH && DoorFlag == 1) (DoorFlag = 0; vertraging (100);) // Extra sensor verwerken if (BackDoorState == LAAG && BackDoorFlag == 0) (BackDoorFlag = 1; vertraging (100); if (LedOn == 1) digitalWrite (GLed, LOW); Alarm ();) if (BackDoorState = = HOOG && BackDoorFlag == 1) (BackDoorFlag = 0; vertraging (100);)) ...

En nog een laatste ding:
1. Het is beter om diodes te gebruiken die zijn ontworpen voor een stroomsterkte van 2 A, omdat de module infecteert met een stroom van 1 A en we de Arduino en de modem nog steeds met iets moeten voeden. In dit geval worden 1N4007-diodes gebruikt, als ze defect raken, vervang ze dan door 2 A.
2. Ik heb alle weerstanden voor de LED op 20 kOhm gebruikt, om 's nachts niet de hele gang te verlichten.
3. Ik heb ook een weerstand van 20 kOhm op de reed-schakelaar gehangen tussen de GND-pin en de D6-pin.

Dat is het voor nu. Bedankt voor uw aandacht! :)

Ik ben van plan om +204 . te kopen Toevoegen aan favorieten Ik vond de recensie leuk +112 +243

Vandaag zullen we het hebben over het gebruik van Arduino verzamelen beveiligingssysteem... Onze "bewaker" zal één circuit bewaken en één sirene besturen.

Voor Arduino is dit geen probleem en, zoals u zult zien aan de programmacode en het apparaatdiagram, kunt u eenvoudig het aantal beveiligde toegangspunten en het aantal waarschuwings- of indicatieapparaten vergroten.
Beveiligingssysteem kan worden gebruikt om zowel grote objecten (gebouwen en constructies) als kleine items (dozen, kluizen) en zelfs draagbare koffers en koffers te beschermen. Hoewel je met dat laatste voorzichtiger moet zijn, als je bijvoorbeeld een beveiligingssysteem installeert op een koffer waarmee je op reis gaat en het waarschuwingssysteem gaat af op een luchthaven, dan denk ik dat je een serieus gesprek met de lokale veiligheidsdienst :-)

Vereenvoudigd is het werkingsprincipe van het apparaat als volgt (Fig. 1). Na het inschakelen van de stroom gaat het apparaat naar de bedrijfsmodus en wacht op het inschakelen. In- en uitschakelen gebeurt met één knop. Om de veiligheid te vergroten, is het beter om deze knop binnen het beveiligde gebied (kluis of box) te plaatsen. Voordat u de beveiligingsmodus inschakelt, moet de deur een beetje worden geopend. Wanneer de beveiligingsmodus is ingeschakeld (door op de knop te drukken) elektronische schakeling wacht tot u de deur van de kamer sluit (kluisdeur, deksel van de doos, enz.).

Een eindschakelaar van welk type dan ook moet op de deur (of deur) worden geïnstalleerd, daarover later meer. Door te sluiten (of te openen), zal de eindschakelaar het apparaat informeren dat het beveiligde circuit is gesloten en zal het apparaat overschakelen naar de ingeschakelde modus. Het systeem meldt de overgang naar de beveiligingsmodus met twee korte signalen (zoals bij auto-alarmen). In deze modus "vangt" het apparaat de opening van de deur. Na het openen van de deur wacht het systeem enkele seconden (dit is een configureerbare waarde, voor kamers ongeveer tien seconden, voor een box één of twee) om uit te schakelen, als dit niet gebeurt, gaat de sirene aan. Het algoritme en circuit zijn zo ontworpen dat u de sirene alleen kunt uitschakelen door de behuizing volledig te demonteren en de stroom uit te schakelen.

Apparaat beveiligingssysteem heel eenvoudig (afb. 2). In het hart van de vergoeding Arduino... De eindschakelaars zijn aangesloten als een gewone knop door middel van pull-up weerstanden. Ik zal apart ingaan op de eindschakelaars. Ze zijn normaal gesloten en normaal open. Je kunt een gewone knop als eindschakelaar inschakelen, alleen de slag van de gewone knop is erg groot, de deurspeling is meestal groter. Daarom is het noodzakelijk om een ​​soort drukknop voor de knop te bedenken en deze te veren om de knop met de deur niet te breken. Nou, als het geen luiheid is, dan kun je naar de winkel lopen en een magnetische schakelaar (reed-schakelaar) kopen (Fig. 3), hij is niet bang voor stof en vuil.

Een eindschakelaar voor auto-alarmen is ook geschikt (Fig. 4). Opgemerkt moet worden dat het programma is geschreven voor een reed-schakelaar. Als de deur gesloten is, is het contact gesloten. Als u een schakelaar van een auto-alarm gebruikt, zal wanneer de deur gesloten is, deze hoogstwaarschijnlijk open zijn en op de juiste plaatsen in de code moet u 0 in 1 veranderen en omgekeerd.

Als sirene stel ik voor om een ​​geluidssirene te gebruiken PKI-1 IVOLGA Wit-Russische productie (Fig. 5). Voedingsspanning 9 - 15 V, bedrijfsstroom 20 - 30 mA. Hierdoor kan hij met batterijvoeding worden gebruikt. Tegelijkertijd "geeft" het 95 - 105 dB.

Met dergelijke kenmerken van de Krona-batterij zal deze enkele tientallen minuten klinken. Ik vond het op internet voor 110 roebel. Daar kost een reed-schakelaar met een magneet ongeveer 30 roebel. De auto-alarmschakelaar in auto-onderdelen werd gekocht voor 28 roebel. De KT315-transistor kan met elke letter worden ingenomen of worden vervangen door elke moderne low-power siliciumtransistor met de juiste geleidbaarheid. Als het volume van één sirene niet genoeg is (wie weet, misschien wil je dat hij vele kilometers te horen is), kun je meerdere sirenes parallel aansluiten of een krachtigere nemen, alleen in dit geval moet de transistor worden vervangen door een krachtiger (bijvoorbeeld de bekende transistorassemblage ULN2003). Als connectoren voor het aansluiten van een reed-schakelaar en een sirene, gebruikte ik de eenvoudigste connectoren voor audio- / video-apparaten - de prijs op de radiomarkt is 5 roebel. voor een paar.

De behuizing van het apparaat kan worden gelijmd van plastic of multiplex; als een serieus object wordt bewaakt, is het beter om het van metaal te maken. Batterijen of accu's moeten in de behuizing worden geplaatst om de betrouwbaarheid en veiligheid te vergroten.

Om de programmacode te vereenvoudigen, zijn er geen energiebesparende elementen gebruikt en zijn de batterijen lange tijd niet genoeg. Je kunt de code optimaliseren, of nog beter, radicaal veranderen door interrupt event handling en MK hibernation toe te passen. In dit geval moet de voeding van twee in serie geschakelde vierkante batterijen (9 V) enkele maanden meegaan.

Nu de code

// constanten
const int-knop = 12; // speld voor de knop
const int gerkon = 3; // pin voor reed-schakelaar
const int sirena = 2; // pin-bediening van de sirene
const int led = 13; // indicatorpin
// variabelen
int knopState = 0; // knop staat
int gerkonState = 0; // staat van de reed-schakelaar
int N = 0; // teller van de uitschakelknop
ongeldige setup () (
// sirene en indicator controle - exit
pinMode (sirene, UITGANG);
pinMode (led, UITGANG); // drukknop en reed-schakelaar zijn ingangen
pinMode (gerkon, INPUT);
pinMode (knop, INPUT);
}
lege lus () (
digitalWrite (led, HOOG);
while (buttonState = = 0) (// wacht lus totdat we op de knop drukken
buttonState = digitalRead (knop); // om over te schakelen naar de beveiligingsmodus
}
digitalWrite (led, LAAG);
knopStatus = 0; // reset de waarde van de knop
while (gerkonState = = 0) (// lus totdat we de deur sluiten

}
vertraging (500); // :-)
digitalWrite (sirena, HOOG); // Code
vertraging (100); // indicaties
digitalWrite (sirena, LAAG); // erbij betrekken
vertraging (70); // modus
digitalWrite (sirena, HOOG); // bewaker
vertraging (100); // waarschuwing
digitalWrite (sirena, LAAG); // geluid
while (gerkonState = = 1) (// wacht tot de deur opengaat
gerkonState = digitalRead (gerkon);
}
voor (int i = 0; i<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead (knop); // geheime knop
if (buttonState = = HIGH) (// onze eigen bijhouden - vreemdeling
N = N + 1;
}
vertraging (1500); // geheime functie :-)))
}
if (N> 0) (// belangrijkste
digitalWrite (sirena, LAAG); // zet de sirene niet aan
}
anders (
digitalWrite (sirena, HOOG); // of zet de sirene aan
}
digitalWrite (led, HOOG); // zet de indicator N = 0 aan;
knopStatus = 0;
vertraging (15000); // herinnering voor dummies die het leuk vinden
digitalWrite (led, LAAG); // druk op de knoppen zonder onderbrekingsvertraging (1000);

ervaren persoon 15 februari 2012 om 16:34 uur

Binnenalarm op Arduino

  • Houtkamer *

Goedemiddag.

Ik wil graag een alarm onder uw aandacht brengen voor elke kamer - thuis, winkel, kantoor, die, bij detectie van ongewenste inbraak, een e-mail verzendt en belt mobiele telefoon.

Het unieke van het alarm - alle alarmcontrole wordt uitgevoerd via de website makridenkov.ru/signals, vanaf elk apparaat, Android, iPhone. Hardware - zelfgemaakt, op Arduino met lage kosten van ~ $ 45. De schakeling en het hardwareprogramma zijn open op de link. Makkelijk om jezelf te herhalen.

Algemeen schema van alarmwerking.

Zoals je in de afbeelding kunt zien, brengt de Arduino alle informatie van de sensoren over naar de controlesite. Op de site wordt, afhankelijk van de staat van "aan" of "uit" het alarm, een beslissing genomen om alarm te slaan of niet.

De Arduino stuurt elke 20 seconden een “link up” signaal. Hiermee kunt u de eigenaar van het pand op de hoogte stellen van de situatie als de indringer de elektriciteit heeft uitgeschakeld of op een of andere manier het alarm heeft uitgeschakeld, kapot is gegaan of enige vorm van radio-interferentie heeft gebruikt "gsm-stoorzenders". Dat. melding volledig ongeacht de staat van ijzer in de kamer.

Grappig

De wekker kan als kalf worden gebruikt.
Plaats de sensor boven het bed van de baby en ga veilig naar de dichtstbijzijnde winkel. Als de baby wakker wordt en begint te bewegen, gaat je mobiele telefoon over.

Op de alarmbeheersite wordt een schema voor het verplaatsen door de kamer gebouwd. Dat. we krijgen een beeld van welke paden en plaatsen populair zijn. Waarvoor? Zoek bijvoorbeeld uit hoe vaak de verkopers van uw winkel de rookruimte bezoeken. Of stel voor de grap de vraag, wat bezoekt uw echtgenoot vaak - een plek om te koken of een computer met internet? Deze vragen worden beantwoord door het transferschema.

Videodemonstratie van werk

Implementatie

IJzer is vrij eenvoudig zelf in elkaar te zetten. De kosten bedragen ongeveer $ 45.
In detail, waar en wat te kopen via de link, actuele informatie.
Het schematische diagram wordt getoond in de figuur.

Totaal

Hopelijk helpt het alarm u om gemoedsrust te krijgen voor uw winkel of huis.
Ik denk ook dat het interessant en nuttig is om zo'n apparaat zelf in elkaar te zetten, als het begin van je creatieve activiteit op het prachtige, handige en eenvoudige Arduino-platform. Hoewel ik naar mijn mening liever programma's voor Arduino in Ruby zou schrijven in plaats van in SI.

Ik wil graag de gegevens demonstreren die de alarmen konden verzamelen.
Mijn reisschema.

Meestal blijkt uit het bewegingsschema dat één kamer in een appartement voldoende is als je alleen woont. Vandaag heb ik echter om de een of andere reden door alle kamers verplaatst.

Grappige observatie, je kunt precies zien hoe laat hij naar zijn werk ging. En gebruik deze gegevens als een hulpmiddel voor de punctualiteit van zelfverbetering.

PS Foto's van het voltooide en werkende apparaat.

Dit is het einde van het verhaal.
Al het beste.

Tags: circuit, alarm, gsm, arduino, zelfgemaakt,

Zijn speciale hardwareplatforms op basis waarvan je verschillende elektronische apparaten, inclusief en. Apparaten van dit type onderscheiden zich door een eenvoudig ontwerp en de mogelijkheid om algoritmen te programmeren voor hun werking. Dankzij dit is het alarm gemaakt met de Arduino GSM , kan zoveel mogelijk worden geconfigureerd voor het object dat het zal bewaken.

Wat is een Arduino-module?

Arduino's zijn geïmplementeerd als kleine borden die hun eigen microprocessor en geheugen hebben. Het bord bevat ook een set functionele contacten waarop u verschillende geëlektrificeerde apparaten kunt aansluiten, waaronder sensoren die worden gebruikt voor beveiligingssystemen.

Met de Arduino-processor kunt u een door de gebruiker zelf geschreven programma laden. Door uw eigen unieke algoritme te maken, kunt u: optimale modi werk inbraakalarm voor verschillende objecten en voor verschillende omstandigheden gebruik en op te lossen taken.

Is het moeilijk om met Arduino te werken?

Arduino-modules zijn erg populair bij veel gebruikers. Dit wordt mogelijk gemaakt door zijn eenvoud en betaalbaarheid.

Programma's voor het beheren van modules zijn geschreven met behulp van reguliere C ++ en add-ons in de vorm eenvoudige functies aansturing van input/output processen op de module contacten. Bovendien kan voor de programmering de gratis software Arduino IDE worden gebruikt die onder Windows, Linux of Mac OS werkt.

Met Arduino-modules is de procedure voor het samenstellen van apparaten sterk vereenvoudigd. GSM-signalering op Arduino kan worden gemaakt zonder dat er een soldeerbout nodig is - montage vindt plaats met behulp van een breadboard, jumpers en draden.

Hoe maak je een alarm aan met Arduino?

De belangrijkste vereisten waaraan het gegenereerde gsm-alarmsysteem op de Arduino met hun eigen handen moet voldoen, zijn onder meer:

  • de eigenaar van de voorziening op de hoogte stellen van inbraak of penetratie;
  • steun externe systemen zoals geluidssirene, waarschuwingslichten;
  • alarmcontrole via sms of oproep;
  • autonome werking zonder externe voeding.

Om een ​​alarm te maken heb je nodig:

  • Arduino-module;
  • een set functionele sensoren;
  • of een modem;
  • bron van autonome stroomvoorziening;
  • externe uitvoerende apparaten.

Een onderscheidend kenmerk van Arduino-modules is het gebruik van speciale uitbreidingskaarten. Ze worden gebruikt om alles te verbinden extra apparaten naar de Arduino, die nodig zijn om de configuratie van het beveiligingssysteem te bouwen. Dergelijke borden worden bovenop de Arduino-module geïnstalleerd in de vorm van een "sandwich", en de bijbehorende hulpapparaten worden op de borden zelf aangesloten.

Hoe het werkt?

Wanneer een van de aangesloten sensoren wordt geactiveerd, wordt een signaal verzonden naar de processor van de Arduino-module. Met behulp van de geladen maatwerksoftware verwerkt de microprocessor het volgens een specifiek algoritme. Als gevolg hiervan kan een commando worden gevormd om de externe actuator te bedienen, die ernaar wordt verzonden via de bijbehorende uitbreidingsinterfacekaart.

Om ervoor te zorgen dat waarschuwingssignalen kunnen worden verzonden naar de eigenaar van een huis of appartement dat wordt beschermd, is een speciale GSM-module... Het installeert een simkaart van een van de providers cellulaire communicatie.

Bij het ontbreken van een speciale GSM-adapter kan ook een gewone mobiele telefoon zijn rol spelen. Naast het verzenden van sms-berichten met een waarschuwing over een alarm en kiezen, kunt u met de aanwezigheid van mobiele communicatie het GSM-alarmsysteem op de Arduino op afstand bedienen en de status van het object bewaken door speciale verzoeken te verzenden.

"Opmerking!

Voor communicatie met de eigenaar van het object kunnen naast GSM-modules ook gewone modems worden gebruikt, die zorgen voor communicatie via internet."

In dit geval, wanneer de sensor wordt geactiveerd, wordt het door de processor verwerkte signaal via een modem naar een speciale portal of website verzonden. En al vanaf de site wordt automatisch een waarschuwings-sms of mailing naar de gekoppelde e-mail uitgevoerd.

conclusies

Door het gebruik van Arduino-modules kunnen gebruikers zelfstandig GSM-alarmen ontwerpen die met verschillende functionele sensoren en externe apparaten bedienen. Door de mogelijkheid om verschillende sensoren te gebruiken, kunnen de alarmfuncties aanzienlijk worden uitgebreid en kan een complex worden gecreëerd dat niet alleen de veiligheid van de faciliteit, maar ook de toestand ervan bewaakt. Zo zal het mogelijk zijn om de temperatuur op de faciliteit te regelen, lekkage van water en gas te registreren, de toevoer af te sluiten bij een ongeval en nog veel meer.