Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Réveil qui vous fait vraiment sortir du lit le matin

Composants et fournitures

Arduino Nano Every
J'utiliserai le Nano Every pour l'assemblage final. Mais vous pouvez également utiliser à peu près n'importe quel autre Arduino (au début, j'utilise un Mega2560).
× 1
Module d'horloge
× 1
HC-SR501
C'est le capteur de mouvement
× 1
Sonnerie
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Parce qu'il est parfois très difficile de se lever le matin, j'ai décidé de faire un réveil, qui vous fait vraiment sortir du lit. L'idée est d'utiliser un capteur de mouvement pour que le réveil sache si vous êtes retourné dans votre lit après avoir appuyé sur le bouton snooze. Si tel est le cas, l'alarme se déclenchera à nouveau. Sinon si vous êtes resté debout assez longtemps (par exemple 2 minutes) le réveil ne sonnera plus. Pendant ce temps, vous devez être approximativement devant le capteur (à quelques mètres près) où vous pourriez déjà commencer votre routine matinale.

Assemblage

Pour ce projet, nous avons besoin d'un module d'horloge, d'un capteur de mouvement, d'un buzzer, d'un petit bouton et d'un Arduino.

Maintenant, tout doit être câblé :

  • la broche négative du buzzer --> GND
  • la broche de buzzer positive --> D11
  • bouton broche --> GND
  • l'autre broche du bouton --> D9
  • capteur de mouvement VCC --> 5V
  • sortie du capteur de mouvement --> D7
  • capteur de mouvement GND --> GND
  • module d'horloge GND --> GND
  • module d'horloge VCC --> 5V
  • module d'horloge SDA --> SDA (broche 20 pour le Mega2560)
  • module d'horloge SCL --> SCL (broche 21 pour le Mega2560)

Après le câblage comme indiqué sur les schémas :

Code

Vous devez d'abord télécharger le fichier ZIP à partir de la section code. Il s'agit de la bibliothèque du module d'horloge. Si vous avez des difficultés à ajouter le fichier à votre bibliothèque, vous pouvez suivre les instructions qui se trouvent également dans la section code.

Vous pouvez maintenant télécharger le code à partir de la section du logiciel. Juste après avoir téléchargé le code, vous devez commenter la ligne :

clock.setDateTime(__DATE__, __TIME__); 

Cette ligne est dans la fonction de configuration.

Maintenant, vous devez directement re-télécharger le code.

Si vous ne le commentez pas, l'heure du module d'horloge sera réinitialisée à l'heure du dernier téléchargement à chaque fois que vous réinitialiserez le tableau.

Après cela, vous pouvez régler l'heure à laquelle l'alarme doit se déclencher. Vous pouvez régler l'heure du jour et les minutes :

//---------------------------------------int set_hour =6;int set_minute =55;//--------------------------------------

Maintenant, l'alarme sonnera tous les jours à cette heure. Il serait également possible de modifier le code, afin que vous puissiez avoir un horaire différent pour le week-end ou d'autres jours.

Maintenant, si vous allumez le réveil, il attendra l'heure réglée. Ensuite, la fonction alarm() sera exécutée. Au début, il commencera à émettre un bip jusqu'à ce que vous appuyiez sur le bouton snooze. Après cela, le détecteur de mouvement regarde s'il y a une personne devant lui. Il faut être devant le capteur pendant un certain temps et il faut aussi bouger un peu pour que le capteur de mouvement se déclenche. Si vous restez suffisamment longtemps dans le champ de vision du capteur de mouvement, un bref signal sonore vous avertira que l'alarme est désormais désactivée pour la journée et qu'elle attendra le lendemain matin.

Cependant, si vous vous recouchez pendant le temps après avoir appuyé sur le bouton, l'alarme se déclenchera et toute la procédure recommencera. Ainsi, ce réveil vous permet de ne pas simplement éteindre l'alarme et retourner vous coucher. J'espère qu'après le temps où vous vous êtes tenu devant le capteur, vous êtes suffisamment réveillé pour ne plus vous recoucher.

Dans cette ligne, vous pouvez régler le temps (en minutes) pendant lequel vous devez être devant le capteur :

if(abs(dt.minute - minute)>=1){ //définir la période de temps où vous devez //être dans 

Réglage du capteur

Le détecteur de mouvement aura besoin de quelques ajustements afin de fonctionner correctement pour ce réveil. Nous devons d'abord placer le cavalier de sélection de déclencheur au bon endroit. Il doit être en mode de déclenchement répétable !

Maintenant, vous devez également régler la temporisation et la sensibilité. Pour moi, cela fonctionnait mieux lorsque je réglais la sensibilité au maximum et le délai un peu au-dessus du minimum. Le délai détermine combien de temps après la dernière détection d'une personne la sortie est élevée. Si le délai est trop court, il est alors très difficile d'empêcher l'alarme de se déclencher à nouveau car le capteur ne vous détectera pas toujours. Par contre si le délai est trop long alors l'alarme ne le remarquera pas si vous vous recouchez.

Maintenant, nous le rendons compact

Après quelques tests, nous sommes prêts à rendre le réveil plus compact. Pour cela, j'utilise un Arduino Nano Every mais vous pouvez également utiliser à peu près n'importe quelle autre carte Arduino pour cela.

Nous commençons par souder le tout selon le deuxième schéma (c'est fondamentalement le même qu'avant mais sans la maquette).

Après avoir testé si tout fonctionne toujours, nous pouvons construire un boîtier pour le réveil. J'ai décidé de fabriquer le boîtier en bois de balsa de 3 mm car il est très facile à travailler. Voici quelques photos du processus de construction du boîtier. Les dimensions de mon boîtier sont de 55 mm x 35 mm x 40 mm.

J'ai fait un gros trou pour le capteur de mouvement et aussi une fente pour le câble micro USB et une ouverture pour le haut-parleur.

Le réveil terminé :

Code

  • Code Arduino Réveil
  • Bibliothèque d'horloges
Code Arduino RéveilArduino
#include #include DS3231 clock;RTCDateTime dt;int button =9;int pirPin =7; // Entrée pour HC-S501int pirValue ; // Emplacement pour stocker la valeur PIR lue//--------------------------------------int set_hour =7;int set_minute =0;//-----------------------------------------configuration void () { horloge.begin(); pinMode(bouton, INPUT_PULLUP); pinMode(LED_BUILTIN, SORTIE); //horloge.setDateTime(__DATE__, __TIME__); // !! APRÈS LE PREMIER TÉLÉCHARGEMENT, VOUS DEVEZ COMMENTER CETTE LIGNE. SINON VOUS AUREZ UN MAUVAISE MOMENT !! pinMode(pirPin, INPUT);}void alarm(int minute){ bool button_pressed =false ; bool éveillé =faux; mouvement booléen =faux ; while(!button_pressed){ ​​//l'alarme est activée tant que le bouton n'est pas enfoncé pendant(int i =0; i <4; i++){ tone(11, 523, 100); retard (100); ton (11, 784, 50); for(int i =0; i <20; i++){ if(digitalRead(button) ==LOW){ button_pressed =true; éveillé =vrai; dt =horloge.getDateTime(); minute =dt.minute; } retard (65); } } } dt =clock.getDateTime(); minute =dt.minute; while(éveillé){ mouvement =faux; dt =horloge.getDateTime(); for(int i =0; i <30; i++){ if(digitalRead(pirPin)){movement =true;} } digitalWrite(LED_BUILTIN, mouvement); if(!pirValue){ delay(5000); for(int i =0; i <40; i++){ if(digitalRead(pirPin)){movement =true;} } if(!movement){ alarm(minute); //si aucun mouvement n'est détecté pendant trop longtemps, l'alarme se réinitialise } } if(abs(dt.minute - minute)>=1){ //définit la période pendant laquelle vous devez être devant la tonalité du capteur (11, 698 , 50); retard (100); ton (11, 698, 50); digitalWrite(LED_BUILTIN, 0); éveillé =faux ; } retard (100); }} boucle vide() { dt =clock.getDateTime(); if(set_minute ==dt.minute &&set_hour ==dt.hour){ alarm(set_minute); } retard (10000);}
Bibliothèque d'horlogesArduino
Il s'agit d'un fichier zip pour la bibliothèque DS3231. Vous devez le télécharger et l'ajouter à vos bibliothèques comme suit :
ouvrez Arduino --> allez dans "Sketch" -> "Include Library" -> "Add .ZIP Library" --> allez dans le fichier zip et cliquez sur ok
Pas d'aperçu (téléchargement uniquement).

Schémas

J'ai oublié de tracer une connexion à VCC et GND sur la maquette. Il vous suffit donc de connecter 5V sur l'Arduino au rail positif et GND sur l'Arduino au rail négatif.

Processus de fabrication

  1. Le chapeau de troll qui changera votre perception de votre voiture
  2. Réveil simple avec DS1302 RTC
  3. La formation Industrie 4.0 de SICK vous permet de démarrer avec IO-Link sur l'API
  4. Facteurs qui affectent le succès et la sécurité du processus de poinçonnage
  5. Facteurs clés qui affectent les résultats du processus de meulage de surface
  6. Un tour CNC est peut-être la seule machine dont vous avez besoin !
  7. L'équipement d'usinage horizontal dont vous pourriez avoir besoin
  8. Vous voulez le meilleur type de ravitailleur de barres courtes ?
  9. Les principales raisons pour lesquelles vous avez besoin d'un usinage ennuyeux