Taula de continguts:
- Subministraments
- Pas 1: subministraments
- Pas 2: connecteu Ardunio i els mòduls tal com es mostra a la imatge
- Pas 3: afegiu biblioteques necessàries a l'IDE Arduino
- Pas 4: a continuació, hem d'obtenir els codis per als vostres sensors
- Pas 5: plantilla de codi Arduino
- Pas 6: enganxeu els codis que heu obtingut al pas 5 al model Arduino Sketch
- Pas 7: pengeu el fitxer.ino modificat al vostre Arduino i proveu-lo
- Pas 8: definir l'hora al mòdul RTC i canviar els temps de braç i desarmament
- Pas 9: notes addicionals
Vídeo: Sistema d'alarma sense fils Arduino que utilitza sensors existents: 9 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
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
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
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
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ó 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
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:
Comandament a distància sense fils que utilitza el mòdul NRF24L01 de 2,4 Ghz amb Arduino - Nrf24l01 Receptor transmissor de 4 canals / 6 canals per quadcòpter - Helicòpter Rc - Avió Rc amb Arduino: 5 passos (amb imatges)
Comandament sense fils que utilitza un mòdul NRF24L01 de 2,4 Ghz amb Arduino | Nrf24l01 Receptor transmissor de 4 canals / 6 canals per quadcòpter | Helicòpter Rc | Avió Rc amb Arduino: per fer funcionar un cotxe Rc | Quadcopter | Drone | Avió RC | Vaixell RC, sempre necessitem un receptor i un transmissor, suposem que per RC QUADCOPTER necessitem un transmissor i un receptor de 6 canals i aquest tipus de TX i RX és massa costós, així que en farem un al nostre
Un sistema d'alarma petit que utilitza una placa compatible amb Arduino súper petit !: 10 passos
Un sistema d'alarma petit que utilitza una placa compatible Arduino súper petit !: Hola, avui farem un petit projecte genial. Construirem un petit dispositiu d’alarma que mesuri la distància entre ell i un objecte al davant. I quan l'objecte passa més enllà d'una distància establerta, el dispositiu us notificarà amb un
Consola de mà amb controladors i sensors sense fils (Arduino MEGA i UNO): 10 passos (amb imatges)
Consola de mà amb controladors i sensors sense fils (Arduino MEGA i UNO): què he fet servir: - Arduino MEGA- 2x Arduino UNO- Adafruit 3.5 " Pantalla tàctil TFT 320x480 HXD8357D- Buzzer- Altaveu 3Ohm 3W- Il·luminació LED de 5 mm- Impressora Ultimaker 2+ amb filament PLA negre- Disparador amb fusta MDF- Pintura esprai negra (per a la fusta) - 3x nRF24
Sistema de semàfors de 4 vies que fa servir 5 Arduinos i 5 mòduls sense fils NRF24L01: 7 passos (amb imatges)
Sistema de semàfors de 4 vies que utilitza 5 mòduls sense fils Arduinos i 5 NRF24L01: fa poc vaig crear un Instructable que detallava un sol parell de semàfors en una placa de taula, i també vaig crear un altre Instructable que mostra el marc bàsic per utilitzar un mòdul sense fils NRF24L01. em va fer pensar! Hi ha força
Introduïu un timbre sense fils en un interruptor d'alarma sense fils o un interruptor d'encesa / apagat: 4 passos
Introduïu un timbre sense fils en un interruptor d'alarma sense fils o en un interruptor d'encès / apagat: recentment he construït un sistema d'alarma i l'he instal·lat a casa. Vaig fer servir interruptors magnètics a les portes i els vaig connectar a través de les golfes: les finestres eren una altra història i el cablejat dur no era una opció. Necessitava una solució sense fils i això és