Table des matières:

Système d'alarme sans fil Arduino utilisant des capteurs existants : 9 étapes (avec photos)
Système d'alarme sans fil Arduino utilisant des capteurs existants : 9 étapes (avec photos)

Vidéo: Système d'alarme sans fil Arduino utilisant des capteurs existants : 9 étapes (avec photos)

Vidéo: Système d'alarme sans fil Arduino utilisant des capteurs existants : 9 étapes (avec photos)
Vidéo: 3 minutes pour comprendre... les objets connectés (IoT) 2024, Juillet
Anonim
Système d'alarme sans fil Arduino utilisant des capteurs existants
Système d'alarme sans fil Arduino utilisant des capteurs existants
Système d'alarme sans fil Arduino utilisant des capteurs existants
Système d'alarme sans fil Arduino utilisant des capteurs existants
Système d'alarme sans fil Arduino utilisant des capteurs existants
Système d'alarme sans fil Arduino utilisant des capteurs existants
Système d'alarme sans fil Arduino utilisant des capteurs existants
Système d'alarme sans fil Arduino utilisant des capteurs existants

Ce projet peut être construit en environ une demi-heure à un coût d'environ 20,00 $ si vous avez des capteurs d'alarme sans fil 433Mhz ou 315Mhz existants.

Il peut également s'agir d'un tout nouveau projet avec des capteurs d'alarme sans fil, tels que des détecteurs de mouvement infrarouges et des commutateurs à lames, disponibles en ligne facilement et à moindre coût. Il suffit de rechercher des capteurs 433Mhz ou 315Mhz qui utilisent le codage PT2262 ou EV1527.

Je suis sûr qu'il y a beaucoup de gens comme moi qui ont acheté un système d'alarme GSM/2G avec des capteurs sans fil et en sont satisfaits, mais lorsque le réseau 2G/GSM a été éteint là où j'habite, je me suis retrouvé avec un système d'alarme que je pouvais ne plus programmer ni même régler l'heure dessus. Un jour en me demandant ce que je pourrais faire pour que mon alarme soit à nouveau fonctionnelle, il m'est venu à l'idée de vérifier si un Arduino pouvait recevoir les signaux des capteurs. Je suis tombé sur un https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ instuctable et après quelques expériences, j'ai déterminé que je pouvais recevoir les signaux de mes capteurs existants. J'ai commencé le processus de construction d'un système d'alarme qui pourrait remplacer mon alarme existante et offrirait également une fonctionnalité accrue. L'un des problèmes avec l'ancienne alarme était de ne jamais savoir exactement lequel des 25 capteurs s'était déclenché. En ajoutant un écran LCD à ma nouvelle version d'alarme, j'obtiens maintenant du texte sur l'écran LCD indiquant exactement quel capteur a été activé. La nouvelle alarme peut toujours être armée manuellement par mes télécommandes sans fil existantes et dispose d'une horloge en temps réel pour lui permettre de s'armer et de se désarmer automatiquement à des heures prédéfinies de la journée.

Fournitures

Voir les notes supplémentaires à la fin pour vous assurer d'utiliser la version correcte de ces pièces.

Arduino Uno ou similaire

Module récepteur 433 ou 315 MHz pour Arduino

Module d'horloge temps réel DS3231 pour Arduino

Module I2C 16x2 LDC pour Arduino

Interrupteurs à lames d'alarme sans fil, détecteurs de mouvement et télécommandes au choix

Buzzer piézo

LED et résistance 220 ohms

Planche à pain (facultatif mais recommandé)

Alimentation appropriée pour Arduino

Fils de cavalier, etc.

PC avec Arduino IDE installé

Connaissance de base d'Arduino

Étape 1: Fournitures

Fournitures
Fournitures
Fournitures
Fournitures
Fournitures
Fournitures

Quelques images ci-dessus des fournitures dont vous aurez besoin pour ce projet

Étape 2: câblez l'Ardunio et les modules comme indiqué dans l'image

Câblez l'Ardunio et les modules comme indiqué dans l'image
Câblez l'Ardunio et les modules comme indiqué dans l'image

Piezo entre la broche 5 de l'Arduino et la terre

LED entre la broche 8 de l'Arduino et à une résistance de 220ohm puis à la terre

Récepteur 433 ou 315 Mhz, VCC à 5V, GND à la terre et l'une des 2 broches de données à la broche 2 de l'Arduino

Module LCD I2C 16X2 VCC à 5V, GND à la terre, broches SCL SDA à SCL SDA de l'Arduino (la broche A5 est SCL, la broche A4 est SDA)

Module DS3231 RTC VCC à 5V, GND à la terre, broches SCL SDA à SCL SDA de l'Arduino (il y a un 2ème jeu situé au-dessus des broches GND et AREF de la plupart des Arduino)

Je sais que certains d'entre vous n'auront pas besoin de plus d'informations que celles-ci et du croquis ci-joint, mais je vais entrer dans les détails pour tous ceux qui souhaitent un peu plus d'aide.

Étape 3: ajouter les bibliothèques nécessaires à l'IDE Arduino

Ajouter les bibliothèques nécessaires à l'IDE Arduino
Ajouter les bibliothèques nécessaires à l'IDE Arduino
Ajouter les bibliothèques nécessaires à l'IDE Arduino
Ajouter les bibliothèques nécessaires à l'IDE Arduino
Ajouter les bibliothèques nécessaires à l'IDE Arduino
Ajouter les bibliothèques nécessaires à l'IDE Arduino

L'Arduino Sketch pour exécuter l'alarme utilise certaines bibliothèques qui ne sont pas déjà installées sur l'IDE Arduino par défaut.

Pour ajouter la bibliothèque RCSwitch à l'IDE Arduino. Ouvrez l'IDE Arduino dans le menu du haut, sélectionnez "Esquisse", puis dans le menu déroulant, sélectionnez "Inclure la bibliothèque" et dans le menu déroulant suivant, sélectionnez "Gérer les bibliothèques". Puis dans la case "Filtrer votre recherche" tapez "RCSW", cliquez ensuite sur installer pour "rc-switch by sui77"

Instructions détaillées sur l'ajout de bibliothèques sur

Pendant que nous y sommes, nous devons également ajouter les bibliothèques appelées Time, TimeAlarms, DS1307RTC et LiquidCrystal_I2C, même procédure que ci-dessus mais en recherchant le nom de chaque nouvelle bibliothèque et en l'installant. Voir les captures d'écran ci-dessus si vous ne savez pas quelles bibliothèques utiliser.

L'horloge temps réel DS3231 est compatible et utilise la bibliothèque DS1307RTC.

Étape 4: Ensuite, nous devons obtenir les codes de vos capteurs

Ensuite, nous devons obtenir les codes de vos capteurs
Ensuite, nous devons obtenir les codes de vos capteurs
Ensuite, nous devons obtenir les codes de vos capteurs
Ensuite, nous devons obtenir les codes de vos capteurs

J'ai fourni le modèle du code Arduino ci-dessous mais vous devrez trouver les valeurs pour chacun de vos capteurs et les coller dans le code.

Il existe de nombreuses informations sur la façon d'obtenir ces codes sur ces deux sites;

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

github.com/sui77/rc-switch/wiki

Cependant voici ma version abrégée;

Pour obtenir les codes que vos capteurs et télécommandes envoient, connectez l'Arduino assemblé à l'étape 1 à un PC via un câble USB et ouvrez l'IDE Arduino. Ensuite, dans l'IDE Arduino, allez dans le menu déroulant "Fichier", puis dans "Exemples", faites défiler la liste des exemples d'esquisses jusqu'à ce que vous trouviez "RCSWITCH", puis sélectionnez l'esquisse "ReceiveDemo_Advanced" et téléchargez-la sur l'Arduino. Une fois l'esquisse téléchargée avec succès, ouvrez le moniteur série de l'IDE Arduino avec celui-ci toujours connecté à votre PC via USB. Déclenchez maintenant le premier des capteurs dont vous souhaitez obtenir le code, la sortie de RCSwitch apparaîtra dans la fenêtre du moniteur série. Pour ce projet, nous recherchons les codes décimaux comme mis en évidence dans la capture d'écran 2. Vous devrez déclencher le capteur plusieurs fois à la recherche de la valeur décimale qui apparaît le plus souvent, parfois il y aura différentes valeurs mélangées avec la vraie valeur, cela est causé par des interférences provenant d'ondes radio aléatoires ou d'autres appareils fonctionnant sur la même fréquence.

Notez le code décimal du capteur à utiliser à l'étape suivante. Répétez l'opération pour tous les capteurs et télécommandes que vous souhaitez utiliser dans le projet, en gardant une trace du code correspondant à quel capteur. Si vous utilisez des télécommandes pour armer et désarmer l'alarme, vous devrez noter les différents codes pour le bouton d'armement et le bouton de désarmement de chaque télécommande.

Étape 5: Modèle de code Arduino

Vous trouverez ci-dessous une copie de mon code Arduino sous forme de fichier.ino appelé Wireless_Alarm. Vous pouvez cliquer dessus et il devrait s'ouvrir dans l'IDE Arduino. Je ne suis pas un programmeur, mon code est assemblé en partie à partir des exemples trouvés dans l'IDE Arduino, il n'est probablement pas particulièrement élégant mais il fonctionne et a été fiable sur une longue période de temps.

N'oubliez pas de réenregistrer le croquis après avoir apporté les modifications pour inclure les codes de vos propres capteurs.

Étape 6: Collez les codes que vous avez obtenus à l'étape 5 dans le modèle Arduino Sketch

Maintenant, les étapes pour personnaliser le code des capteurs et télécommandes que vous utilisez.

Si vous ouvrez le sketch Wireless_Alarm dans votre IDE, vous verrez à la ligne 111.

if (mySwitch.getReceivedValue() == 115166236) //Code du bouton d'armement Fob

Là où dans le code existant, il se lit 115166236, vous devez remplacer ce nombre par le code décimal pour le bouton d'armement de votre télécommande que vous avez enregistré à l'étape 5.

Par exemple, si à l'étape 5 vous obtenez un nombre décimal 1154321, vous modifierez la ligne 111 pour lire maintenant;

if (mySwitch.getReceivedValue() == 1154321) //Code du bouton d'armement Fob

Suivez la même procédure pour la ligne 125.

if (mySwitch.getReceivedValue() == 115166234) //Code du bouton de désarmement Fob

Remplacez 115166234 par le code du bouton de désarmement de votre télécommande que vous avez enregistré à l'étape 5.

Si vous souhaitez utiliser plusieurs télécommandes pour armer et désarmer, copiez et collez les lignes 111 à 136 autant de fois que nécessaire, puis modifiez les valeurs en fonction de vos autres télécommandes, mais il est préférable de commencer avec une télécommande jusqu'à ce que vous soyez sûr de votre modification. le croquis fonctionne.

Passons maintenant au codage des capteurs d'alarme dans le croquis à la ligne 140

if(ledState == HIGH && mySwitch.getReceivedValue() == 1151640) //Action pour l'armoire de bureau de l'expéditeur du signal

Sortez 1151640 et insérez la valeur décimale d'un de vos capteurs d'alarme.

Puis à la ligne 158.

lcd.print(F("Placard de bureau")); // imprimer un message à l'écran LCD pour savoir quel capteur a été activé (et aller chercher le cambrioleur:)

Changez l'armoire de bureau en ce que vous souhaitez voir affiché sur l'écran LCD pour ce capteur. Par exemple, si vous voulez lire kitchendoor, faites en sorte que la ligne ressemble à ceci;

lcd.print(F("Kitchendoor")); // imprimer un message à l'écran LCD pour savoir quel capteur a été activé (et aller chercher le cambrioleur:)

Les noms ne doivent pas dépasser 16 caractères.

Entre la ligne 165 et 187 se trouve un modèle à copier et coller autant de fois que nécessaire sur les lignes directement en dessous de 187. Remplacez le nombre après mySwitch.getReceivedValue() == par la décimale de l'un de vos autres capteurs que vous avez enregistré à l'étape 5 et changez le nom dans le " " dans lcd.print(F("sensornamehere")); au nom que vous voulez donner à votre capteur.

Si vous n'utilisez pas de télécommandes pour armer et désarmer votre alarme, vous pouvez simplement ignorer les lignes 111-136 ou mettre // au début de chacune des lignes indésirables et l'Arduino ne les lira pas.

N'oubliez pas d'enregistrer le fichier après avoir effectué vos modifications.

Étape 7: Téléchargez le.ino modifié sur votre Arduino et testez

Téléchargez le.ino modifié sur votre Arduino et testez
Téléchargez le.ino modifié sur votre Arduino et testez
Téléchargez le.ino modifié sur votre Arduino et testez
Téléchargez le.ino modifié sur votre Arduino et testez
Téléchargez le.ino modifié sur votre Arduino et testez
Téléchargez le.ino modifié sur votre Arduino et testez

Avec l'Arduino toujours connecté à votre PC par USB, téléchargez le croquis sur la carte Arduino. Une fois le téléchargement terminé avec succès, l'écran LCD devrait indiquer « Alarm On Désarmé ». Appuyez sur le bouton d'armement de votre télécommande et l'écran LCD devrait indiquer « Alarm On Armed » et la LED devrait être allumée pour vous faire savoir qu'il est armé, maintenant déclenchez un capteur pendant qu'il est armé, l'écran LCD devrait lire Alarme suivi d'un horodatage et l'emplacement du capteur, le bip doit retentir pendant 2 minutes à moins que vous n'appuyiez sur le bouton de désarmement. Si vous n'obtenez pas ce résultat, revérifiez les codes que vous avez obtenus à l'étape 5 et les modifications que vous avez apportées au code à l'étape précédente, revérifiez également le câblage de tous les composants. Si l'écran LCD ne lit pas du tout, il y a un réglage du contraste à l'arrière du module LCD. Une fois le contraste réglé correctement, si l'écran LCD ne lit toujours pas, essayez de changer l'adresse de l'écran LCD de 0x3f à 0x27 à la ligne 12 du croquis. Dépannage LCD ici Tutoriel LCD I2C

Étape 8: Réglage de l'heure sur le module RTC et modification des heures d'armement et de désarmement

Espérons que votre RTC était déjà réglé avec l'heure correcte, mais sinon ouvrez l'IDE, sélectionnez "Fichier" et dans le menu déroulant, cliquez sur "Exemples", faites défiler jusqu'à "DS1307RTC" et sélectionnez le croquis "SetTime", téléchargez le croquis sur votre Arduino et il réglera l'horloge en temps réel avec l'heure de votre PC. Vous devrez ensuite recharger le sketch Wireless_Alarm sur votre Arduino.

Le Wireless_Alarm.ino que j'ai fourni réglera par défaut l'alarme pour qu'elle s'arme automatiquement à 22h15 tous les soirs et se désarme à 6h00 chaque matin. Pour changer ces heures, modifiez le Sketch aux lignes 71 et 72. L'heure est entre parenthèses après Alarm.alarmRepeat au format HH, MM, SS. changez cela à l'heure qui vous convient.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // Heure de DÉSARMEMENT

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

Donc, pour changer l'heure de désarmement à 9h15 et l'heure d'armement à 17h30, le code ressemblerait à ceci

Alarm.alarmRepeat(9, 15, 0, MorningAlarm); // Heure de DÉSARMEMENT

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

Si vous ne voulez pas que l'alarme s'arme et se désarme automatiquement, placez // devant les 2 lignes et elles ne seront pas utilisées.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // Heure de DÉSARMEMENT

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); //Heure d'armement

La durée pendant laquelle le bip d'alarme retentit peut être modifiée en modifiant la ligne 22

const intervalle long = 120 000; //pour le délai de millis pendant la durée pendant laquelle l'alarme retentit

L'intervalle est en millisecondes, donc 120000 = 120 secondes, changer 120000 à 30000 ferait sonner l'alarme pendant 30 secondes.

Un solénoïde pour faire fonctionner une sirène, une lumière stroboscopique, un avertisseur sonore à haut volume, etc. peut également être câblé à la broche 7 ou à la broche 9 et fonctionnera pendant "l'intervalle" défini ci-dessus. Gardez à l'esprit que la charge maximale d'une broche Arduino ne doit pas dépasser 40 mA.

Étape 9: Notes supplémentaires

Lors de la sélection d'un module récepteur 433 ou 315 MHz pour Arduino, vous devez choisir la fréquence qui correspond aux capteurs d'alarme que vous avez l'intention d'utiliser. Je suggère d'acheter un module livré avec une petite antenne hélicoïdale en spirale pour de meilleures performances, ou une antenne filaire droite de 17,3 mm de long augmente également les performances.

Avec le module LCD 16x2, vous devez utiliser un LCD I2C 4 broches pour utiliser les instructions et le code que je fournis ici, il pourrait être fait avec un LCD standard 16 broches mais cela ne fonctionnera pas avec le câblage ou le code ici.

Les commutateurs à lames d'alarme sans fil, les détecteurs de mouvement et les télécommandes doivent être à 433 Mhz ou 315 Mhz pour correspondre au récepteur que vous avez l'intention d'utiliser et doivent utiliser le codage PT2262 ou EV1527.

L'alarme est extensible et adaptable, j'ai déjà ajouté une carte SD pour enregistrer lorsque les capteurs sont déclenchés, modifié l'écran LCD pour qu'il ne s'allume que lorsqu'un bouton est enfoncé et ajouté une sirène de 100 dB, mais je n'ai pas inclus de détails ici pour garder l'article comme court et simple que possible. J'espère que partager le travail que j'ai fait sur cette alarme sera utile à d'autres.

Heureux de répondre à toutes les questions.

Merci.

Conseillé: