Taula de continguts:

Sistema d'alarma sense fils Arduino que utilitza sensors existents: 9 passos (amb imatges)
Sistema d'alarma sense fils Arduino que utilitza sensors existents: 9 passos (amb imatges)

Vídeo: Sistema d'alarma sense fils Arduino que utilitza sensors existents: 9 passos (amb imatges)

Vídeo: Sistema d'alarma sense fils Arduino que utilitza sensors existents: 9 passos (amb imatges)
Vídeo: Leap Motion SDK 2024, Desembre
Anonim
Sistema d'alarma sense fils Arduino que utilitza sensors existents
Sistema d'alarma sense fils Arduino que utilitza sensors existents
Sistema d'alarma sense fils Arduino que utilitza sensors existents
Sistema d'alarma sense fils Arduino que utilitza sensors existents
Sistema d'alarma sense fils Arduino que utilitza sensors existents
Sistema d'alarma sense fils Arduino que utilitza sensors existents
Sistema d'alarma sense fils Arduino que utilitza sensors existents
Sistema d'alarma sense fils Arduino que utilitza sensors existents

Aquest projecte es pot construir en aproximadament mitja hora amb un cost d’uns 20,00 dòlars si teniu sensors d’alarma sense fils de 433Mhz o 315Mhz.

També pot ser un nou projecte complet amb sensors d'alarma sense fils, com ara detectors de moviment infrarojos i interruptors reed, disponibles de manera fàcil i econòmica en línia. Només cal que busqueu sensors de 433 MHz o 315 MHz que facin servir la codificació PT2262 o EV1527.

Estic segur que hi ha molta gent com jo que ha comprat un sistema d’alarma GSM / 2G amb sensors sense fils i n’està satisfet, però, quan la xarxa 2G / GSM es va apagar al lloc on visc, em va quedar un sistema d’alarma que vaig poder. ja no programa ni tan sols estableix l’hora. Un dia, mentre em preguntava què podia fer per tornar a funcionar l'alarma, se'm va ocórrer comprovar si un Arduino podia rebre senyals dels sensors. Vaig ensopegar amb un https://www.instructables.com/id/Decoding-and-s--433MHz-RF-codes-with-Arduino-/ instuctable i després d’haver experimentat determinat que podia rebre els senyals dels meus sensors existents. Vaig començar el procés per construir un sistema d'alarma que pogués substituir la meva alarma existent i que també proporcionés una major funcionalitat. Un dels problemes de l’antiga alarma mai no va ser saber exactament quin dels 25 sensors es va disparar, en afegir una pantalla LCD a la meva nova versió d’alarma, ara tinc un text a la pantalla LCD que indica exactament quin sensor s’ha activat. La nova alarma encara es pot armar manualment amb els meus telèfons sense fils existents i té un rellotge en temps real per permetre-li armar i desarmar automàticament a les hores del dia predeterminades.

Subministraments

Vegeu notes addicionals al final per assegurar-vos que utilitzeu la versió correcta d’aquestes parts.

Arduino Uno o similar

Mòdul receptor de 433 o 315 MHz per a Arduino

Mòdul de rellotge en temps real DS3231 per Arduino

Mòdul LDC I2C 16x2 per Arduino

Interruptors de canya d'alarma sense fils, sensors de moviment i claus remots segons es desitgi

Zumbador piezoelèctric

Resistència LED i 220 ohms

Taula de pa (opcional però recomanable)

Alimentació adequada per a Arduino

Filferros de pont, etc.

PC amb Arduino IDE instal·lat

Coneixements bàsics d'Arduino

Pas 1: subministraments

Subministraments
Subministraments
Subministraments
Subministraments
Subministraments
Subministraments

Algunes imatges a sobre dels subministraments que necessiteu per a aquest projecte

Pas 2: connecteu Ardunio i els mòduls tal com es mostra a la imatge

Connecteu l'Ardunio i els mòduls tal com es mostra a la imatge
Connecteu l'Ardunio i els mòduls tal com es mostra a la imatge

Piezo entre el pin 5 de l'Arduino i la terra

LED entre el pin 8 de l'Arduino i una resistència de 220ohm a la terra

Receptor de 433 o 315 Mhz, VCC a 5V, GND a terra i un dels dos pins de dades al pin2 de l'Arduino

Mòdul LCD I2C 16X2 VCC a 5V, GND a terra, pins SCL SDA a SCL SDA de l'Arduino (el pin A5 és SCL, el pin A4 és SDA)

Mòdul RTC DS3231 VCC a 5V, GND a terra, pins SDL SCL a SCL SDA de l'Arduino (hi ha el segon conjunt situat per sobre dels pins GND i AREF de la majoria d'Arduino)

Sé que alguns de vosaltres no necessitaran més informació que aquesta i l’esbós adjunt a continuació, però entraré en alguns detalls més per a qualsevol persona que vulgui una mica més d’ajuda.

Pas 3: afegiu biblioteques necessàries a l'IDE Arduino

Afegiu biblioteques necessàries a l'IDE Arduino
Afegiu biblioteques necessàries a l'IDE Arduino
Afegiu biblioteques necessàries a l'IDE Arduino
Afegiu biblioteques necessàries a l'IDE Arduino
Afegiu biblioteques necessàries a l'IDE Arduino
Afegiu biblioteques necessàries a l'IDE Arduino

L'Arduino Sketch per executar l'alarma utilitza algunes biblioteques que no estan instal·lades per defecte a l'IDE d'Arduino.

Per afegir la biblioteca RCSwitch a l'IDE Arduino. Obriu l'IDE d'Arduino al menú superior, seleccioneu "Esbós" i, a continuació, seleccioneu "Inclou biblioteca" i, a la llista desplegable següent, seleccioneu "Gestiona les biblioteques". A continuació, al quadre "Filtra la cerca" escriviu "RCSW", feu clic a Instal·lar per a "rc-switch by sui77"

Instruccions detallades per afegir biblioteques a

Mentre hi estem, també hem d'afegir les biblioteques anomenades Time, TimeAlarms, DS1307RTC i LiquidCrystal_I2C, el mateix procediment que l'anterior, però buscant el nom de cada nova biblioteca i instal·lant-lo. Vegeu les captures de pantalla anteriors si no esteu segur de quines biblioteques utilitzar.

El rellotge en temps real DS3231 és compatible i utilitza la biblioteca DS1307RTC.

Pas 4: a continuació, hem d'obtenir els codis per als vostres sensors

A continuació, hem d'obtenir els codis per als vostres sensors
A continuació, hem d'obtenir els codis per als vostres sensors
A continuació, hem d'obtenir els codis per als vostres sensors
A continuació, hem d'obtenir els codis per als vostres sensors

A continuació he proporcionat la plantilla del codi Arduino, però haureu de trobar els valors de cadascun dels vostres sensors i enganxar-los al codi.

Hi ha una àmplia informació sobre com obtenir aquests codis en aquests dos llocs;

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

github.com/sui77/rc-switch/wiki

Tanmateix, aquí teniu la meva versió abreujada;

Per obtenir els codis que envien els vostres sensors i claus remots, connecteu l'Arduino tal com es va muntar al pas 1 a un PC mitjançant un cable USB i obriu l'IDE Arduino. A continuació, a l'IDE d'Arduino, aneu al menú desplegable "Fitxer", aneu a "Exemples", desplaceu-vos cap avall per la llista d'esbossos d'exemple fins que trobeu "RCSWITCH" i seleccioneu l'esbós "ReceiveDemo_Advanced" i pengeu-lo a l'Arduino. Una vegada que l'esbós es carregui amb èxit, obriu el monitor sèrie de l'IDE d'Arduino, encara connectat al vostre PC mitjançant USB. Ara activeu el primer dels sensors per al qual voleu obtenir el codi, la sortida de RCSwitch apareixerà a la finestra del monitor sèrie. Per a aquest projecte, busquem els codis decimals ressaltats a la captura de pantalla 2. Haureu d’activar el sensor diverses vegades buscant el valor decimal que apareix amb més freqüència, de vegades hi haurà diferents valors barrejats amb el valor real, això es causa per interferències d’ones de ràdio aleatòries o altres dispositius que funcionen amb la mateixa freqüència.

Tingueu en compte el codi decimal del sensor per utilitzar-lo al següent pas. Repetiu-ho per a tots els sensors i telèfons mòbils remots que vulgueu utilitzar al projecte, fent un seguiment de quin codi va amb quin sensor. Si utilitzeu telèfons mòbils per activar i desarmar l'alarma, haureu de tenir en compte els diferents codis del botó d'armament i del botó de desarmament de cada comandament a distància.

Pas 5: plantilla de codi Arduino

A continuació es mostra una còpia del meu codi Arduino com a fitxer.ino anomenat Wireless_Alarm. Podeu fer-hi clic i hauria d’obrir-se a l’IDE Arduino. No sóc un programador, el meu codi està muntat en part a partir dels exemples de l'IDE Arduino, probablement no sigui especialment elegant, però funciona i ha estat fiable durant un llarg període de temps.

Recordeu que heu de tornar a desar l'esbós després de fer els canvis per incloure els codis dels vostres propis sensors.

Pas 6: enganxeu els codis que heu obtingut al pas 5 al model Arduino Sketch

Ara feu els passos per personalitzar el codi dels sensors i dels telèfons mòbils remots que utilitzeu.

Si obriu l'esbós de Wireless_Alarm al vostre IDE, veureu a la línia 111.

if (mySwitch.getReceivedValue () == 115166236) // Codi del botó de braç Fob

Si al codi existent es llegeix 115166236, heu de substituir aquest número per un codi decimal per al botó d'armament del dispositiu de control remot que heu gravat al pas 5.

Per exemple, si al pas 5 teniu un decimal 1154321, modificareu la línia 111 per llegir-la ara;

if (mySwitch.getReceivedValue () == 1154321) // Codi del botó del braç Fob

Seguiu el mateix procediment per a la línia 125.

if (mySwitch.getReceivedValue () == 115166234) // Codi del botó de desarmament Fob

Substituïu el codi del botó de desarmament de la tecla remota 115166234 que heu gravat al pas 5.

Si voleu utilitzar diversos comandaments remots per armar i desarmar, copieu i enganxeu les línies 111 a 136 tantes vegades com calgui, canvieu els valors perquè s’adaptin als vostres altres telèfons remots, però és millor que comenceu amb un control remot fins que estigueu segur que heu modificat l’esbós està funcionant.

Ara a codificar els sensors d’alarma a l’esbós de la línia 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Acció per a l'armari de l'oficina del remitent del senyal

Traieu 1151640 i introduïu el valor decimal d'un dels vostres sensors d'alarma.

Després, a la línia 158.

lcd.print (F ("armari d'oficina")); // imprimeix el missatge a lcd per saber quin sensor s'ha activat (i vés a buscar el lladre:)

Canvieu l'armari d'oficina pel que vulgueu que es mostri a la pantalla LCD d'aquest sensor. Per exemple, si voleu que es llegeixi kitchendoor, feu que la línia sembli així;

lcd.print (F ("Kitchendoor")); // imprimeix el missatge a lcd per saber quin sensor s'ha activat (i vés a buscar el lladre:)

Els noms no poden superar els 16 caràcters.

Entre les línies 165 i 187 hi ha una plantilla per copiar i enganxar tantes vegades com calgui a les línies directament inferiors a 187. Substituïu el número després de mySwitch.getReceivedValue () == pel decimal d'un dels vostres altres sensors que heu enregistrat al pas 5. i canvieu el nom dins de "" a lcd.print (F ("sensornamehere")); al nom que vulgueu donar al sensor.

Si no utilitzeu telèfons remots per activar i desarmar l'alarma, només podeu ignorar les línies 111-136 o posar // a l'inici de cadascuna de les línies no desitjades i l'Arduino no les llegirà.

Recordeu que heu de desar el fitxer després de fer els canvis.

Pas 7: pengeu el fitxer.ino modificat al vostre Arduino i proveu-lo

Pengeu el fitxer.ino modificat al vostre Arduino i proveu-lo
Pengeu el fitxer.ino modificat al vostre Arduino i proveu-lo
Pengeu el fitxer.ino modificat al vostre Arduino i proveu-lo
Pengeu el fitxer.ino modificat al vostre Arduino i proveu-lo
Pengeu el fitxer.ino modificat al vostre Arduino i proveu-lo
Pengeu el fitxer.ino modificat al vostre Arduino i proveu-lo

Amb l'Arduino encara connectat al vostre PC mitjançant USB, pengeu l'esbós a la placa Arduino. Un cop finalitzada la càrrega, la pantalla LCD hauria de llegir "Alarma activada desarmada". Premeu el botó de braç del comandament a distància i la pantalla LCD hauria de llegir "Alarma activada" i el LED hauria d'estar encès per fer-vos saber que està armat, activeu un sensor mentre estigui armat; a la ubicació del sensor, el so ha de sonar durant 2 minuts tret que premeu el botó de desarmament. Si no obteniu aquest resultat, torneu a comprovar els codis que heu obtingut al pas 5 i els canvis que heu fet al codi al pas anterior, també torneu a comprovar el cablejat de tots els components. Si la pantalla LCD no llegeix gens, hi ha un ajust de contrast a la part posterior del mòdul LCD. Quan el contrast estigui correctament configurat si la pantalla LCD encara no llegeix, proveu de canviar l'adreça de la pantalla LCD de 0x3f a 0x27 a la línia 12 de l'esbós. Resolució de problemes de la pantalla LCD aquí I2C Tutorial LCD

Pas 8: definir l'hora al mòdul RTC i canviar els temps de braç i desarmament

Esperem que el vostre RTC ja estigui configurat amb l’hora correcta, però si no obriu l’IDE, seleccioneu "Fitxer" i feu clic a "Exemples" al menú desplegable, desplaceu-vos cap avall fins a "DS1307RTC" i seleccioneu l'esbós "SetTime", descarregueu l'esbós al vostre Arduino configurarà el rellotge de temps real amb l’hora del vostre PC. Després haureu de tornar a carregar l’esbós Wireless_Alarm al vostre Arduino.

El Wireless_Alarm.ino que he proporcionat configurarà per defecte l’alarma perquè s’activi automàticament a les 22.15 cada nit i es desarmi a les 6.00 del matí cada matí. Per canviar aquests horaris, modifiqueu l’esbós a les línies 71 i 72. L’hora està entre parèntesis després d’Alarma.alarma Repetiu el format HH, MM, SS. canvieu-ho pel moment que més us convingui.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // Temps DESARM

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

Per tant, per canviar el temps de desarmament a les 9.15 h i el temps de braç a les 17.30, el codi quedaria així

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // Temps DESARM

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

Si no voleu que l'alarma s'activi i desarmi, poseu // automàticament davant de les 2 línies i no s'utilitzaran.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // Temps DESARM

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Temps d’armament

Es pot canviar el temps en què sona el pitit d'alarma modificant la línia 22

intervall llarg const = 120000; // per retard de mil·lis durant el temps que sona l'alarma

L'interval és en mil·lisegons, de manera que 120000 = 120 segons, canviar de 120000 a 30000 farà sonar l'alarma durant 30 segons.

També es pot connectar un solenoide per fer funcionar una sirena, una llum estroboscòpica, un so acústic d’alt volum, etc. Tingueu en compte que la càrrega màxima d’un pin Arduino no ha de superar els 40 mA.

Pas 9: notes addicionals

Quan seleccioneu un mòdul receptor de 433 o 315 MHz per a Arduino, heu de triar la freqüència que coincideixi amb els sensors d'alarma que vulgueu utilitzar. Us suggereixo comprar un mòdul que ve amb unes petites antenes helicoïdals en espiral per obtenir el millor rendiment, o bé una antena de filferro recte de 17,3 mm de llargada també augmenta el rendiment.

Amb el mòdul LCD de 16x2, heu d’utilitzar un LCD I2C de 4 pins per utilitzar les instruccions i el codi que proporciono aquí, es podria fer amb un LCD estàndard de 16 pins, però no funcionarà amb el cablejat ni el codi.

Els interruptors reed d’alarma sense fils, els sensors de moviment i els comandaments a distància han de ser de 433 MHz o 315 MHz perquè coincideixin amb el receptor que es vol utilitzar i s’ha de fer servir la codificació PT2262 o EV1527.

L'alarma es pot ampliar i adaptar, ja he afegit una targeta SD per gravar quan s'activen els sensors, he modificat la pantalla LCD perquè només s'encengui quan es manté premut un botó i he afegit una sirena de 100 dB, però no he inclòs detalls aquí per mantenir l'article com breu i senzill possible. Espero que la feina que he fet en aquesta alarma sigui útil per a altres.

Feliç de respondre a qualsevol pregunta.

Gràcies.

Recomanat: