Budget GSM alarm med Arduino hjerner. Om bevægelsessensoren og tilslutning af den til Arduino trådløs sikkerhedssensor på Arduino

Indre

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 den sværeste del - LCD tilslutning 1602-skærm 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); } }

God eftermiddag Igen, en multi-gennemgang af kinesiske elektroniske komponenter, som sædvanlig om lidt af hvert, jeg vil prøve at holde det kort, men vil det virke? Så mød GSM alarm koster op til 700 kr. Interessant? Brug venligst "klip"!

Lad os komme igang! Før du starter, anbefaler jeg at tage et kig på denne, færre komponenter og større autonomi. Så de "tekniske specifikationer", de grundlæggende krav til signalering:

1) Giv besked, når sensorer udløses.
2) I tilfælde af strømsvigt skal der gives en vis autonomi.
3) Alarmstyring via SMS og opkald.

På grund af det faktum, at processen med at oprette en alarm tog flere måneder, og nogle sælgere ikke længere sælger de komponenter, der blev købt hos dem, vil links blive opdateret til produkter fra andre sælgere, der har det maksimale eller tæt på det maksimale antal produktsalg og den bedste pris. Priserne i anmeldelsen er gældende på den dato, den blev skrevet.

Liste over hvad du skal bruge:

Liste over ændringer

GSM_03_12_2016-14-38.hex- fast betjening af enheden med M590-modemet.
GSM_05_12_2016-13-45.hex- tilføjet memtest-konsolkommando, optimering af RAM-brug.
GSM_2016_12_06-15-43.hex- tilføjet output af kommandoresultater til konsollen, hukommelsesoptimering. Optaget: 49% SRAM.
GSM_2016_12_07-10-59.hex- nu tilføjes og fjernes telefonnumre korrekt. Optaget: 49 % SRAM, 74 % Flash-hukommelse.
GSM_2016_12_07-15-38.hex- tilføjet muligheden for at tilslutte en bevægelsessensor, tilslutte til pin A0 (in I dette tilfælde ben A0 bruges som digital). Tilføjede SMS-kommandoer PIROn, PIROff. Optaget: 48 % SRAM, 76 % Flash-hukommelse.
GSM_2016_12_08-13-53.hex- Nu, efter at have udført en kommando, der ikke sender en SMS-besked som svar, blinker enheden den blå LED én gang. Nu, efter en forkert udførelse af en kommando, der ikke sender en SMS-besked som svar, blinker enheden den blå LED to gange. Nu, efter initialisering af enhedsparametrene, hvis "stille" tilstand er aktiveret (SendSms = 0), blinker enheden den blå LED ofte i 2 sekunder. Rettede en fejl på grund af, at nummeret ikke altid blev slettet fra hukommelsen ved hjælp af kommandoen DeletePhone. Optaget: 48 % SRAM, 78 % Flash-hukommelse.
GSM_2016_12_11-09-12.hex- Tilføjet konsol kommandoer AddPhone og DeletePhone, syntaksen ligner SMS-kommandoer. Hukommelsesoptimering. Optaget: 43 % SRAM, 79 % Flash-hukommelse.
GSM_2017_01_03-22-51.hex- Der er implementeret understøttelse af lignende I/O-portudvidelser på PCF8574-chippen til tilslutning af yderligere 8 sensorer, inklusive reed-switche. Automatisk adressesøgning og automatisk modulkonfiguration. Standardnavnene på sensorer og det logiske niveau af deres respons ændres ved hjælp af EditSensor-kommandoen. Indholdet af alarm-SMS'en for hovedsensoren (pin D0) er ændret: “Alarm! Hovedsensor! og bevægelsessensor (ben A0) “Alarm! PIR sensor! Tilføjet EditSensor og I2CScan kommandoer. Optaget: 66% SRAM, 92% Flash-hukommelse.
GSM_2017_01_15-23-26.hex- Understøttelse af A6_Mini-modem. Overvågning af tilstedeværelsen af ​​ekstern strøm (ben D7). Tilføjede SMS-kommandoer WatchPowerOn, WatchPowerOff. Tilføjede konsolkommandoer ListConfig, ListSensor. Nu fungerer EditSensor SMS-kommandoen korrekt. Outputtet af fejlfindingsoplysninger til portmonitoren er blevet en smule reduceret. Optaget: 66% SRAM, 95% Flash-hukommelse.
GSM_2017_01_16-23-54.hex- Nu i svarmeddelelsen til SMS-kommandoen "Info" rapporteres også status for bevægelsessensoren. Rettede en fejl på grund af, at tomme svar-SMS-beskeder nogle gange blev sendt. Nu giver enheden besked ikke kun om en nedlukning, men også om genoptagelse af ekstern strøm. Alle modemer begyndte at skravle mindre, og nu er portmonitoren lidt renere. Optaget: 66% SRAM, 95% Flash-hukommelse.
GSM_2017_02_04-20-23.hex- Rettede fejlen "Se strømmen tændt". Nu, efter frakobling, er "alarmstiften" slukket. Nu, efter sletning af et nummer, vises de korrekte oplysninger i konsollen. Muligvis rettet en fejl, på grund af hvilken tomme svar-SMS-beskeder nogle gange blev sendt. Optaget: 66 % SRAM, 90 % Flash-hukommelse.
GSM_2017_02_14-00-03.hex- Nu sendes SMS-beskeder som standard, SendSms-parameteren er igen lig med 1. Nu, når kontakterne på hoved-reed-sensoren lukkes (lukker døren), blinker enheden med en blå LED i 2 sekunder, hvilket indikerer normal drift af sensoren. Optaget: 66 % SRAM, 90 % Flash-hukommelse.
GSM_2017_03_01-23-37.hex- WatchPowerOn-kommandoen er blevet fjernet. Tilføjet konsolkommando WatchPowerOff, identisk med SMS-kommandoen. Tilføjet WatchPowerOn1, WatchPowerOn2 kommandoer. WatchPowerOn1 - ekstern strømovervågning er aktiveret, hvis alarmen er aktiveret, WatchPowerOn2 - ekstern strømovervågning er altid aktiveret. Implementeret til- og frakoblingsfunktion eksterne enheder, ben A1(D15) og A2(D16) bruges til dette. Alarmen til-/frakobles, når den vises på ben A1(D15) højt niveau+5V eller ved ben A2(D16) lavt niveau GND. Ben A1(D15) trækkes op til GND, ben A2(D16) trækkes op til +5V gennem 20 (10) kOhm modstande. Tilføjet GuardButtonOn og GuardButtonOff kommandoer. Nu, efter tilkobling, blinker den røde LED, indtil integriteten af ​​hoved-reed-afbryderkredsløbet er kontrolleret. Hvis kredsløbet er intakt, lyser den røde LED. Optaget: 66% SRAM, 95% Flash-hukommelse.
GSM_2017_03_12-20-04.hex- Nu er konsollen blevet endnu renere, men hvis testtilstanden "TestOn" er aktiveret, vises yderligere information i konsollen. "Sendt!"-fejlen er blevet rettet; information om afsendelse af beskeder vises nu korrekt i konsollen. Rettede fejlen "gentaget falsk opkald". Nu burde balanceanmodningen fungere korrekt på alle modemer. Optaget: 67 % SRAM, 95 % Flash-hukommelse.
GSM_2017_04_16-12-00.hex- Rettet. Nu vil Info og Money kommandoerne altid sende en svar SMS. GuardButtonOn kommandoen er blevet erstattet af GuardButtonOn1 og GuardButtonOn2 kommandoerne. Optaget: 67 % SRAM, 99 % Flash-hukommelse.
GSM_2017_04_21-09-43.hex - anbefales ikke til brug, kun til testformål, tak for at identificere fejl :) - Nu påvirker sendsms-parameteren ikke afsendelsen af ​​SMS-beskeder til elnetovervågning. Tilføjet SMS-kommando DelayBeforeGuard ansvarlig for forsinkelsen ved tilkobling, værdien må ikke overstige 255 sekunder. Tilføjet SMS-kommando DelayBeforeAlarm, som er ansvarlig for at forsinke afsendelsen af ​​notifikationer og aktivere "alarmpinden", når sensorer udløses; værdien må ikke overstige 255 sekunder. ClearSMS-kommandoer er blevet fjernet, beskeder slettes nu automatisk ved modtagelse. Optaget: 68% SRAM, 100% Flash-hukommelse.
GSM_2017_04_22-20-42.hex- Flere fejl rettet. ClearSMS-kommandoer er igen til stede i firmwaren. Hukommelsesoptimering. Optaget: 68 % SRAM, 98 % Flash-hukommelse.
GSM_2017_04_23-17-50.hex- Nu skulle balanceanmodningen fungere korrekt på alle modemer. Til- og frakobling med eksterne enheder fungerer nu korrekt. SMS-svarbeskeder fra Info-kommandoen må ikke være tomme. Hukommelsesoptimering. Optaget: 68 % SRAM, 98 % Flash-hukommelse.
GSM_2017_04_24-13-22.hex- Sender nu konsolkommandoer til GSM modul udføres kun, hvis testtilstand er aktiveret. Nu er der ingen opdeling mellem SMS-kommandoer og konsolkommandoer; alle eksisterende kommandoer kan transmitteres både via SMS og via konsollen. En fejl med kommandoen Info kan være blevet rettet. Hukommelsesoptimering. Optaget: 68 % SRAM, 94 % Flash-hukommelse.
GSM_2017_04_25-20-54.hex- Rettede en fejl, hvor ListConfig-kommandoen ændrede værdien af ​​den sidste hændelse. Nu, når du indtaster kommandoer gennem konsollen, sendes unødvendige SMS-beskeder ikke. En fejl med kommandoen Info kan være blevet rettet. Hukommelsesoptimering. Optaget: 66 % SRAM, 94 % Flash-hukommelse.
GSM_2017_04_30-12-57.hex- Aktiverede midlertidigt output af yderligere information til konsollen ved afsendelse af SMS-beskeder og generering af et svar på Info-kommandoen. En fejl med kommandoen Info kan være blevet rettet. Hukommelsesoptimering. Optaget: 66% SRAM, 92% Flash-hukommelse.
GSM_2017_05_06-11-52.hex- Rettet med DelayBeforeAlarm funktion. Optaget: 66% SRAM, 93% Flash-hukommelse.
GSM_2017_05_23-21-27.hex- Outputtet af information til konsollen er blevet lidt ændret. Tilføjet understøttelse af portudvidelsesmoduler på PCF8574A med adresser fra 0x38 til 0x3f inklusive. Rettet fejl c. Nu genstarter enheden automatisk efter FullReset, ResetConfig, ResetPhone-kommandoerne, og hvis MemTest-kommandoen er udført. Tilføjet WatchPowerTime-kommando. Det er nu muligt at indstille det tidspunkt, hvorefter en SMS-besked vil blive sendt, der angiver, at den eksterne strømkilde er slukket. Optaget: 67 % SRAM, 94 % Flash-hukommelse.
GSM_2017_05_26-20-22.hex- Initialisering af udvidelseskortsensorhukommelse er blevet rettet. AddPhone-kommandosyntaksen er blevet ændret. Tilføjet EditMainPhone-kommando. Funktionsprincippet for notifikationssystemet er ændret, når sensoren udløses, sendes SMS-beskeder først, hvorefter der foretages taleopkald. Alarm SMS-beskeder vil blive sendt til telefonnumre med tegnet "S" (SMS). Taleopkald vil blive foretaget til numre med "R" (ringe)-tegnet. Meddelelser om at slukke/tænde den eksterne strømkilde vil blive sendt til telefonnumre med tegnet "P" (Power). Tilføjet RingTime-kommando. Det er nu muligt at indstille varigheden af ​​et alarmerende taleopkald; parameteren kan have en værdi fra 10 til 255 sekunder. RingOn/RingOff-kommandoen aktiverer/deaktiverer nu taleopkaldsalarmer globalt. Tilføjet ResetSensor-kommando. Optaget: 68% SRAM, 99% Flash-hukommelse.
GSM_2017_06_02-17-43.hex- Parameteren "I" (Info) er blevet tilføjet til kommandoerne AddPhone og EditMainPhone, som er ansvarlig for SMS-besked om til- eller frakobling af enheden. Nu efter tilføjelse af hovednummeret, genstarter enheden automatisk. Nu kan du indtaste identiske numre i enhedens hukommelse. Når du tilføjer det andet og efterfølgende duplikatnummer, vil attributterne "M", "S", "P" og "I" automatisk blive fjernet fra dem. Disse numre vil blive brugt til gentagne taleopkald, når sensorerne udløses. En fejl med forkert konsoloutput efter udførelse af AddPhone-kommandoen er blevet rettet; nu vises information ikke automatisk efter tilføjelse af et nummer. Tilføjet genstartskommando. Optaget: 69 % SRAM, 99 % Flash-hukommelse.
GSM_2017_06_11-00-07.hex- Nu igen, når kontakterne på hoved-reed-sensoren er lukket (lukker døren), blinker enheden med en blå LED i 2 sekunder, hvilket indikerer normal drift af sensoren, men den tager ikke højde for, om enheden er tilkoblet eller afvæbnet. RingOn/RingOff kommandoer er blevet fjernet. Nu kan enheden frakobles under et alarmopkald; nu foretages de i baggrunden. Optaget: 69 % SRAM, 99 % Flash-hukommelse.
GSM_2017_07_04-21-52.hex- Nu sender Pause-kommandoen ikke en svar-SMS. Kommandoerne TestOn og TestOff er blevet fjernet. Management-attributten er blevet fjernet fra alle numre. Optaget: 68% SRAM, 96% Flash-hukommelse.
GSM_2017_07_24-12-02.hex- Tilføjet ReedSwitchOn/ReedSwitchOff-kommandoer til overvågning af hoved-reed-sensoren, nu kan den tændes/slukkes på samme måde som en bevægelsessensor. Rettede en fejl i Info-kommandoen. Kommandoerne TestOn og TestOff er igen til stede i firmwaren. Optaget: 68% SRAM, 96% Flash-hukommelse.
GSM_2017_07_26-10-03.hex- Tilføjet ModemID-kommando. Automatisk detektering af modemmet udføres kun, hvis værdien af ​​denne parameter er 0. Efter indstilling af parameterværdien til 0, genstartes enheden automatisk. Optaget: 68 % SRAM, 98 % Flash-hukommelse.
GSM_2017_08_03-22-03.hex- Nu kan alarmen styre eksterne enheder. Til styring anvendes analog udgang A3 (D17 - bruges som digital). Det logiske udgangsniveau (+5V eller GND) kan ændres; efter at have ændret niveauet via konfigurationskommandoen, genstarter enheden automatisk. Varigheden af ​​det eksterne enhedskontrolsignal kan ændres. Tilføjet kommandoer ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open. Nogle ændringer i logikken for kontrolkommandoer. Hukommelsesoptimering. Optaget: 68% SRAM, 99% Flash-hukommelse.
GSM_2017_08_10-12-17.hex- Kommandoerne SmsOn/SmsOff, ReedSwitchOn/ReedSwitchOff, PIROn/PIROff og alt forbundet med dem er blevet fjernet. Kommandoen DelayBeforeAlarm er blevet erstattet med udvidede kommandoer. Ændrede output fra Info-kommandoen. Outputtet af ListConfig-kommandoen til konsollen er blevet optimeret. Nu kan alle digitale sensorer med høje eller lave responsniveauer, inklusive reed-kontakter, tilsluttes ben D6 og A0. Ben D6 og A0 skal forbindes til jord (GND) gennem en modstand på 10 (20) kOhm. Hvis sensoren er indstillet til et lavt responsniveau (aktiveret i reed switch-tilstand), kontrolleres kredsløbets integritet. Det logiske udløsningsniveau på indgangene D6 og A0 (+5V eller GND) kan ændres; efter ændring af det logiske niveau genstarter enheden automatisk. For hver af sensorerne (hoved-, sekundær-, PCF-udvidelseskort) kan dens egen tid indstilles, når den udløses, hvorefter der vil blive givet besked (SMS og/eller taleopkald). "PIR-sensor" er blevet omdøbt til "Anden sensor". Rettede driften af ​​udvidelseskortet, en fejl på grund af hvilken enheden altid underrettede, når sensorer blev udløst, uanset om enheden var tilkoblet eller ej. Nu kan du vælge en driftstilstand, hvor enheden kan overvåge udvidelseskortets sensorer både i tilkoblet tilstand (GuardOn) og i deaktiveret tilstand (GuardOff). Tilføjede kommandoer PCFForceOn/PCFForceOff, MainSensorLevelHigh/MainSensorLevelLow/MainSensorLevelOff, SecondSensorLevelHigh/SecondSensorLevelLow/SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeforeAlarm, PCFDelay. Optaget: 68% SRAM, 99% Flash-hukommelse.

*Efterfølgende firmwareversioner inkluderer ændringer fra tidligere versioner.


Arduino Nano v3 porte brugt

D4- udgang af en "alarm"-pin; når sensoren udløses, indstilles et højniveausignal på denne pin
D5- omvendt udgang af "alarm" stiften; når sensoren udløses, indstilles et lavt niveau signal på denne stift

D6- reed sensor. Fra version GSM_2017_08_10-12-17.hex kan alle digitale sensorer med høje eller lave responsniveauer, inklusive reed-kontakter, tilsluttes ben D6. Ben D6 skal trækkes til jord (GND) gennem en modstand på 10 (20) kOhm.
D7- tilsluttet en spændingsdeler fra en ekstern +5V strømkilde. Overarm 2,2 kOhm, underarm 3,3 kOhm.

Spændingsdeler


D8- TX modem
D9- RX modem

D10- rød LED
D11- blå LED
D12- grøn LED

Perifer forbindelse:
A0- Bevægelsessensor. Fra version GSM_2017_08_10-12-17.hex kan alle digitale sensorer med et højt eller lavt responsniveau, inklusive reed-kontakter, tilsluttes ben A0. Ben A0 skal trækkes til jord (GND) gennem en modstand på 10 (20) kOhm.

A1- Log ind for ekstern kontrol. Alarmen til-/frakobles, når der vises et højt niveau på +5V ved indgangen.
A2- Omvendt input til ekstern styring. Alarmen til-/frakobles, når et lavt GND-niveau vises ved indgangen.

A3- Konfigurerbar (+5V eller GND) udgang til styring af eksterne enheder. Når en kontrolkommando modtages, ændres værdien ved denne udgang afhængigt af, hvad der blev indstillet for en bestemt tidsperiode.

A4- SDA I2C
A5- SLC I2C
, til tilslutning af yderligere 8 sensorer.


Kontrolkommandoer til hex-firmware

Opmærksomhed! Hold dedikerede med fed skrift kan kun udføres fra hovednummeret, da de er ansvarlige for enhedskonfigurationen. Andre kommandoer kan udføres fra tal med attributten "Management".

SMS - kontrolkommandoer skelner ikke mellem store og små bogstaver:
Tilføj Telefon- Tilføj et telefonnummer. I alt kan der ikke tilføjes mere end 9 numre + 1 hovednummer, som automatisk gemmes i hukommelsen første gang du ringer til enheden efter nulstilling til fabriksindstillinger ved hjælp af kommandoer Nulstil Telefon eller Fuld nulstilling. De der. Den, der først ringede til enheden efter at have nulstillet den til fabriksindstillingerne, er "master", dette nummer indtastes i den første hukommelsescelle og kan ikke ændres eller slettes via SMS. Det er ikke muligt at tilføje to ens tal.
Eksempel på kommando:



Kommandosyntaks:

Tilføj Telefon- hold
: - afgrænsning
5 - skriv til den femte hukommelsescelle
+71234567890 - telefonnummer
Op til version GSM_2017_05_26-20-22.hex:
a - "Alarm" parameter - SMS beskeder vil blive sendt til numre med denne parameter - beskeder om alarm aktivering og beskeder om til- eller frakobling.
Fra version GSM_2017_05_26-20-22.hex:
m - "Management" parameter - alarmstyring er aktiveret
s - "SMS" parameter - en SMS besked vil blive sendt, når sensorerne udløses
r - "Ring" parameter - et taleopkald vil blive foretaget, når sensorerne udløses
p - "Power" parameter - en SMS-besked vil blive sendt, når den eksterne strøm tændes/slukkes
i - "Info" parameter - en SMS-besked vil blive sendt ved til- eller frakobling
Hvis parametrene "m", "s", "r", "p", "i" mangler, er telefonen gemt i hukommelsen, men den bruges ikke på nogen måde.


Slet Telefon- Slet telefonnummer.
Eksempel på kommando:

Kommandosyntaks:

SletTelefon - kommando
: - afgrænsning
+71234567891 - telefonnummer


Rediger Hovedtelefon- Skift parametrene "s", "r", "p", "i" på hovedtelefonen, dette nummer er gemt i den første hukommelsescelle.
Eksempel på kommando:

Kommandosyntaks:

EditMainPhone - kommando
: - afgrænsning
srpi - parametre


SaldoNum- Ændring af saldoanmodningsnummeret og behandling af længden af ​​anmodningssvaret. Standardværdi for Beeline: #100#L22.
Eksempel på kommando:

Kommandosyntaks:

BalanceNum - kommando
: - afgrænsning
#103# - saldoanmodningsnummer
L24 - Længden (len) af det videresendte svar er 24 tegn, vi afskærer spam fra saldoanmodningen.


RedigerSensor- Skift navnet på sensoren og det logiske responsniveau. Der må ikke være mere end 8 ekstra sensorer i alt. Efter ændring af parametrene skal enheden genstartes.
Eksempel på kommando:
EditSensor:1+Datchik dvizheniya v koridore#h

Kommandosyntaks:

EditSensor - kommando
: - afgrænsning
1 - skriv til den første hukommelsescelle
+ - separator
Datchik dvizheniya v koridore - navnet på sensoren må ikke overstige 36 tegn, inklusive mellemrum.
#h - Tegn på et højt logisk niveau fra sensoren, ved modtagelse af hvilket en alarm vil blive udløst. Hvis "#h" mangler, vil alarmen blive udløst, når et lavt logisk niveau modtages fra sensoren.


Sengetid- Det tidspunkt, hvor alarmen går i dvale, når du modtager en SMS - "Pause" kommandoen, vises i minutter. Standardværdi: 15, må ikke være mindre end 1 eller mere end 60.
Eksempel på kommando:

Kommandosyntaks:

SleepTime - kommando
: - afgrænsning
20 - 20 minutters "søvn".


AlarmPinTime- Den tid, hvor alarm/omvendt pin er tændt/slukket, vises i sekunder. Standardværdi: 60, må ikke være mindre end 1 sekund og mere end 43200 sekunder (12 timer).
Eksempel på kommando:

Kommandosyntaks:

AlarmPinTime - kommando
: - afgrænsning
30 - 30 sekunder for at tænde/slukke for alarmstiften.


DelayBeforeGuard- Tid før tilkobling af enheden, efter modtagelse af den tilsvarende kommando.
Eksempel på kommando:

Kommandosyntaks:

DelayBeforeGuard - kommando
: - afgrænsning
25 - 25 sekunder før tilkobling


Forsinket før alarm- Det tidspunkt, hvorefter en "alarm" SMS-besked vil blive sendt, hvis alarmen ikke er blevet deaktiveret i denne periode. Erstattet af udvidede kommandoer fra version GSM_2017_08_10-12-17.hex
Eksempel på kommando:

Kommandosyntaks:

DelayBeforeAlarm - kommando
: - afgrænsning
40 - 40 sekunder, før du sender en "alarm"-meddelelse


WatchPowerTime- Tid i minutter, hvorefter en SMS-besked vil blive sendt, der angiver, at den eksterne strømkilde er slukket. Hvis ekstern strøm genoprettes, før den indstillede tid er udløbet, sendes beskeden ikke.
Eksempel på kommando:

Kommandosyntaks:

WatchPowerTime - kommando
: - afgrænsning
5 - 5 minutter før afsendelse af SMS-besked


Ringetid- Varigheden af ​​et alarmerende taleopkald, parameteren kan have en værdi fra 10 til 255 sekunder.
Eksempel på kommando:

Kommandosyntaks:

Ringetid - kommando
: - afgrænsning
40 - 40 vil opkaldets varighed være 40 sekunder, hvorefter næste abonnent ringes op.


ModemID- Tvunget installation af modellen af ​​det anvendte modem. Mulige værdier: 0 - modem auto-detektion, 1 - M590, 2 - SIM800l, 3 - A6_Mini.
Eksempel på kommando:

Kommandosyntaks:

ModemID - kommando
: - afgrænsning
2 - Modem ID.


ExtDeviceTime- Antallet af sekunder, hvormed signalniveauet ved kontroludgangen på den eksterne enhed vil ændre sig.
Eksempel på kommando:

Kommandosyntaks:

ExtDeviceTime- kommando
: - afgrænsning
5-5 sekunder


ExtDeviceLevelLow- Den eksterne enhed, der er tilsluttet udgang A3, styres af et lavt signalniveau (GND). Udgangen vil som standard være på et højt niveau på +5V, indtil der modtages en kontrolkommando fra en ekstern enhed
ExtDeviceLevelHigh- En ekstern enhed tilsluttet udgang A3 styres af et højt signalniveau (+5V). Udgangen vil som standard være GND lav, indtil en ekstern enhedskontrolkommando modtages.

NulstilSensor- nulstil portudvidelsessensorer

Nulstil Konfig- nulstil indstillinger til fabriksindstillinger

Nulstil Telefon- sletning af alt fra hukommelsen telefonnumre

Fuld nulstilling- nulstil indstillinger, slet alle telefonnumre fra hukommelsen, gendan standardværdien for kommandoen BalanceNum.

RingOn- aktiver meddelelse ved at ringe til "hoved"-nummeret, der er registreret i den første hukommelsescelle, når sensoren udløses. Fjernet fra version GSM_2017_06_11-00-07.hex
Ring Off- sluk for meddelelsen ved at ringe, når sensoren udløses. Fjernet fra version GSM_2017_06_11-00-07.hex

SmsOn- aktiver SMS-besked, når sensoren udløses. Fjernet fra version GSM_2017_08_10-12-17.hex
SmsOff- slå SMS-besked fra, når sensoren udløses. Fjernet fra version GSM_2017_08_10-12-17.hex

PIROn- muliggør bevægelsessensorbehandling
PIROff- deaktiver bevægelsessensorbehandling

ReedSwitchOn- muliggør behandling af den primære reed-sensor
ReedSwitchOff- sluk for behandlingen af ​​den primære reed-sensor

WatchPowerOn- aktiver ekstern strømstyring, en SMS-besked om at slukke for den eksterne strøm vil blive sendt, forudsat at alarmsystemet er tilkoblet. Fjernet fra version GSM_2017_03_01-23-37.

WatchPowerOn1- aktiver ekstern strømstyring, en SMS-besked om at slukke for den eksterne strøm vil blive sendt, forudsat at alarmsystemet er tilkoblet.
WatchPowerOn2- aktiver ekstern strømstyring, en SMS-besked om at slukke for den eksterne strøm vil under alle omstændigheder blive sendt

WatchPowerOff- Sluk for ekstern strømstyring

GuardButtonOn- alarmstyring af eksterne enheder eller knap er aktiveret. Fjernet fra version GSM_2017_04_16-12-00.
Guard ButtonOn1- funktion indstilling eller fjernelse beskyttelse af eksterne enheder eller knap er aktiveret
Guard ButtonOn2- funktion kun produktioner tilkoblet af eksterne enheder, eller knappen er tændt; frakobling sker ved at ringe til enheden eller bruge en SMS-kommando.
GuardButtonOff- alarmkontrol af eksterne enheder eller knap er deaktiveret

PCForceOn- konstant overvågning af en gruppe af alle udvidelsesmodulsensorer
PCFForceOff- kun overvågning af en gruppe af alle udvidelsesmodulsensorer, når enheden er tilkoblet

Hovedsensorniveau Høj- en alarmmeddelelse vil blive sendt, når et højt niveau signal (+5 V) vises ved indgangen (D6) fra sensoren
MainSensorLevelLow- en alarmmeddelelse vil blive sendt, når et lavniveausignal (GND) vises ved indgangen (D6) fra sensoren
MainSensorLevelOff- sensorindgangsbehandling (D6) er deaktiveret

SecondSensorLevelHøj- en alarmmeddelelse vil blive sendt, når et højt niveau signal (+5 V) vises ved indgangen (A0) fra sensoren
SecondSensorLevelLow- en alarmmeddelelse vil blive sendt, når et lavniveausignal (GND) vises ved indgangen (A0) fra sensoren
SecondSensorLevelOff- behandling af sensorindgangen (A0) er deaktiveret

MainDelayBeforeAlarm- tid, hvorefter en "alarm" SMS-besked vil blive sendt, når hovedsensoren (D6) udløses, hvis alarmen ikke er blevet frakoblet i denne periode. Syntaksen er den samme som kommandoen DelayBeforeAlarm.
SecondDelayBeforeAlarm- tid, hvorefter en "alarm" SMS-besked vil blive sendt, når en ekstra sensor (A0) udløses, hvis alarmen ikke er blevet frakoblet i denne periode. Syntaksen er den samme som kommandoen DelayBeforeAlarm.
PCFDelayBeforeAlarm- det tidspunkt, hvorefter en "alarm" SMS-besked vil blive sendt, når udvidelseskortsensorerne (PCF8574) udløses, hvis alarmen ikke er blevet frakoblet i denne periode. Syntaksen er den samme som kommandoen DelayBeforeAlarm.

GuardOn - arm
GuardOff - fjern afskærmning

Åbn - ekstern enhedskontrolkommando

Info - tjek status, som svar på denne besked vil der blive sendt en SMS med information om hvilket nummer sikkerheden blev slået til/fra

Pause - pauser systemet i den tid, der er indstillet af sleeptime-kommandoen i minutter; systemet reagerer ikke på sensorudløsere.

TestOn - testtilstand er slået til, den blå LED blinker.
TestOff - testtilstand er slået fra.

LedOff - slukker standby-LED'en.
LedOn - tænder standby-LED'en.

Penge - saldo anmodning.

ClearSms - Slet alle sms'er fra hukommelsen

Konsolkommandoer (op til version GSM_2017_04_24-13-22.hex) - indtastet i Arduino IDE-portmonitoren:

AddPhone - svarende til AddPhone-sms-kommandoen

DeletePhone - svarende til SletPhone sms-kommandoen

EditSensor - svarende til EditSensor sms-kommandoen

ListPhone - output til portmonitoren en liste over telefoner gemt i hukommelsen

ResetConfig - svarende til ResetConfig sms-kommandoen

ResetPhone - svarende til ResetPhone sms-kommandoen

FullReset - svarende til FullReset sms-kommandoen

ClearSms - svarende til ClearSms sms-kommandoen

WatchPowerOn1 - svarende til WatchPowerOn1 sms-kommandoen
WatchPowerOn2 - svarende til WatchPowerOn2 sms-kommandoen
WatchPowerOff - svarende til WatchPowerOff sms-kommandoen

GuardButtonOn - svarende til GuardButtonOn sms-kommandoen. Fjernet fra version GSM_2017_04_16-12-00
GuardButtonOn1 - ligner GuardButtonOn1 sms-kommandoen
GuardButtonOn2 - ligner GuardButtonOn2 sms-kommandoen
GuardButtonOff - ligner GuardButtonOff sms-kommandoen

Memtest - test af enhedens ikke-flygtige hukommelse; alle enhedsindstillinger nulstilles, svarende til FullReset-kommandoen.

I2CScan - søg og initialiser understøttede enheder på I2C-bussen.

ListConfig - viser den aktuelle enhedskonfiguration til portmonitoren.

ListSensor - output til portmonitoren for den aktuelle sensorkonfiguration.

UPD. Ved brug af en bevægelsessensor, for at undgå falske positiver under modemdrift, er det nødvendigt mellem stifter GND Og A0 Arduino gøre modstand, tak kammerat
AllowPhone = ("70001234501", "70001234502", "70001234503", "70001234504", "70001234505") - Numre, der har tilladelse til at administrere sikkerhed.
AlarmPhone = ("70001234501", "70001234502") - Numre til afsendelse af SMS-beskeder, når sensoren udløses, og meddelelser om frakobling eller tilkobling. Det første nummer på listen vil blive kaldt, når sensoren udløses, hvis RingOn-kommandoen udføres; som standard er denne mulighed aktiveret. Dette gøres, fordi SMS-beskeder kan ankomme med en vis forsinkelse, men opkaldet bør gå igennem med det samme.

Hvis der modtages et opkald fra et autoriseret nummer eller en SMS-besked med GuardOn/GuardOff-kommandoen, vil der, afhængigt af den aktuelle sikkerhedsstatus, blive sendt en SMS-besked om til- eller frakobling til de numre, der er angivet i AlarmPhone-arrayet, og en SMS-besked vil også blive sendt til det nummer, som opkaldet kom fra.

Når sensoren udløses SMS-beskeder sendes til alle numre fra AlarmPhone-arrayet (listen), og der foretages et taleopkald til det første nummer fra dette array.

Lysindikation:
LED'en lyser rødt - den er tilkoblet.
LED'en lyser grønt - frakoblet, tændt/slukket med SMS-kommando LedOn/LedOff.
LED'en blinker konstant blåt - det signalerer, at alt er i orden med Arduino, kortet er ikke frosset, det bruges udelukkende til fejlretning, det tændes/slukkes af TestOn/TestOff SMS-kommandoen.
* Koden indeholder LedTest()-funktionen, den blinker med en blå LED, den er kun lavet til at overvåge Arduino, blinker - det betyder, at den virker, blinker ikke - den er frosset. Har ikke lagt på endnu :)

Ikke relevant!

Tilslutning af 2 eller flere sensorer til åben firmware (gælder kun denne firmware sketch_02_12_2016.ino)
For at tilslutte yderligere reed-sensorer bruger vi gratis digitale ben D2, D3, D5 eller D7. Tilslutningsdiagram med ekstra sensor på D7.

Nødvendige ændringer i firmware
... #define DoorPin 6 // Indgangsnummer forbundet til hovedsensoren int8_t DoorState = 0; // Variabel til lagring af hovedsensorens tilstand int8_t DoorFlag = 1; // Variabel til lagring af hovedsensorens tilstand #define BackDoorPin 7 // Indgangsnummer forbundet til den ekstra sensor int8_t BackDoorState = 0; // Variabel til lagring af den ekstra sensors tilstand int8_t BackDoorFlag = 1; // Variabel for at gemme tilstanden for den ekstra sensor...
void setup() ( ... pinMode(DoorPin, INPUT); pinMode(BackDoorPin, INPUT); ...
... void Detect() ( // Læs værdier fra sensorer DoorState = digitalRead(DoorPin); BackDoorState = digitalRead(BackDoorPin); // Behandler hovedsensoren hvis (DoorState == LOW && DoorFlag == 0) ( DoorFlag = 1; delay(100); if (LedOn == 1) digitalWrite(GLed, LOW); Alarm(); ) if (DoorState == HIGH && DoorFlag == 1)( DoorFlag = 0; delay(100); ) //Behandler yderligere sensor if (BackDoorState == LOW && BackDoorFlag == 0) ( BackDoorFlag = 1; delay(100); if (LedOn == 1) digitalWrite(GLed, LOW); Alarm(); ) if (BackDoorState = = HIGH && BackDoorFlag == 1)( BackDoorFlag = 0; delay(100); ) ) ...

Og en ting mere:
1. Det er bedre at bruge dioder, der er normeret til en strøm på 2 A, da modulet har en strøm på 1 A, og vi stadig mangler at forsyne Arduinoen og modemet med noget. Denne instans bruger 1N4007 dioder; hvis de fejler, skal du erstatte dem med 2 A.
2. Jeg brugte alle modstande til LED'en på 20 kOhm, for ikke at oplyse hele korridoren om natten.
3. Jeg anbragte også en 20 kOhm-modstand på reed-sensoren mellem GND-stiften og D6-stiften.

Det er alt for nu. Tak for din opmærksomhed! :)

Jeg planlægger at købe +207 Tilføj til favoritter Jeg kunne godt lide anmeldelsen +112 +243

Goddag :) I dag taler vi om alarmer. Servicemarkedet er fyldt med virksomheder og organisationer, der installerer og vedligeholder sikkerhedssystemer. Disse virksomheder tilbyder køberen bredt vælge alarm. Men deres omkostninger er langt fra billige. Men hvad skal en person gøre, der ikke har mange personlige midler at bruge på en sikkerhedsalarm? Jeg synes, konklusionen tyder på sig selv - gør alarm deres hænder. Denne artikel giver et eksempel på, hvordan du kan lave dit eget kodede sikkerhedssystem ved hjælp af et Arduino uno-kort og flere magnetiske sensorer.

Systemet kan deaktiveres ved at indtaste adgangskoden fra tastaturet og trykke på knappen ' * ’. Hvis du vil ændre den nuværende adgangskode, kan du gøre dette ved at trykke på '-tasten B’, og hvis du vil springe over eller afbryde handlingen, kan du gøre dette ved at trykke på tasten ‘#’. Systemet har en buzzer til at afspille forskellige lyde, når du udfører en bestemt handling.

Systemet aktiveres ved at trykke på 'A'-knappen. Systemet giver 10 sekunder til at forlade rummet. Efter 10 sekunder vil alarmen blive aktiveret. Antallet af magnetiske sensorer vil afhænge af dit eget ønske. Projektet involverer 3 sensorer (til to vinduer og en dør). Når vinduet åbnes, aktiveres systemet, og alarmsignalet, der kommer fra summeren, aktiveres. Systemet kan deaktiveres ved at indtaste en adgangskode. Når døren åbnes, giver alarmen den der kommer ind 20 sekunder til at indtaste adgangskoden. Systemet bruger ultralydssensor, som kan registrere bevægelse.

Video af enhedens drift

Håndværk Lavet til informations-/uddannelsesformål. Hvis du vil bruge det derhjemme, skal du ændre det. Indkap kontrolenheden i en metalkasse og beskyt strømledningen mod mulig beskadigelse.

Lad os begynde!

Trin 1: Hvad skal vi bruge?

  • Arduino uno bord;
  • LCD-skærm med høj kontrast 16×2;
  • tastatur 4x4;
  • 10~20kΩ potentiometer;
  • 3 magnetiske sensorer (aka reed switche);
  • 3 2-benede skrueterminaler;
  • HC-SR04 ultralydssensor;

Hvis du vil bygge et system uden at bruge Arduino, skal du også bruge følgende:

  • DIP-stik til atmega328 + mikrocontroller atmega328;
  • 16MHz kvartsresonator;
  • 2 stk. 22pF keramik, 2 stk. 0,22uF elektrolytisk kondensator;
  • 1 PC. 10kOhm modstand;
  • DC strømstik;
  • brød bord;
  • 5V strømforsyning;

Og en kasse til at pakke det hele i!

Værktøjer:

  • Noget at skære en plastikkasse med;
  • Varm limpistol;
  • Bore-/skruetrækker.

Trin 2: Alarmkredsløb

Tilslutningsdiagrammet er ret simpelt.

Lille afklaring:

LCD med høj kontrast:

  • Pin1 - Vdd til GND;
  • Pin2 - Vss til 5V;
  • Pin3 - Vo (til den centrale terminal af potentiometeret);
  • Pin4 - RS til Arduino pin 8;
  • Pin5 - RW til GND;
  • Pin6 - EN til Arduino pin 7;
  • Pin11 - D4 til Arduino pin 6;
  • Pin12 - D5 til Arduino pin 5;
  • Pin13 - D6 til Arduino pin 4;
  • Pin14 - D7 til Arduino pin 3;
  • Pin15 - Vee (til højre eller venstre terminal af potentiometeret).

Tastatur 4x4:

Fra venstre mod højre:

  • Pin1 til A5 Arduino pin;
  • Pin2 til A4 pin af Arduino;
  • Pin3 til A3 pin af Arduino;
  • Pin4 til A2 pin af Arduino;
  • Pin5 til Arduino pin 13;
  • Pin6 til Arduino pin 12;
  • Pin7 til Arduino pin 11;
  • Pin8 til Arduino pin 10.

Trin 3: Firmware

Trinet præsenterer koden, der bruges af den indbyggede !

Download kodebender-plugin. Klik på "Kør"-knappen i Arduino og flash dit board med dette program. Det er alt. Du har lige programmeret din Arduino! Hvis du vil foretage ændringer i koden, skal du klikke på knappen "Rediger".

Bemærk: Hvis du ikke vil bruge Codebender IDE til at programmere dit Arduino-kort, skal du installere yderligere biblioteker i Arduino IDE.

Trin 4: Lav dit eget styrekort

Efter vellykket samlet og testet nyt projekt baseret på Arduino uno, kan du begynde at lave dit eget board.

Et par tips til mere vellykket afslutning tilsagn:

  • En 10kOhm modstand skal monteres mellem ben 1 (nulstil) og ben 7 (Vcc) på Atmega328 mikrocontrolleren.
  • 16MHz krystallen skal forbindes til ben 9 og 10, mærket XTAL1 og XTAL2
  • Tilslut hver ledning af resonatoren med 22pF kondensatorer. Tilslut de ledige kondensatorledninger til pin 8 (GND) på mikrocontrolleren.
  • Glem ikke at tilslutte den anden ATmega328-strømledning til strømforsyningen, ben 20-Vcc og 22-GND.
  • Yderligere oplysninger om mikrocontrollerstifterne kan findes på det andet billede.
  • Hvis du planlægger at bruge en strømforsyning med en spænding højere end 6V, skal du bruge en LM7805 lineær regulator og to 0,22uF elektrolytiske kondensatorer, som skal monteres ved regulatorens indgang og udgang. Det er vigtigt! Tilfør ikke mere end 6V til tavlen!!! Ellers vil du brænde din Atmega mikrocontroller og LCD-skærm ud.

Trin 5: Placer kredsløbet i etuiet

Foråret er som bekendt ledsaget af alle mulige forværringer, og nu er den største "forværring" kravlet ud af sine huller på gaden for at tilegne sig det, der ikke hører til. Det betyder, at emnet beskyttelse af din ejendom bliver mere relevant end nogensinde.
Siden har allerede flere anmeldelser af hjemmelavede. De er selvfølgelig funktionelle, men det har alle generelle træk- afhængighed af stikkontakten. Hvis dette ikke er et problem med en ejendom, hvor der allerede er leveret strøm, hvad så med en ejendom, hvor stikkontakten er langt væk, eller hvor det omkringliggende område er helt strømløst? Jeg besluttede at tage en anden vej - at samle en langtidsholdbar enhed, der er så enkel som muligt og uafhængig af lysnettet, som vil sove hele tiden, og når røvere bryder ind, vil den starte op og ringe til ejerens telefon, signalering med et simpelt alarmopkald.

Gennemgå varer

Købt:
1. Brødbræt enkeltsidet 5x7 cm: getinaks- eller glasfiber
* - glasfiber er meget bedre kvalitet end getinax.
2. Neoway M590 modul - med antenne på printkort -
3. Arduino Pro Mini "RobotDyn" ATmega168PA 8MHz 3.3V -
4. Lithium ladnings-afladnings kontrolkort -

Udvundet fra civilisationens ruiner:
1. Stativ til brædder, skåret fra apparathuse - 6 stk.
2. Fladt lithium batteri 1300mAh
3. Hæfteklammer bruges til at fastgøre kablet til væggen
4. Viskelæder for papirvarer
5. Kobbertråd 1,5 mm tyk
6. Instrumenthus fra det lokale radiomarked - 1.5$
7. Par LED'er anden farve(taget fra VHS-afspiller)
8. Antenne og knap med hætte (taget fra Wi-Fi-router)
9. 4-benet klemrække (taget fra lysdæmperen)
10. Strømstik (taget fra en gammel oplader til 18650)
11. 6-benet stik (taget fra dvd-drev)
12. Kan(fra kaffe for eksempel)

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

Specifikationer:
Mikrocontroller: ATmega168PA
Direkte driftsspænding:,8 - 5,5 V
Driftsspænding gennem stabilisator LE33: 3,3 V eller 5 V (afhængigt af model)
Arbejdstemperatur:-40°C...105°C
Indgangsspænding: 3,35-12V (3,3V-model) eller 5-12V (5V-model)
Digitale ind-/udgange: 14 (hvoraf 6 kan bruges som PWM-udgange: 3, 5, 6, 9, 10 og 11)
Analoge indgange: 6
Timer-tællere: to 8-bit og en 16-bit
Energibesparende tilstande: 6
DC strøm via input/output: 40 mA
Glimtvis erindring: 16 KB (2 brugt til bootloader)
VÆDDER: 1 KB
EEPROM: 512 bytes
Hukommelsesoptagelse/sletningsressource: 10.000 Flash/100.000 EEPROM
Urfrekvens: 8 MHz (3,3 V-model) eller 16 MHz (5 V-model)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) og A5 (SCL)
UART TTL: 0 (RX) og 1 (TX)
Datablad:

Valget faldt på denne atmega helt ved et uheld. På et forum, hvor energieffektive projekter blev diskuteret, var der i kommentarerne råd til at bruge den 168. atmega.
Jeg var dog nødt til at pille for at finde sådan et bræt, da alle partierne ofte var fyldt med 328 atmeg ved en frekvens på 16 MHz, opererende fra 5V. For mit projekt var sådanne egenskaber overflødige og ubelejlige fra begyndelsen, og søgningen blev mere kompliceret.
Som et resultat faldt jeg over en 3,3-volt version af Pro Mini på Atmega 168PA på eBay, og ikke bare en simpel kinesisk, men under RobotDyn-mærket fra en russisk udvikler. Ja, til at begynde med var jeg ligesom dig også i tvivl. Men forgæves. Da projektet allerede var samlet, og AliExpress introducerede obligatorisk betalt levering for billige varer (hvorefter pakker begyndte at gå tabt meget oftere), bestilte jeg senere en almindelig Pro Mini Atmega168 (uden PA) 3,3V 8MHz. Jeg eksperimenterede lidt med strømbesparende tilstande med begge boards, og blinkede en speciel skitse ind i hver, der satte mikrocontrolleren i maksimal strømsparetilstand, og dette er, hvad der kom ud:
1) Arduino Pro Mini "RobotDyn": ~250µA
2) Arduino Pro Mini "NoName": når strømforsyningen til spændingsstabilisatoren (RAW pin) og LED'en er loddet, er strømforbruget ~3,92mA




- som du forstår, er forskellen i energiforbrug næsten 16 gange, alt sammen fordi NoNames Pro Mini bruger en Atmega168+ kombination, som MK'en selv kun spiser af 20uA strøm (jeg tjekkede dette separat), alt det øvrige frådseri står for AMS1117 lineær spændingsomformer - dataarket bekræfter kun dette:


I tilfældet med boardet fra RobotDyn er kombinationen noget anderledes - det er Atmega168PA+ - her bruges en anden LDO stabilisator, hvis egenskaber med hensyn til energibesparelse viste sig at være mere behagelige:


Jeg afloddede det ikke, så jeg kan ikke sige, hvor meget strøm Atmega168PA forbruger i sin rene form. I dette tilfælde fik jeg nok ~250µA når den drives af et Nokia-lithium-batteri. Men hvis du aflodder AMS1117 fra NoName" bundkortet, så bruger den almindelige ATmega168 i sin rene form, som jeg sagde ovenfor, 20uA.
LED'er med strømforsyning kan slås af med noget skarpt. Det er ikke et problem. Stabilisatoren blev afloddet med en hårtørrer. Det er dog ikke alle, der har en hårtørrer og evnerne til at arbejde med den, så begge ovenstående muligheder har ret til at eksistere.

Neoway M590E modul

Specifikationer:
Frekvenser: EGSM900/DCS1800 Dual-band eller GSM850/1900 eller Quad-band
Følsomhed:-107dBm
Maksimal effekt smitte: EGSM900 Class4(2W), DCS1800 Class1(1W)
Spidsstrøm: 2A
Arbejdsstrøm: 210mA
Søvnstrøm: 2,5mA
Arbejdstemperatur:-40°C... +85°C
Driftsspænding: 3,3V…4,5V (anbefalet 3,9V)
Protokoller: GSM/GPRS Phase2/2+, TCP/IP, FTP, UDP osv.
Internet: GPRS KLASSE 10
Datablad:

Det billigste GSM-modul, der kan findes på markedet, normalt brugt, loddet ikke altid af dygtige med kinesiske hænder fra udstyr. Hvorfor ikke altid fingernem? Ja, alt sammen på grund af aflodning med en hårtørrer - ofte modtager folk disse moduler med forkortet plus og minus, hvilket er en af ​​årsagerne til deres ubrugelighed. Derfor er det første skridt at kontrollere strømkontakterne for en kortslutning.

Bemærk. Jeg vil gerne bemærke en særskilt vigtig pointe, efter min mening, at disse moduler kan komme med et rundt koaksialstik til antennen, som giver dig mulighed for separat at bestille en mere seriøs antenne og tilslutte den til modulet uden at danse med en tamburin. Eller de kan komme uden dette stik. Dette er, hvis vi taler om de billigste sæt. Hvis du ikke vil stole på en lykkelig ulykke, så er der lidt dyrere sæt, hvor dette stik er til stede + sættet inkluderer en ekstern antenne på et textolite-kort.

Dette modul er også lunefuldt, når det kommer til strømforsyning, da det ved spidsbelastning forbruger op til 2A strøm, og dioden inkluderet i sættet ser ud til at være designet til at sænke spændingen fra 5V (hvorfor står der 5V på selve printkortet ) til 4,2V, men at dømme efter Ifølge folks klager skaber det mere ballade, end det er værd.
Lad os sige, at du allerede har samlet dette modul, og i stedet for en diode er en jumper loddet ind, da vi ikke skal levere 5V spænding til det, men vil drive det direkte fra et lithiumbatteri, hvilket er inden for grænserne tilladte belastninger 3,3-4,2V.
Det vil være nødvendigt på en eller anden måde at forbinde den til computeren og tjekke for funktionalitet. I dette tilfælde er det bedre at købe en til dig selv på forhånd - gennem den kommunikerer vi med modulet og Arduino-kortene via UART-seriegrænsefladen (USART).
Forbindelsen er vist nedenfor på billedet (jeg tegnede det så godt jeg kan):
TX modem >>> RX konverter
RX modem<<< TX конвертера
Batteri plus - Modem plus
Det negative af lithiumbatteriet er kombineret med modemets GND og konverterens GND
For at starte modemmet skal du anvende BOOT-stiften gennem en 4,7 kOhm modstand til GND


Kør i mellemtiden programmet på din computer. Vær opmærksom på indstillingerne:
1) Vælg den COM-port, som TTL-konverteren er tilsluttet, i mit tilfælde er det COM4, ​​din kan være anderledes.
2) Vælg dataoverførselshastigheden. (Der er en nuance her, fordi selve modulerne kan konfigureres til forskellige hastigheder, oftest 9600 baud eller 115200 baud. Her skal du vælge det empirisk, vælge noget hastighed, forbinde og sende AT-kommandoen, hvis revnerne kommer som svar, så vil den afbryde forbindelsen, vælge en anden hastighed og gentage kommandoen, og så videre, indtil svaret er OK).
3) Vælg pakkelængden (i dette tilfælde 8 bit), paritetsbit deaktiveret (ingen), stopbit (1).
4) Sørg for at markere boksen +CR, og så vil der automatisk blive tilføjet et vognreturtegn til hver kommando, vi sender til modulet til sidst - modulet forstår kun kommandoer med dette tegn i slutningen.
5) Forbindelse, alt er klart her, klik og vi kan arbejde med modulet.

Hvis du klikker på "Connection" og derefter starter modulet ved at anvende BOOT gennem en 4,7K modstand til jord, så vil terminalen først vise inskriptionen "MODEM:STARTUP", derefter, efter et stykke tid, inskriptionen "+PBREADY", hvilket betyder, at telefonnummeret er blevet læst bog, selvom det kan være tomt:

Under denne spoiler er AT-kommandoer med eksempler

Vi udskriver AT-kommandoen - som svar sender modulet os vores kommando, da ekkotilstanden er aktiveret, og OK:

Lad os tjekke modemets status med kommandoen AT+CPAS - svaret er igen vores kommando, +CPAS: 0 og OK.
0 betyder, at modulet er klar til drift, men afhængigt af situationen kan der være andre numre, for eksempel 3 – indgående opkald, 4 – i forbindelsestilstand, 5 – dvaletilstand. Jeg kunne ikke finde nogen information om 1 og 2.

Ændring af dataoverførselshastigheden via UART sker med kommandoen AT+IPR=9600 - dette er hvis du har brug for en hastighed på 9600. Hvis noget andet, som f.eks. AT+IPR=19200, eller AT+IPR=115200.

Lad os tjekke netværkssignalet. AT+CSQ, svaret kommer +CSQ: 22.1 - værdien før decimaltegnet har et interval på 0... 31 (115... 52 dBl) - dette er signalniveauet, jo højere jo bedre. Men 99 betyder dets fravær. Værdien efter decimaltegnet er signalkvaliteten 0...7 - her er det omvendt, jo lavere tal, jo bedre.

Lad os deaktivere ekkotilstand ved at sende ATE0-kommandoen, så duplikerede kommandoer ikke forstyrrer. Denne tilstand aktiveres igen ved hjælp af ATE1-kommandoen.

Se firmwareversion AT+GETVERS



Disse og mange andre kommandoer kan ses

Justering af brædder

Hvis det ikke er svært at lodde Pro Mini til et brødbræt, så er situationen med GSM-modulet noget mere kompliceret, fordi dens kontaktkam er kun placeret på den ene side, og hvis du kun lodder den, så hænger den anden side af brættet simpelthen i luften. Så igen måtte jeg bore yderligere 3 huller med øjet nær de tre hjørner på brættet. Områderne omkring hvert af hullerne blev derefter maskeret af. For nemheds skyld placerede jeg de afbrudte ledninger fra kammen på et loddefrit brødbræt (hvidt) og installerede GSM-modulkortet på dem og loddede dem normalt:

Senere måtte jeg lave endnu et hul, i mit tilfælde på bogstavet "I", hvor der står "Made In China", fra kanten af ​​brættet.


Det viste sig, at den tilføjede kontakt, som i det væsentlige er GND, blev placeret ved siden af ​​GND på Pro Mini-kortet, og dermed blev det muligt at forbinde jorden på GSM-modulet og Pro Mini med en dråbe lodning (den lange stift i midten og Pro Mini stiften til højre for den) - jeg markerede dem med pile. Den blev selvfølgelig lidt skæv, men nu holder den sikkert:



Der var lidt plads tilbage mellem pladerne - i det placerede jeg et lithium-udladnings-ladningskontrolkort med et forloddet microUSB-stik og loddede ledninger.

Tørklædet sidder meget tæt derind, og lyset fra LED'erne på siden vil være tydeligt synligt gennem et lille hul i kabinettet.



Kortholdere

For at kunne montere brættet sikkert inde i kabinettet, måtte jeg bruge et par dage på at tænke på, hvordan dette kunne implementeres. Muligheden med smeltelim blev ikke overvejet af flere grunde - det kunne falde af, blive deformeret, og vigtigst af alt ville strukturen være svær at adskille.
Jeg kom til den konklusion, at den enkleste og mest korrekte mulighed her ville være at bruge stativer, hvilket jeg naturligvis ikke havde. Der var dog et par ikke-fungerende opladere, hvorfra det ene langt stativ med gevind til selvskærende skruer var skåret ud. Hvert stativ blev savet i to og filet ned til ca. 9,5 mm - det er i denne højde, at batteriet placeret under brættet har en tilstrækkelig margin på ca. ikke røre det, og så det er muligt at sætte et stykke mellem dem skum til fiksering.
Med hensyn til fastgørelse af brættet direkte til sagen, skar jeg her fire strimler fra en kaffedåse, borede et hul i enderne af, og fastgjorde dem derefter på de samme skruer, som er skruet ind i stativerne. Se på billedet nedenfor, hvordan det ser ud.
Næste trin er at skrue et par stativer på den anden side af brættet, det vil sige ovenpå, så når kabinettet er lukket, hviler dækslet lidt på disse stativer, hvilket skaber yderligere fiksering. Lidt senere stødte jeg til dette formål på et hus fra en sovjetisk propagandaradio (hvis det var blevet fundet tidligere, havde jeg taget alle stande herfra), hvor jeg fandt et par mere eller mindre passende højder, men først borede jeg dem i midten med en boremaskine under selvskærende skruer Så savede jeg dem af og afsluttede dem også med en fil, og fjernede det overskydende. Her kom jeg frem til en finesse - på billedet kan du se, at det ene hvide stativ er skruet fast til getinaks-brættet fra kanten, og det andet hvide er skruet direkte til modulkortet, fordi fra den ene kant dækker modemkortet fuldstændigt bundkortet, og fra den modsatte kant - tværtimod - kigger det nederste allerede ud. Samtidig skulle der bores yderligere huller i begge brædder, så skruehovederne kunne passere frit.
Og endelig er det stadig at sikre, at brættet altid er parallelt med kroppen - hæfteklammerne, der bruges til at fastgøre ledninger og kabler på væggen, er perfekte til denne opgave; Jeg har tidligere fjernet neglene fra dem. Beslagene klæber godt til brættet med den konkave side uden yderligere enheder, det eneste er til højre for SIM-kortet, bredden af ​​beslaget viste sig at være for stor, og jeg var også nødt til at slibe den.
Alle detaljer blev justeret med øjet og eksperimentelt, nedenfor er et billede af alle ovenstående:



Stik. LED'er. Knap.

Da jeg løb tør for kam, var jeg nødt til at fjerne det 6-benede stik fra DVD-drevkortet, som jeg derefter loddede fast til Pro Mini, dette er for bekvemmeligheden ved at flashe kortet. I nærheden loddede jeg et rundt stik (Nokiev 3,5 mm) til opladning af lithium.

Kroppen af ​​det 6-benede stik var en smule færdig med en fil, fordi dens kanter stak lidt ud over kroppen. Opladningsstikket passer perfekt mod væggen i etuiet.

På den anden side af kortet loddede jeg en knap for at genstarte enheden og to LED'er til fejlretning af firmwaren - den røde LED er forbundet til GSM-modulet, den anden grønne LED er forbundet til den 10. ben på Pro Mini - det er nemmere for mig at fejlfinde programmet.

Batterimodifikation

Det flade Nokia-batteri fra Nokia-telefoner er ikke mindre udbredt end 18650, men mange nægter simpelthen at bruge det på grund af ulejligheden ved at forbinde kontakterne, som er forsænket dybt i selve batteriet. Det er uønsket at lodde dem, så det blev besluttet at bruge metoden foreslået af disse, nemlig at lave en kontaktblok selv fra et kontor viskelæder og kobbertråd (1,5 mm tykt).
Først gennemborede jeg et stykke viskelæder med to ledninger med forstrippede ender og justerede dem til batterikontakterne, så afstanden mellem dem faldt sammen,
Jeg bøjede enderne, fortinnede dem med et loddekolbe og trak dem lidt tilbage i de lange ender, så de resulterende kontakter blev forsænket i viskelæderet.



Prøver på et batteri:

Du kan sikre kontaktblokken med et gummibånd eller vikle den med blåt elektrisk tape, hvilket jeg gjorde til sidst.

Montage.

Hoveddelen af ​​arbejdet er udført, det eneste, der er tilbage, er at samle og optage det.
Jeg lagde et stykke skumgummi mellem batteriet og brættet, så det ikke skulle bevæge sig inde i kabinettet senere. Jeg loddede desuden en 2200 µF kondensator for at drive modulet.

Når opladning er tilsluttet:

Ramme. Ekstern klemrække.

Etuiet var tilgængeligt på det lokale radiomarked for omkring $1,5, hvis det blev omregnet til dollars, målende 95x60x25 mm, næsten på størrelse med en pakke cigaretter. Jeg borede flere huller i den. Først til den 4-benede klemrække, taget fra en ikke-fungerende lysdæmper.
Jeg befriede de to ydre kontakter helt fra boltene med afstandsstykker, borede huller til længere bolte, som skal holde hele klemrækken på kroppen. På selve kabinettet vil de to ydre huller selvfølgelig være store, og de to i midten vil være mindre - de vil have kontakter gevind igennem dem, hvoraf den ene er forbundet til VCC Pro Mini, og den anden kontakt til pinden 2.

Boring af huller, selvom det er en simpel opgave ved første øjekast, er stadig ikke mindre arbejdskrævende, det er meget nemt at gå glip af, så jeg gjorde det først med et bor med en mindre diameter, derefter med en større.

Til taktknappen valgte jeg en kasket med en let konkav top, så den ville være nem at nå med en tændstik eller papirclips gennem det smalle hul i etuiet.

Kort i etui med tilsluttet USB-TTL-konverterkabel:

Om antennen.
Antennen, som du måske har bemærket gennem hele anmeldelsen, ændrede sig konstant, da jeg eksperimenterede med forskellige hjemmelavede antenner. I starten var der et rundt koaksialstik på modulkortet, men femte gang det blev brugt til en ekstern antenne, faldt det simpelthen fra hinanden, så husk på, at det er spinkelt. Det resulterede i, at jeg rev antennen ud på printkortet fra den gamle router og loddede den til modulkortet, fordi... den fanger nettet lidt bedre end fjeder og wire.

Nå, helt samlet med opladningen tilsluttet ser det sådan ud:

Prøve. Hvordan det virker:

Udover test med antenner tjekkede jeg hvordan alarmen ville opføre sig udenfor, i -15 frost. For at gøre dette placerede jeg simpelthen hele indersiden i en beholder og efterlod den på balkonen natten over, alarmen startede ikke, årsagen viste sig at være generelt indlysende - lithium kan ikke lide frost. Dette blev bekræftet af en anden test, hvor jeg lod batteriet blive hjemme, og tog brættet udenfor gennem lange ledninger og lod det stå sådan et døgn i samme frost – det virkede som om intet var hændt. På den anden side ville det være mærkeligt, hvis alarmen ikke virkede, fordi... I databladene for Atmega, for moduler og for kvarts er de tilladte driftstemperaturer op til -40 grader.

Funktionsprincippet er organiseret ved hjælp af en ekstern afbrydelse, i første omgang er pin 2 lukket til VCC og dermed bibeholdes logisk 1 ved pinden, og controlleren er i dvale. Så snart kontakten er brudt, og 0 vises på ben 2, vågner mikrocontrolleren, sænker den 3. pin (som modemets BOOT er tilsluttet gennem en modstand) til jord - modulet starter, MK'en poller med jævne mellemrum modulet for klarhed, og så snart den fanger netværket, sender den straks opkald til ejerens telefonnummer, der er angivet i koden. Efter at have afvist opkaldet, slukker enheden uden at sende flere endeløse opkald, hvilket er problemet med mange kinesiske alarmsystemer.

Yderligere Information

#omfatte #omfatte // UART-softwarebibliotek SoftwareSerial gsm(7, 6); // RX(7), TX(6) void wakeUp()() // tom interrupt-handler //////////////////////////// /////////////// 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(); // укладываем контроллер спать } }

Kredsløbsdiagram (uden lade-afladningskontrolkort)



Konklusioner og tanker. Planer.

Alarmsystemet bruges på dachaen, jeg er tilfreds med arbejdet, men med yderligere undersøgelse af AVR kommer der flere og flere ideer til yderligere modifikation. Arduino med dens pseudo-sprogede Wiring gjorde mig virkelig ked af det, fordi... Et ubehageligt øjeblik blev opdaget i værket. Da jeg brugte portfunktionerne digitalWrite(); eller pinMode(); - af en eller anden grund frøs GSM-modulet meget ofte. Men det var værd at erstatte dem med tricks som DDRB|=(1<Kun operationen med direkte adgang til portene fik enheden til at fungere efter hensigten.

Om energibesparelse...
Den samlede enhed fungerede i fire hele måneder uden genopladning og fortsætter med at fungere, selvom det ville være mere korrekt at sige "søvn". Dette kan kontrolleres ved blot at genstarte via den hvide knap. Med et strømforbrug på 250 μA (gennem LE33-stabilisatoren) og et batteri på ~1430 mAh, selvom det er okay, lad os på grund af batteriets nyskabelse runde det op til 1000 mAh, viser det sig, at enheden kan sove i ca. 5,5 måned uden genopladning. Hvis du stadig fjerner stabilisatoren, kan driftstiden sikkert ganges med 10 gange. Men i mit tilfælde er der ikke behov for dette, for du skal stadig bruge saldoen fra SIM-kortet en gang hver tredje måned, samtidig kan enheden tjekkes og genoplades.
Eksemplet på energibesparelse givet i anmeldelsen er langt fra grænsen, fordi at dømme efter informationen fra databladet, kan du sænke mikrocontrollerens clock-frekvens (og dette gøres ved at installere sikringer) til 1 MHz, og hvis du anvender 1,8 V spænding, vil forbruget falde til under 1 μA-baren i aktiv tilstand . Meget fint! Men hvis MK er clocket fra den interne RC-oscillator, så vil et andet problem dukke op - UART-luften vil være tilstoppet med affald og fejl, især hvis controlleren opvarmes eller afkøles.

Ved afslutningen...
1) En almindelig ledning installeret til at bryde er ikke særlig praktisk, jeg planlægger at eksperimentere med en Hall-sensor og en reed-kontakt, selvom de siger om sidstnævnte, at den ikke er særlig pålidelig, fordi kontakterne inde i den kan holde sig fast.
2) Det ville være rart at tilføje muligheden for at ændre "ejernummeret" uden deltagelse af en computer og blinke det. Du bliver nødt til at arbejde med EEPROM.
3) Prøv afbrydelser fra watchdog-timeren, men ikke kun for nysgerrighedens skyld, men så mikrocontrolleren med jævne mellemrum vågner af sig selv, måler batterispændingen og sender den resulterende værdi via SMS for at være opmærksom på, hvor lavt batteriet er.
4) Et solpanel kan helt eliminere behovet for at genoplade enheden; dette vil især være tilfældet for batterier med lav kapacitet.
5) Jeg har længe ønsket at købe LiFePo4-batterier, som ifølge anmeldelser godt kan tåle frost, men mens jeg ledte efter et passende parti, var foråret allerede stille og roligt ankommet.
6) Arbejd med den æstetiske komponent

Hvilken Pro Mini skal du købe?
Hvis du ikke har en hårtørrer, så Pro Mini "RobotDyn" Atmega168PA 3.3V, tag LED'en af ​​med noget skarpt, og du har ~250 µA.
Hvis du har en hårtørrer, så ethvert bord, lod stabilisatoren og LED'en til strømforsyning - du får ~20 µA strømforbrug.

Det var alt for nu, jeg håber, at anmeldelsen var interessant og nyttig.

Planlægger at købe +174 Tilføj til favoritter Jeg kunne godt lide anmeldelsen +143 +278

Dens forfatter ønskede at lave et hjemmelavet projekt, så det ville være billigt og trådløst.
Dette hjemmelavede produkt bruger en PIR-bevægelsessensor, og information transmitteres ved hjælp af et RF-modul.

Forfatteren ønskede at bruge det infrarøde modul, men da det har en begrænset rækkevidde, plus kan det fungere kun sigtelinje med modtageren, så han valgte et RF-modul, hvormed han kan opnå en rækkevidde på cirka 100 meter.


For at gøre det mere bekvemt for besøgende at se alarmenheden besluttede jeg at opdele artiklen i 5 faser:
Trin 1: Oprettelse af en sender.
Trin 2: Opret en modtager.
Trin 3: Softwareinstallation.
Trin 4: Test af samlede moduler.
Trin 5: Samling af kabinettet og montering af modulet i det.

Alt hvad forfatteren havde brug for var:
- 2 ARDUINO UNO/ARDUINO MINI/ARDUINO NANO-kort til modtager og sender;
- RF-transceivermodul (433 MHZ);
- PIR bevægelsessensor;
- 9V batterier (2 stk) og stik til dem;
- Buzzer;
- Lysdiode;
- Modstand med en modstand på 220 ohm;
- Brødbræt;
- Jumpere/ledninger/jumpers;
- Kredsløbsplade;
- Board-to-board pin-stik;
- Afbrydere;
- Huse til modtager og sender;
- Farvet papir;
- Monteringstape;
- Indsæt skalpel;
- Varm limpistol;
- Loddekolbe;
- Trådskærer/isoleringsafisoleringsværktøj;
- Metal saks.


Scene 1.
Lad os begynde at skabe senderen.
Nedenfor er et diagram over, hvordan bevægelsessensoren fungerer.


Selve senderen består af:
- Bevægelsessensor;
- Arduino boards;
- Sendermodul.


Selve sensoren har tre udgange:
- VCC;
- GND;
- UD.

Derefter tjekkede jeg sensorens funktion


Opmærksomhed!!!
Før du downloader firmwaren, sørger forfatteren for, at det aktuelle kort og den serielle port er indstillet korrekt i Arduino IDE-indstillingerne. Så uploadede jeg skitsen:

Senere, når bevægelsessensoren registrerer bevægelse foran dig, vil LED'en lyse, og du vil også kunne se en tilsvarende besked på skærmen.


I henhold til diagrammet nedenfor.


Senderen har 3 ben (VCC, GND og Data), tilslut dem:
- VCC > 5V udgang på kortet;
- GND > GND ;
- Data > 12 ben på brættet.

Etape 2.


Selve modtageren består af:
- RF-modtagermodul;
- Arduino boards
- Buzzer (højttaler).

Modtagerkredsløb:


Modtageren har ligesom senderen 3 ben (VCC, GND og Data), tilslut dem:
- VCC > 5V udgang på kortet;
- GND > GND ;
- Data > 12 ben på brættet.


Etape 3.
Forfatteren valgte filbiblioteker som grundlag for hele firmwaren. Jeg downloadede det og placerede det i mappen Arduino biblioteker.

Sender software.
Før du uploader firmwarekoden til kortet, indstillede forfatteren følgende IDE-parametre:
- Board -> Arduino Nano (eller det board du bruger);
- Seriel port ->


Efter indstilling af parametrene downloadede forfatteren Wireless_tx-firmwarefilen og uploadede den til boardet:

Modtager software
Forfatteren gentager de samme trin for det modtagende bord:
- Board -> Arduino UNO (eller det board du bruger);
- Seriel port -> COM XX (tjek den com-port, som dit kort er tilsluttet).



Efter at forfatteren har indstillet parametrene, downloader han wireless_rx-filen og indlæser den på tavlen:


Bagefter, ved hjælp af et program, der kan downloades, genererede forfatteren en lyd til buzzeren.

Etape 4.
Dernæst, efter at have downloadet softwaren, besluttede forfatteren at kontrollere, om alt fungerede korrekt. Forfatteren tilsluttede strømforsyningerne og førte sin hånd foran sensoren, og buzzeren begyndte at virke, hvilket betyder, at alt fungerer, som det skal.


Etape 5.
Afsluttende samling af senderen
Først skar forfatteren de udragende ledninger af fra modtageren, senderen, arduino-pladerne osv.


Derefter tilsluttede jeg arduino-kortet med bevægelsessensoren og RF-senderen ved hjælp af jumpere.


Dernæst begyndte forfatteren at lave et hus til senderen.

Først skar han et hul ud til kontakten, samt et rundt hul til bevægelsessensoren, og limede det derefter til kroppen.




Derefter rullede forfatteren et ark farvet papir og limede det til forsiden af ​​billedet for at skjule de indre dele af det hjemmelavede produkt.


Hvorefter forfatteren begyndte at indsætte den elektroniske fyldning inde i sagen ved hjælp af dobbeltklæbende tape.



Slutmontering af modtageren
Forfatteren besluttede at forbinde Arduino-kortet til printkortet med et gummibånd og også installere en RF-modtager.


Dernæst skærer forfatteren to huller på den anden sag, den ene til buzzeren, den anden til kontakten.


Og holder den.


Hvorefter forfatteren installerer jumpere på alle dele.




Derefter sætter forfatteren det færdige bræt ind i etuiet og fastgør det med dobbeltsidet lim.