Trådløst alarmsystem baseret på Arduino. Hjemmealarm eller brug af en bevægelsessensor og LCD-skærm med Arduino Tilslutning af trådløse bevægelsessensorer fra Sapsan til Arduino

Indsætter
Biltyverier hele vejen igennem sidste årti indtager en af ​​de betydelige pladser i strukturen af ​​forbrydelser begået i verden. Dette skyldes ikke så meget alvoren af ​​denne kategori af tyveri i forhold til det samlede antal forbrydelser, men betydningen af ​​skaden forårsaget på grund af de høje omkostninger ved biler. Den svage effektivitet af foranstaltninger, der blev truffet inden for bekæmpelse af biltyveri i slutningen af ​​90'erne førte til oprettelsen af ​​stabile grupper, der specialiserede sig i at begå disse forbrydelser og besidde Karakteristiske træk organiseret kriminalitet; Du har sikkert hørt udtrykket "sort bilvirksomhed." De europæiske landes bilflåde mangler årligt ≈ 2 % af biler, der bliver genstand for kriminelle angreb. Derfor kom jeg på ideen om at lave en GSM-alarm til min bil på Arduino baseret Uno.

Lad os begynde!

Hvad vil vi indsamle fra?

Vi skal vælge hjertet af vores system. Efter min mening er der ikke noget bedre end Arduino Uno til sådan signalering. Hovedkriteriet er et tilstrækkeligt antal "stifter" og pris.


Nøglefunktioner i Arduino Uno

Mikrocontroller - ATmega328
Driftsspænding - 5 V
Indgangsspænding (anbefalet) - 7-12 V
Indgangsspænding (grænse) - 6-20 V
Digitale ind-/udgange - 14 (hvoraf 6 kan bruges som PWM-udgange)
Analoge indgange - 6
Konstant strøm gennem input/output - 40 mA
Konstant strøm for udgang 3,3V - 50mA
Flash-hukommelse - 32 KB (ATmega328) hvoraf 0,5 KB bruges til bootloaderen
RAM - 2 KB (ATmega328)
EEPROM - 1 KB (ATmega328)
Urfrekvens - 16 MHz


Passer!

Nu skal du vælge et GSM-modul, for vores alarmsystem skal kunne give bilejeren besked. Så du skal google det... Her en fremragende sensor - SIM800L, størrelsen er simpelthen vidunderlig.


Jeg tænkte og bestilte den fra Kina. Alt viste sig dog ikke at være så rosenrødt. Sensoren nægtede simpelthen at registrere SIM-kortet på netværket. Alt muligt blev prøvet - resultatet var nul.
Fundet gode mennesker, der forsynede mig med en sejere ting - Sim900 Shield. Nu er det her en alvorlig ting. Shield har både en mikrofon og hovedtelefonstik, hvilket gør den til en fuldgyldig telefon.


Nøglefunktioner i Sim900 Shield

4 driftsfrekvensstandarder 850/ 900/ 1800/ 1900 MHz
GPRS multi-slot klasse 10/8
GPRS mobilstation klasse B
Overholder GSM fase 2/2+
Klasse 4 (2 W @850/900 MHz)
Klasse 1 (1 W @ 1800/1900 MHz)
Styring ved hjælp af AT-kommandoer (GSM 07.07, 07.05 og SIMCOM udvidede AT-kommandoer)
Lavt strømforbrug: 1,5mA (dvaletilstand)
Driftstemperaturområde: -40°C til +85°C


Passer!

Ok, men du skal tage aflæsninger fra nogle sensorer for at underrette ejeren. Hvis bilen bugseres væk, så vil bilens position naturligvis ændre sig i rummet. Lad os tage et accelerometer og et gyroskop. Store. Ok, nu leder vi efter en sensor.

Jeg tror, ​​at GY-521 MPU6050 helt sikkert vil passe. Det viste sig, at den også har en temperaturføler. Vi bør også bruge det, der vil være sådan en "killer feature". Lad os antage, at ejeren af ​​bilen parkerede den under sit hus og gik. Temperaturen inde i bilen vil ændre sig "glat". Hvad sker der, hvis en ubuden gæst forsøger at bryde ind i bilen? For eksempel vil han være i stand til at åbne døren. Temperaturen i bilen vil begynde at ændre sig hurtigt, da luften i kabinen begynder at blande sig med luften miljø. Jeg tror, ​​det vil virke.


Hovedegenskaber af GY-521 MPU6050

3-akset gyroskop + 3-akset accelerometer GY-521 modul på MPU-6050 chip. Giver dig mulighed for at bestemme positionen og bevægelsen af ​​et objekt i rummet, vinkelhastighed under rotation. Den har også en indbygget temperatursensor. Det bruges i forskellige coptere og flymodeller; et motion capture-system kan også samles baseret på disse sensorer.

Chip - MPU-6050
Forsyningsspænding - fra 3,5V til 6V (DC);
Gyroområde - ±250 500 1000 2000°/s
Accelerometerområde - ±2±4±8±16g
Kommunikationsgrænseflade - I2C
Størrelse - 15x20 mm.
Vægt - 5 g


Passer!

En vibrationssensor vil også være praktisk. Pludselig forsøger de at åbne bilen med "brute force", eller på parkeringspladsen rammer en anden bil din bil. Lad os tage vibrationssensoren SW-420 (justerbar).


Hovedkarakteristika for SW-420

Forsyningsspænding - 3,3 - 5V
Udgangssignal - digital høj/lav (normalt lukket)
Sensor brugt - SW-420
Den anvendte komparator er LM393
Mål - 32x14 mm
Derudover - Der er en justeringsmodstand.


Passer!

Skru SD-hukommelseskortmodulet på. Vi vil også skrive en logfil.


Hovedkarakteristika for SD-hukommelseskortmodulet

Modulet giver dig mulighed for at gemme, læse og skrive til et SD-kort de data, der kræves til driften af ​​en enhed baseret på en mikrocontroller. Brugen af ​​enheden er relevant ved lagring af filer fra snesevis af megabyte til to gigabyte. Kortet indeholder en SD-kortbeholder, en kortstrømstabilisator og et stik til interface og strømledninger. Hvis du skal arbejde med lyd, video eller andre data i stor skala, for eksempel føre en log over hændelser, sensordata eller gemme webserverinformation, så vil SD-hukommelseskortmodulet til Arduino gøre det muligt at bruge et SD-kort til disse formål. Ved hjælp af modulet kan du studere funktionerne på SD-kortet.
Forsyningsspænding - 5 eller 3,3 V
SD-korthukommelseskapacitet - op til 2 GB
Mål - 46 x 30 mm


Passer!

Og lad os tilføje et servodrev; når sensorerne udløses, vil servodrevet med videooptageren dreje og optage en video af hændelsen. Lad os tage MG996R servodrevet.


Hovedtræk ved MG996R Servo Drive

Stabil og pålidelig beskyttelse fra skader
- Metaldrev
- Dobbeltrækket kugleleje
- Trådlængde 300 mm
- Mål 40x19x43mm
- Vægt 55 g
- Rotationsvinkel: 120 grader.
- Driftshastighed: 0,17 sek/60 grader (4,8V uden belastning)
- Driftshastighed: 0,13 sek/60 grader (6V uden belastning)
- Startmoment: 9,4 kg/cm ved 4,8V strømforsyning
- Startmoment: 11 kg/cm ved 6V strømforsyning
- Driftsspænding: 4,8 - 7,2V
- Alle drivdele er lavet af metal


Passer!

Vi samler ind

Der er et stort antal artikler på Google om tilslutning af hver sensor. Og jeg har ikke lyst til at opfinde nye cykler, så jeg vil efterlade links til enkle og fungerende muligheder.

Dette projekt omhandler udvikling og forbedring af et system til at forhindre/kontrollere eventuelle forsøg på infiltration fra tyve. Den udviklede sikkerhedsenhed bruger et indlejret system (inkluderer en hardware-mikrocontroller, der bruger open source-software og et GSM-modem) baseret på GSM-teknologi (Global System for Mobile Communications).

En sikkerhedsanordning kan installeres i huset. Interface sensor tyverialarm også tilsluttet et controller-baseret sikkerhedssystem.
Når man forsøger at trænge ind, sender systemet en advarselsmeddelelse (f.eks. sms) til ejeren på mobiltelefon eller til enhver forudkonfigureret mobiltelefon for yderligere behandling.

Sikkerhedssystemet består af en Arduino Uno mikrocontroller og et standard SIM900A modem baseret på GSM/GPRS. Hele systemet kan drives af enhver 12V 2A strømforsyning/batteri.

Nedenfor er diagrammet sikkerhedssystem baseret på Arduino.

Betjeningen af ​​systemet er meget enkel og kræver ingen forklaring. Når systemet får strøm, går det i standbytilstand. Når J2-stikbenene er kortsluttede, sendes en forudprogrammeret advarselsmeddelelse til det påkrævede mobilnummer. Du kan tilslutte enhver indbrudsdetektor (såsom en lysskærm eller bevægelsessensor) til J2-indgangsstikket. Bemærk, at et aktivt-lavt (L) signal på ben 1 på stik J2 vil aktivere tyverialarmen.

Desuden er der tilføjet en valgfri "opkalds-alarm"-enhed til systemet. Den aktiverer telefon opkald når brugeren trykker på knap S2 (eller når en anden elektronisk enhed udløser en alarm). Efter tryk på "opkald"-knappen (S2), kan opkaldet annulleres ved at trykke på en anden knap S3 - "Afslut"-knappen. Denne mulighed kan bruges til at generere en "besvaret opkald"-alarm i tilfælde af indtrængen.

Kredsløbet er meget fleksibelt, så det kan bruge ethvert SIM900A-modem (og selvfølgelig Arduino Uno-kortet). Læs venligst modemdokumentationen omhyggeligt, inden du starter monteringen. Dette vil gøre systemfremstillingsprocessen nemmere og sjovere.

Liste over radioelementer

Betegnelse Type Pålydende Antal BemærkButikMin notesblok
Arduino bord

Arduino Uno

1 Til notesblok
GSM/GPRS modemSIM900A1 Til notesblok
IC1 Lineær regulator

LM7805

1 Til notesblok
C1 100uF 25V1 Til notesblok
C2 Elektrolytisk kondensator10uF 16V1 Til notesblok
R1 Modstand

1 kOhm

1 Til notesblok
LED1 Lysdiode 1 Til notesblok
S1 KnapMed fiksering1


Hvordan man gør simpel GSM alarmsystem på SIM800L og Arduino til garage eller sommerhus. Vi laver det selv ved hjælp af færdige moduler fra Aliexpress. HovedmodulerGSM modul SIM800L, Arduino Nano (du kan bruge enhver Uno osv.), step-down board, batteri fra mobiltelefon.

Ris. 1. Layout af sikkerhedsalarmmoduler på Arduino

Alarmproduktion

Vi stiger på brødbræt gennem puderne, som giver dig mulighed for at udskifte moduler, hvis det er nødvendigt. Tænd for alarmen ved at levere 4,2 volt strøm gennem kontakten på SIM800L og Arduino Nano.



Når den første løkke udløses, ringer systemet først til det første nummer, afbryder derefter opkaldet og ringer tilbage til det andet nummer. Det andet nummer blev tilføjet for tilfælde af, at det første pludselig bliver afbrudt osv. Når den anden, tredje, fjerde og femte sløjfe udløses, sendes en SMS med nummeret på den udløste zone, også til to numre. Diagrammet og skitsen for interesserede er i beskrivelsen under videoen.
Vi placerer al elektronik i et passende hus.



Hvis du ikke har brug for 5 kabler, skal du tilslutte 5V Arduino-pinden til de unødvendige indgange. GSM alarm til 5 kabler med et batteri, hvilket vil gøre det muligt for enheden at fortsætte med at fungere selvstændigt i flere dage, selv under strømafbrydelse. Dem kan du tilslutte alle sikkerhedskontaktsensorer, relækontakter osv. Som et resultat får vi en enkel, billig, kompakt sikkerhedsenhed til at sende SMS og ringe til 2 numre. Det kan bruges til at beskytte en dacha, lejlighed, garage osv.

Flere detaljer i videoen

Hej, kære læser! Dagens artikel handler om at skabe en simpel hjemmesystem sikkerhed ved brug af tilgængelige komponenter. Denne lille og billige enhed hjælper dig med at beskytte dit hjem mod indtrængen. Arduino hjælp, bevægelsessensor, display og højttaler. Enheden kan få strøm fra et batteri eller en computers USB-port.

Så lad os begynde!

Hvordan virker det?

Ligene af varmblodede dyr udsender infrarød stråling, som er usynlig for menneskelige øjne, men kan detekteres ved hjælp af sensorer. Sådanne sensorer er lavet af et materiale, der spontant kan polarisere, når de udsættes for varme, hvilket gør det muligt at detektere udseendet af varmekilder inden for sensorens rækkevidde.

Til et bredere udvalg anvendes Fresnel-linser, som opsamler infrarød stråling fra forskellige retninger og koncentrere det om selve sensoren.

Figuren viser, hvordan linsen forvrænger de stråler, der falder på den.

Det er værd at bemærke, at robotter uden særligt varme dele og koldblodede dele udsender meget lidt infrarød stråling, så sensoren fungerer muligvis ikke, hvis Boston Dynamics-ansatte eller krybdyr beslutter sig for at omringe dig.

Når der er en ændring i niveauet af IR-stråling i området, vil dette blive behandlet på Arduino, hvorefter status vil blive vist på LCD-displayet, LED vil blinke, og højttaleren vil bippe.

Hvad har vi brug for?

  1. (eller ethvert andet bord).
  2. (16 tegn på to linjer)
  3. Et stik til at forbinde kronen til Arduino
  4. (selvom du kan bruge en almindelig højttaler)
  5. USB-kabel - kun til programmering ( ca. oversættelse: Det følger altid med vores Arduino!)
  6. Computer (igen kun til at skrive og indlæse programmet).

Forresten, hvis du ikke ønsker at købe alle disse dele separat, anbefaler vi, at du er opmærksom på vores. Alt hvad du skal bruge og endnu mere er for eksempel i vores startsæt.

Lad os forbinde!

Tilslutning af en bevægelsessensor er meget enkel:

  1. Vi forbinder Vcc-pinden til 5V Arduino.
  2. Vi forbinder Gnd-stiften til GND på Arduino.
  3. Vi forbinder OUT-pinden til digital pin nr. 7 fra Arduino

Lad os nu forbinde LED og højttaler. Det er lige så enkelt her:

  1. Vi forbinder det korte ben (minus) af LED'en til jorden
  2. Vi forbinder det lange ben (plus) af LED'en til udgang nr. 13 på Arduino
  3. Rød højttalerledning til udgang nr. 10
  4. Sort ledning - til jord

Og nu er den svære del at forbinde 1602 LCD-skærmen til Arduino. Vi har en skærm uden I2C, så vi skal bruge mange Arduino-output, men resultatet vil være det værd. Diagrammet er præsenteret nedenfor:

Vi behøver kun en del af kredsløbet (vi vil ikke have kontrastjustering med et potentiometer). Derfor skal du kun gøre følgende:

Nu ved du, hvordan du forbinder en 1602-skærm til Arduino UNO R3 (såvel som til enhver version af Arduino fra Mini til Mega).

Programmering

Det er tid til at gå videre til programmering. Nedenfor er koden, som du blot skal udfylde, og hvis du har samlet det hele rigtigt, er enheden klar!

#omfatte int ledPin = 13; // LED pin int inputPin = 7; // Pin som Out of the motion sensor er tilsluttet int pirState = LOW; // Aktuel tilstand (intet registreret i begyndelsen) int val = 0; // Variabel til at læse tilstanden af ​​digitale indgange int pinSpeaker = 10; // Pinden, som højttaleren er tilsluttet. Kræver PWM pin LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Initialiser LCD-skærmens void opsætning() ( // Bestem retningen for dataoverførsel på digitale ben pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); pinMode(pinSpeaker, OUTPUT); // Start output af fejlretningsinformation via den serielle seriel port .begin(9600); // Start output til LCD-skærmen lcd.begin(16, 2); // Indstil indekset på de skærme, hvorfra vi vil starte output // (2 tegn, 0 linjer) ) lcd.setCursor(2, 0); // Output til LCD-skærmen lcd.print("P.I.R Motion"); // Flyt igen lcd.setCursor(5, 1); // Output lcd.print("Sensor" ); // Pause for at have tid til at læse, hvad der var udgangsforsinkelse (5000); // Rydning af lcd.clear(); // Svarende til lcd.setCursor(0, 0); lcd.print("Behandler data." ); delay(3000); lcd.clear(); lcd.setCursor(3, 0); lcd.print("Venter på"); lcd.setCursor(3, 1); lcd.print("Bevægelse... ."); ) void loop() ( // Læs sensoraflæsning val = digitalRead(inputPin); if (val == HIGH) ( // Hvis der er bevægelse, så tænd LED'en og tænd for sirenen digitalWrite(ledPin, HØJ); playTone(300, 300); forsinkelse(150); // Hvis bevægelserne er før i dette øjeblik var det ikke, så viser vi en meddelelse // at det blev opdaget // Koden nedenfor er nødvendig for kun at skrive en tilstandsændring og ikke udskrive værdien hver gang if (pirState == LOW) ( Serial.println(" Bevægelse detekteret!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Motion Detected!"); pirState = HIGH; ) ) else ( // Hvis bevægelsen er over digitalWrite(ledPin , LOW); playTone(0, 0); delay(300); if (pirState == HIGH)( // Informer om, at der var bevægelse, men den er allerede afsluttet Serial.println("Motion ended!"); lcd. clear(); lcd.setCursor(3, 0); lcd.print("Venter På"); lcd.setCursor(3, 1); lcd.print("Motion...."); pirState = LOW; ) ) ) // Lydafspilningsfunktion. Varighed (varighed) - i millisekunder, Frekv (frekvens) - i Hz void playTone (lang varighed, int frekv) ( varighed *= 1000; int periode = (1,0 / frekv) * 100000; lang forløbet_tid = 0; mens (forløbet_tid)< duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }