INHOUDSOPGAWE:

Arduino draadlose alarmstelsel met bestaande sensors: 9 stappe (met foto's)
Arduino draadlose alarmstelsel met bestaande sensors: 9 stappe (met foto's)

Video: Arduino draadlose alarmstelsel met bestaande sensors: 9 stappe (met foto's)

Video: Arduino draadlose alarmstelsel met bestaande sensors: 9 stappe (met foto's)
Video: Je eigen Smart Home met D-Link 2024, November
Anonim
Arduino draadlose alarmstelsel met behulp van bestaande sensors
Arduino draadlose alarmstelsel met behulp van bestaande sensors
Arduino draadlose alarmstelsel met behulp van bestaande sensors
Arduino draadlose alarmstelsel met behulp van bestaande sensors
Arduino draadlose alarmstelsel met behulp van bestaande sensors
Arduino draadlose alarmstelsel met behulp van bestaande sensors
Arduino draadlose alarmstelsel met behulp van bestaande sensors
Arduino draadlose alarmstelsel met behulp van bestaande sensors

Hierdie projek kan binne ongeveer 'n halfuur gebou word teen 'n koste van ongeveer $ 20,00 as u beskikbare 433Mhz of 315Mhz draadlose alarmsensors het.

Dit kan ook 'n volledige nuwe projek wees met draadlose alarmsensors, soos infrarooi bewegingsdetektore en rietskakelaars, maklik en goedkoop aanlyn beskikbaar. Soek net 433Mhz- of 315Mhz -sensors wat PT2262- of EV1527 -kodering gebruik.

Ek is seker daar is baie mense soos ek wat 'n GSM/2G alarmstelsel met draadlose sensors gekoop het en tevrede was daarmee, maar toe die 2G/GSM -netwerk afgeskakel is waar ek woon, het ek 'n alarmstelsel agtergelaat. nie meer programmeer of selfs die tyd daarop stel nie. Op 'n dag terwyl ek wonder wat ek kan doen om my alarm weer funksioneel te maak, het ek by my opgekom om te kyk of 'n Arduino seine van die sensors kan ontvang. Ek het op 'n onstuitbare https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ afgekom en na 'n paar eksperimente vasgestel dat ek die seine van my bestaande sensors kan ontvang. Ek het begin met die proses om 'n alarmstelsel te bou wat my bestaande alarm kan vervang en ook meer funksionaliteit bied. Een van die probleme met die ou alarm was nooit om presies te weet watter van die 25 sensors afgaan nie, deur 'n LCD -skerm by my nuwe alarm te voeg, kry ek nou teks op die LCD wat aandui presies watter sensor geaktiveer is. Die nuwe alarm kan nog steeds handmatig deur my bestaande draadlose keyfobs gewapen word en het 'n intydse klok om dit in staat te stel om outomaties in te skakel en uit te skakel op vooraf ingestelde tye van die dag.

Voorrade

Sien bykomende aantekeninge aan die einde om te verseker dat u die korrekte weergawe van hierdie onderdele gebruik.

Arduino Uno of soortgelyk

433 of 315 MHz ontvanger module voor Arduino

DS3231 Real Time Clock -module vir Arduino

I2C 16x2 LDC -module vir Arduino

Draadlose alarm rietskakelaars, bewegingsensors en afstandsbedienings vir sleutelknoppies soos benodig

Piezo -gonser

Weerstand met LED en 220 ohm

Broodbord (opsioneel, maar aanbeveel)

Geskikte kragtoevoer vir Arduino

Springdrade ens

PC met Arduino IDE geïnstalleer

Basiese kennis van Arduino

Stap 1: Voorrade

Voorrade
Voorrade
Voorrade
Voorrade
Voorrade
Voorrade

Enkele afbeeldings hierbo van die benodigdhede wat u benodig vir hierdie projek

Stap 2: Verbind die Ardunio en modules soos in die prentjie

Verbind die Ardunio en modules soos in die prent getoon
Verbind die Ardunio en modules soos in die prent getoon

Piezo tussen pen 5 van die Arduino en die aarde

LED tussen pen 8 van die Arduino en na 'n 220ohm -weerstand, dan na die aarde

433 of 315 Mhz ontvanger, VCC tot 5V, GND op aarde en een van die 2 datapenne na pin2 van die Arduino

I2C 16X2 LCD -module VCC tot 5V, GND tot grond, SCL SDA -penne na SCL SDA van die Arduino (pen A5 is SCL, pen A4 is SDA)

DS3231 RTC -module VCC tot 5V, GND tot grond, SCL SDA -penne na SCL SDA van die Arduino (daar is 'n 2de stel bo die GND- en AREF -penne van die meeste Arduino's)

Ek weet dat sommige van u nie meer inligting nodig het as die onderstaande skets nie, maar ek sal meer in detail ingaan vir almal wat 'n bietjie hulp wil hê.

Stap 3: Voeg nodige biblioteke by die Arduino IDE

Voeg nodige biblioteke by die Arduino IDE
Voeg nodige biblioteke by die Arduino IDE
Voeg nodige biblioteke by die Arduino IDE
Voeg nodige biblioteke by die Arduino IDE
Voeg nodige biblioteke by die Arduino IDE
Voeg nodige biblioteke by die Arduino IDE

Die Arduino -skets om die alarm uit te voer, gebruik sommige biblioteke wat standaard nie reeds op die Arduino IDE geïnstalleer is nie.

Om RCSwitch -biblioteek by die Arduino IDE te voeg. Open die Arduino IDE in die boonste spyskaart, kies "Skets", kies dan "Sluit biblioteek in", en kies "Beheer biblioteke" in die vervolg keuselys. Tik dan in die blokkie "Filter u soektog" "RCSW" en klik dan op install vir "rc-switch by sui77"

Gedetailleerde instruksies oor die toevoeging van biblioteke op

Terwyl ons besig is, moet ons ook die biblioteke met die naam Time, TimeAlarms, DS1307RTC en LiquidCrystal_I2C byvoeg, dieselfde prosedure as hierbo, maar soek die naam van elke nuwe biblioteek en installeer dit. Sien skermkiekies hierbo as u nie seker is watter biblioteke u moet gebruik nie.

Die DS3231-intydse klok is verenigbaar met en gebruik die DS1307RTC-biblioteek.

Stap 4: Vervolgens moet ons die kodes vir u sensors kry

Volgende moet ons die kodes vir u sensors kry
Volgende moet ons die kodes vir u sensors kry
Volgende moet ons die kodes vir u sensors kry
Volgende moet ons die kodes vir u sensors kry

Ek het die sjabloon van die Arduino -kode hieronder verskaf, maar u moet die waardes vir elkeen van u sensors vind en in die kode plak.

Daar is uitgebreide inligting oor hoe om hierdie kodes op beide hierdie webwerwe te bekom;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Hier is egter my verkorte weergawe;

Om die kodes te kry wat u sensors en afstandsbedieners stuur, moet u die Arduino, soos in stap 1 saamgestel, via 'n USB -kabel aan 'n rekenaar koppel en die Arduino IDE oopmaak. Gaan dan in die Arduino IDE na die "File" aftreklys, gaan dan na "Voorbeelde", blaai deur die lys met voorbeeldsketse totdat u "RCSWITCH" vind, kies dan die "ReceiveDemo_Advanced" skets en laai dit op na die Arduino. Sodra die skets suksesvol opgelaai is, kan u die seriële monitor van die Arduino IDE oopmaak, terwyl dit steeds via USB aan u rekenaar gekoppel is. Skakel nou die eerste van die sensors waarvoor u die kode wil kry, die uitset van RCSwitch sal in die seriële monitorvenster verskyn. Vir hierdie projek is ons op soek na die desimale kodes soos aangedui in skermkiekie 2. U moet die sensor verskeie kere aktiveer en op soek na die desimale waarde wat die meeste voorkom, soms is daar verskillende waardes wat met die ware waarde gemeng word. deur inmenging van ewekansige radiogolwe of ander toestelle wat op dieselfde frekwensie werk.

Let op die desimale kode van die sensor vir gebruik in die volgende stap. Herhaal vir al die sensors en afstandsbedieningspanele wat u in die projek wil gebruik, en hou by watter kode by watter sensor pas. As u 'n afstandsbediening gebruik om die alarm in en uit te skakel, moet u let op die verskillende kodes vir die aan / uit -knoppie en die uitskakelknoppie van elke afstandsbediening.

Stap 5: Arduino -kode -sjabloon

Hieronder is 'n afskrif van my Arduino -kode as 'n.ino -lêer genaamd Wireless_Alarm. U kan daarop klik en dit moet in die Arduino IDE oopmaak. Ek is nie 'n programmeerder nie, my kode is gedeeltelik saamgestel uit die voorbeelde in die Arduino IDE, dit is waarskynlik nie besonder elegant nie, maar dit werk wel en is oor 'n lang tyd betroubaar.

Onthou om die skets weer te stoor nadat u die veranderings aangebring het om die kodes van u eie sensors in te sluit.

Stap 6: Plak die kodes wat u in stap 5 gekry het, in die sjabloon Arduino -skets

Nou die stappe om die kode aan te pas vir die sensors en afstandsbedieningspanele wat u gebruik.

As u die Wireless_Alarm -skets in u IDE oopmaak, sal u op reël 111 sien.

as (mySwitch.getReceivedValue () == 115166236) // Fob -armknoppie kode

As u in die bestaande kode 115166236 lees, moet u die nommer vervang met 'n desimale kode vir die armknoppie van u afstandsbediening, wat u in stap 5 opgeteken het.

As u byvoorbeeld in stap 5 'n desimale 1154321 kry, sou u reël 111 verander om nou te lees;

as (mySwitch.getReceivedValue () == 1154321) // Fob -armknoppie kode

Volg dieselfde prosedure vir reël 125.

as (mySwitch.getReceivedValue () == 115166234) // Fob ontknoppie kode

Vervang 115166234 vir die kode van u afstandsbedieningsknoppie wat u by stap 5 opneem.

As u veelvuldige afstandsbedienings wil gebruik om in en uit te skakel, kopieer en plak reëls 111 tot 136 soveel keer as wat nodig is, verander dan die waardes wat by u ander afstandsbediening pas, maar begin eers met een afstandsbediening totdat u seker is dat u dit gewysig het skets werk.

Nou na die kodering van die alarmsensors in die skets op reël 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Aksie vir seinkas se kantoorkas

Haal 1151640 uit en voeg die desimale waarde van een van u alarmsensors in.

Dan by reël 158.

lcd.print (F ("Kantoorkas")); // druk boodskap aan lcd om te weet watter sensor geaktiveer is (en gaan soek die inbreker:)

Verander die kantoorkas na wat u op die LCD vir die sensor wil vertoon. Byvoorbeeld, as u wil hê dat dit deur kitchendoor moet lees, laat die reël so lyk;

lcd.print (F ("Kitchendoor")); // druk boodskap aan lcd om te weet watter sensor geaktiveer is (en gaan soek die inbreker:)

Name moet nie meer as 16 karakters wees nie.

Tussen reël 165 en 187 is 'n sjabloon om soveel keer as wat nodig is te kopieer en te plak op die reëls direk onder 187. Vervang die nommer na mySwitch.getReceivedValue () == met die desimaal van een van u ander sensors wat u in stap 5 opgeteken het en verander die naam binne die "" in lcd.print (F ("sensornamehere")); na die naam wat u aan u sensor wil gee.

As u nie die afstandsbediening gebruik om u alarm in te skakel en uit te skakel nie, kan u reëls 111-136 ignoreer of // aan die begin van elk van die ongewenste reëls plaas, en die Arduino kan dit nie lees nie.

Onthou om die lêer te stoor nadat u die veranderinge aangebring het.

Stap 7: Laai die gewysigde.ino op na u Arduino en toets

Laai die gewysigde.ino op na u Arduino en toets
Laai die gewysigde.ino op na u Arduino en toets
Laai die gewysigde.ino op na u Arduino en toets
Laai die gewysigde.ino op na u Arduino en toets
Laai die gewysigde.ino op na u Arduino en toets
Laai die gewysigde.ino op na u Arduino en toets

Terwyl die Arduino nog steeds via USB aan u rekenaar gekoppel is, laai die skets op na die Arduino Board. Sodra die oplaai suksesvol afgehandel is, moet die LCD "Alarm aan uitgeskakel" lees. Druk die armknoppie op u afstandsbediening en die LCD moet "Alarm aan gewapend" lees, en die LED moet brand om u te laat weet dat dit ingeskakel is, aktiveer nou 'n sensor terwyl dit ingeskakel is, LCD moet alarm lees, gevolg deur 'n tydstempel en die ligging van die sensor, behoort die piep vir 2 minute te klink, tensy u op die uitskakelknoppie druk. Kontroleer ook weer die bedrading van alle komponente as u hierdie resultaat nie kry nie. As die LCD glad nie lees nie, is daar 'n kontrasaanpassing aan die agterkant van die LCD -module. As die kontras korrek ingestel is as die LCD nog steeds nie lees nie, probeer dan om die adres van die LCD van 0x3f na 0x27 op reël 12 in die skets te verander. LCD probleemoplossing hier I2C LCD handleiding

Stap 8: Stel die tyd in op die RTC -module en verander die tyd om die arm in en uit te skakel

Hopelik was u RTC reeds op die regte tyd ingestel, maar as u nie die IDE oopmaak nie, kies 'File' en klik op 'Voorbeelde', blaai af na 'DS1307RTC' en kies die 'SetTime' skets, laai die skets af na u Arduino en dit stel die regte tydklok in met die tyd van u rekenaar. U moet dan die Wireless_Alarm -skets herlaai na u Arduino.

Die Wireless_Alarm.ino wat ek verskaf het, sal die alarm standaard om 22:15 elke aand outomaties laat inskakel en elke oggend om 06:00 uitskakel. Om hierdie tye te verander, verander die skets by reëls 71 en 72. Die tyd is tussen hakies na Alarm.alarmHerhaal in die formaat HH, MM, SS. verander dit na die tyd wat u pas.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // AFSKAKEL tyd

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // ARM tyd

Om die ontwapeningstyd na 9.15 uur en die armtyd na 17.30 uur te verander, sal die kode so lyk

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // AFSKAKEL tyd

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // ARM tyd

As u nie wil hê dat die alarm moet in- en uitskakel nie, moet u // voor die 2 reëls sit, en dit word nie gebruik nie.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // AFSKAKEL tyd

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Arm tyd

Die tyd waarop die alarmpieper klink, kan verander word deur reël 22 te verander

konst lang interval = 120000; // vir millis vertraging vir tydsduur alarmgeluide

Die interval is in millisekondes, so 120000 = 120 sekondes. Deur 120000 na 30000 te verander, sal die alarm 30 sekondes laat klink.

'N Solenoïde om 'n sirene, 'n stroboscooplig, 'n hoë volume pieper, ens., Kan ook aan pen 7 of pen 9 gekoppel word en sal vir die' interval 'werk soos hierbo uiteengesit. Hou in gedagte dat die maksimum las vir 'n Arduino -pen nie meer as 40mA moet wees nie.

Stap 9: Bykomende aantekeninge

As u 'n 433 of 315 MHz ontvanger module vir Arduino kies, moet u die frekwensie kies wat pas by die alarmsensors wat u wil gebruik. Ek stel voor dat u 'n module koop met 'n klein spiraalvormige antenne vir die beste prestasie, anders kan 'n 17,3 mm lang reguit draadantennas ook die prestasie verhoog.

Met die 16x2 LCD -module moet u 'n 4 -pins I2C LCD gebruik om die instruksies en kode wat ek hier verskaf, te gebruik; dit kan gemaak word met 'n 16 -pins standaard LCD, maar dit werk nie met die bedrading of kode hier nie.

Draadlose alarmrietskakelaars, bewegingsensors en afstandsbedienings vir sleutelknoppies moet 433Mhz of 315Mhz wees wat ooreenstem met die ontvanger wat u wil gebruik, en moet PT2262- of EV1527 -kodering gebruik.

Die alarm is uitbreidbaar en aanpasbaar; ek het reeds 'n SD -kaart bygevoeg om op te neem wanneer sensors geaktiveer word, die LCD verander sodat dit slegs aangaan as 'n knoppie ingedruk word en 'n sirene van 100dB bygevoeg, maar ek het nie die besonderhede hier ingesluit om die artikel te behou nie kort en eenvoudig as moontlik. Ek hoop dat die deel van die werk wat ek aan hierdie alarm gedoen het, vir ander tot nut kan wees.

Beantwoord graag enige vrae.

Dankie.

Aanbeveel: