Comment faire un simple système d`alarme arduino
mouvement détecter, puis effrayer le diable hors d`un intrus avec des sons d`alarme aigus et feux clignotants. Est-ce que le plaisir du son? Bien sûr, il le fait. Voilà l`objectif du projet Arduino d`aujourd`hui, adapté pour les débutants. Nous allons écrire à partir de zéro et de test que nous progressons pour que vous puissiez nous espérons obtenir une idée de la façon dont il est tout se fait plutôt que d`installer simplement quelque chose que je l`ai déjà fait.
Contenu
Avertissement: cela ne va pas protéger réellement votre maison. Il pourrait donner à votre sœur une mauvaise surprise quand elle se faufile dans votre chambre bien.
Tu auras besoin:
Video: Comment faire une alarme de porte simple
- un Arduino
- Ultrasons capteur « ping », j`utilise HC-SR04 Un PIR serait mieux, mais ce sont cher. Un capteur de ping peut être placé subrepticement dans une porte et servent toujours le même travail de base, et est seulement 5 $
- Un avertisseur sonore piézo
- bande de lumière LED, avec le même câblage, nous avons utilisé retour dans ce projet.
juste continuer à construire sur le dernier bloc - Comme vous le câblage jusqu`à ce projet, ne retirez pas tout à chaque fois. Au moment où vous rendre à « codage Le système d`alarme » vous devriez avoir tous les morceaux câblés, section, regardant quelque chose comme ceci:
Video: Alarme domestique sur base ARDUINO
Lumières clignotantes
Utilisez le schéma de câblage de ce projet pour raccorder votre LED Strip- ne changent pas les broches, car nous avons besoin de sortie PWM. Utilisation ce code pour tester rapidement votre câblage. Si tout va bien, vous devriez avoir ceci:Construisez votre propre éclairage dynamique ambiante pour un Media CenterConstruisez votre propre éclairage dynamique ambiante pour un Media CenterSi vous regardez beaucoup de films sur votre PC ou le centre des médias, je suis sûr que vous avez fait face l`éclairage dilemma- vous éteignez complètement toutes les lumières? Avez-vous les garder à plein régime? Ou...Lire la suite
Video: Alarme arduino !
Distance du capteur
Sur le module SR04, vous trouverez 4 broches. CCV et GND aller au rail + 5V et la masse respectivement- TRIGONOMÉTRIE est la broche utilisée pour envoyer un signal sonar, mis cela sur 6 broches ÉCHO est utilisé pour lire le signal de retour (et donc calculer la distance) - mettre ceci sur 7.
Pour rendre les choses incroyablement simple, il y a une bibliothèque que nous pouvons utiliser appelé NewPing. Téléchargez et dans votre Arduino de Bibliothèque dossier et redémarrez l`IDE avant de continuer. Test en utilisant ce code- ouvrir le moniteur série et assurez-vous que la vitesse est réglée sur 115200 bauds. Avec un peu de chance, vous devriez voir des mesures de distance étant vous renvoyer à une vitesse assez élevée. Vous trouverez peut-être un écart de 1 ou 2 centimètres, mais cela est très bien. Essayez d`exécuter votre main devant le capteur, en le déplaçant vers le haut et vers le bas pour observer les lectures changeantes.
Le code devrait être assez simple à comprendre. Il y a quelques déclaration de broches pertinentes au début, y compris une distance maximale - cela peut varier en fonction du capteur exact que vous avez, mais aussi longtemps que vous êtes en mesure d`obtenir moins de 1 lectures de compteurs avec précision, vous devriez être bien.
Dans la boucle de cette application test, nous utilisons le ping () fonction pour envoyer un ping sonar, récupérer une valeur en millisecondes de combien de temps il a fallu pour la valeur de retour. Pour comprendre cela, nous utilisons les bibliothèques NewPing construites en constante US_ROUNDTRIP_CM, qui définit combien microsecondes qu`il faut pour aller d`un seul centimètre. Il y a aussi un retard de 50 ms entre les pings pour éviter de surcharger le capteur.
alarme piezo
Le capteur de cristal Piezo est un avertisseur sonore simple et pas cher, et nous pouvons utiliser une broche PWM 3 pour faire des tons différents. Connectez un fil à la broche 3, l`un sur le rail au sol - il n`a pas d`importance.
Utilisez ce code pour tester.
La seule façon de tuer l`alarme plutôt désagréable et fort est de tirer les bouchons. Le code est un peu complexe à expliquer, mais il consiste à utiliser des ondes sinusoïdales pour générer un son distinctif. Tweak les numéros à jouer avec des tons différents.
Codage Le système d`alarme
Maintenant que nous avons toutes les pièces de ce puzzle, nous allons les combiner ensemble.
Allez-y et faire une nouvelle esquisse, appelée Alarme. Commencez en combinant toutes les variables et les définitions des broches que nous avons dans les exemples de test jusqu`à présent.
#comprendre // Sélectionner les broches PWM capable doivent être utilisés.#définir RED_PIN 10#définir GREEN_PIN 11#définir BLUE_PIN 9#définir TRIGGER_PIN 6 // broches Arduino lié à la goupille de détente sur le capteur à ultrasons.#définir ECHO_PIN 7 // broches Arduino relié à la broche d`écho sur le capteur à ultrasons.#définir MAX_DISTANCE 100 // La distance maximale que nous voulons PING (en centimètres).#définir ALARME 3flotte Sinval-int toneVal-
Commencez par écrire une base installer() fonction - nous ne traitons les lumières pour l`instant. J`ai ajouté un deuxième retard 5 avant que la boucle principale commence à nous donner un peu de temps pour sortir de la voie si nécessaire.
vide installer(){// définir pinModes pour bande RGBpinMode(RED_PIN,SORTIE)-pinMode(BLUE_PIN,SORTIE)-pinMode(GREEN_PIN,SORTIE)-// lumières resetanalogWrite(RED_PIN,0)-analogWrite(BLUE_PIN,0)-analogWrite(RED_PIN,0)-retard(5000)-}
Utilisons une fonction d`assistance qui nous permet d`écrire rapidement une seule valeur RVB vers les lumières.
// fonction d`aide qui nous permet d`envoyer une couleur dans une commandevide Couleur (non signé carboniser rouge, non signé carboniser vert, non signé carboniser bleu) // la fonction de génération de couleur{analogWrite(RED_PIN, rouge)-analogWrite(BLUE_PIN, bleu)-analogWrite(GREEN_PIN, vert)-}
Enfin, notre boucle pour l`instant va consister en un simple flash couleur entre le rouge et le jaune (ou, tout ce que vous voulez que votre alarme soit - il suffit de changer les valeurs RVB).
vide boucle(){Couleur(255,0,0)- //rougeretard(100)-Couleur(255,255,0)- //jauneretard(100)-}
Téléchargez et testez que pour vous assurer que vous êtes sur la bonne voie.
Maintenant, nous allons intégrer le capteur de distance pour déclencher ces lumières seulement quand quelque chose vient à l`intérieur, par exemple, 50 cm (un peu moins de la largeur d`un cadre de porte). Nous avons déjà défini les broches de droite et la bibliothèque importé, donc avant installer() fonction ajoutez la ligne suivante à instancier:
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE)- // configuration NewPing des broches et la distance maximale.
En dessous de cela, ajoutez une variable pour stocker l`état de l`alarme déclenchée ou non, par défaut faux, bien sûr.
booléen déclenché = faux-
Ajouter une ligne à la installer() fonction afin que nous puissions contrôler la sortie de série et le débogage.
En série.commencer(115200)- // Ouvrez le moniteur de série à 115200 bauds pour voir les résultats de ping.
Ensuite, nous allons renommer la boucle de courant à alarme() - c`est ce qui sera appelé si l`alarme a été déclenchée.
vide alarme(){Couleur(255,0,0)- //rougeretard(100)-Couleur(255,255,0)- // yelowretard(100)-}
Maintenant, créez un nouveau boucle() fonction, celle dans laquelle nous récupérons un nouveau ping, lire les résultats, et déclencher l`alarme si quelque chose est détecté dans la plage de mètres.
vide boucle(){si(déclenché == vrai){alarme()-}autre{retard(50)-// Attendre 50 ms entre pings (environ 20 pings / sec). 29ms devrait être le délai le plus court entre pings.non signé int nous = sonar.ping()- // Envoyer ping, obtenir du temps de ping en microsecondes (uS).non signé int distance = nous / US_ROUNDTRIP_CM-En série.println(distance)-si(distance lt; 100){déclenché = vrai-}}}
Permettez-moi de vous expliquer brièvement le code:
- Commencez par vérifier si l`alarme a été déclenchée, et le cas échéant, déclencher la fonction d`alarme (juste clignoter les lumières au moment).
- Si ce n`est pas encore déclenché, obtenir la lecture actuelle du capteur.
- Si le capteur est en train de lire lt; 100 cm, quelque chose a rembourré le faisceau (ajuster cette valeur s`il déclenche trop tôt pour vous, évidemment).
Donnez-lui un essai maintenant, avant d`ajouter le buzzer piézo ennuyeux.
Video: TRONIK AVENTUR N°69 - CREER SON PREMIER SON - ALARME ELECTRONIQUE POUR LES NULS
Travail? Génial. Maintenant, nous allons ajouter que buzzer arrière. Ajouter pinMode au installer() routine.
pinMode(ALARME, SORTIE)-
Ensuite, ajoutez la boucle de l`avertisseur sonore piézo à la fonction d`alarme ():
pour (int X=0- Xlt;180- X++) {// convertir des degrés en radians alors obtenir une valeur de péchéSinval = (péché(X*(3,1412/180)))-// générer une fréquence de la valeur de sintoneVal = 2000+(int(Sinval*1000))-Ton(ALARME, toneVal)-}
Si vous essayez de compiler à ce stade, vous allez courir dans une erreur - je l`ai laissé cela dans délibérément afin que vous puissiez voir des problèmes communs. Dans ce cas, les deux NewPing et d`une bibliothèque de tonalité standard utilisent les mêmes interruptions - ils sont en conflit au fond, et il n`y a pas beaucoup que vous pouvez faire pour y remédier. Oh cher.
Pas de soucis cependant. Il est un problème commun, et quelqu`un a une solution déjà - télécharger et ajouter ce NewTone dans votre dossier Bibliothèques Arduino. Réglez le début de votre programme pour inclure ceci:
#comprendre
Et ajuster la ligne:
Ton(ALARME, toneVal)-
à
NewTone(ALARME, toneVal)-
au lieu.
C`est tout. Réglez votre réveil dans la porte de votre chambre pour la prochaine infortunée serait-cambrioleur.
Ou, un chien simplet, qui semblait complètement imperturbable par l`alarme.
Ayant des problèmes avec le code? Voici l`application complète. Si vous obtenez des erreurs aléatoires, essayez de les coller ci-dessous et je vais voir si je peux aider.