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

Créer un compteur de personnes contrôlé par une application Android

Composants et fournitures

Arduino UNO
× 1
Planche à pain (générique)
× 2
Résistance photo
× 3
Module Laser
× 3
Sonnerie
× 1
Module LED RVB
× 1
LED (générique)
× 3
Résistance 1k ohm
× 3
Résistance 221 ohm
× 3
Batterie
× 1
Câbles de raccordement (générique)
× 1

Applications et services en ligne

Arduino IDE
MIT App Inventor

À propos de ce projet

Descriptif

Tout d'abord, le compteur de personnes est un appareil qui détecte le nombre de personnes traversant une entrée. J'avais pensé à faire un comptoir de personnes pour sécuriser ma chambre alors que je devais partir en vacances pendant deux semaines. Aussi, je voulais utiliser le compteur de personnes comme une alarme qui avertit les personnes qui n'ont pas la permission d'entrer dans la pièce. Un laser est la meilleure option pour compter quelque chose avec précision avec un LDR en raison de sa nature de vitesse, j'ai donc décidé d'utiliser des lasers avec des LDR pour les travaux de comptage. Il y a trois entrées possibles dans ma chambre (deux portes et une fenêtre) j'ai donc utilisé trois lasers et trois LDR. Cependant, j'ai réalisé que je devais contrôler l'appareil à distance si je voulais choisir entre quel laser d'entrée est ouvert ou si l'alarme est activée ou non. J'ai donc ajouté un module Bluetooth HC-06 pour communiquer avec l'appareil avec une application Android que j'ai créée. De plus, l'application Android affiche le nombre de personnes qui entrent dans l'entrée que vous souhaitez observer.

Pour soutenir mes projets et articles, vous pouvez visiter mon site ici :)

Création d'une application

Il existe de nombreuses façons de créer une application Android, telles que la conversion de codes HTML en Java ou la programmation de l'application avec Python. Cependant, le MIT App Inventor est le moyen le plus simple en raison de sa structure de glisser-déposer lorsque vous souhaitez créer une application Android mais n'oubliez pas qu'elle n'est pas encore compatible avec iOS.

Compteur de personnes ! est le nom de l'application et comprend deux écrans nommés Screen1 et Screen2.

Écran 1

Il s'agit de l'écran d'accueil pour continuer vers l'écran principal, mais tout d'abord, le mot de passe défini dans MIT App Inventor doit être entré correctement. (Le mot de passe par défaut que j'ai défini est "compteur".)

Écran2

C'est l'écran principal et le menu pour contrôler la carte Arduino et le résultat du compteur de personnes qui est envoyé par Arduino est affiché sur cet écran.

Vous pouvez choisir quel laser est allumé ou si l'alarme est ouverte ou non, sur cet écran, vous pouvez en outre voir le résultat du compteur de personnes et le régler pour qu'il reparte de zéro.

Comment faire un compteur de personnes en utilisant des lasers et des LDR

Un laser (amplification de la lumière par émission stimulée de rayonnement) est un appareil qui envoie le paquet de lumière à travers la ligne très droite vers la cible essentiellement. Et une LDR (résistance dépendante de la lumière) peut facilement détecter l'augmentation de l'intensité de la lumière si le laser est pointé directement sur lui-même. Lorsqu'il y a un obstacle entre le laser et le LDR, le LDR détecte une diminution de l'intensité de la lumière. Donc, si vous pouviez compter chaque diminution dans la plage du niveau optimal, vous auriez un compteur de personnes. D'après mon expérience avec le LDR, la plage du niveau optimal doit se situer entre 150 et 350.

Connexions

  • Arduino Uno-Modules
  • Broche 2 ---------Laser_Module_1
  • Broche 3 -------- Laser_Module_2
  • Broche 4 -------- Laser_Module_3
  • Broche 5 -------- Sonnerie
  • Broche 6 -------- Module Bluetooth HC-06 (TX)
  • Broche 7 ---------Module Bluetooth HC-06 (RX)
  • Broche 8 ---------Control_Led_1
  • Broche 12 ---------Control_Led_2
  • Broche 13 ----------Control_Led_3
  • Broche 9 ------- RGB_Module (R)
  • Broche 10 ------ RGB_Module (G)
  • Broche 11 ------- RGB_Module (B)
  • AO------------LDR_1
  • A1-------------LDR_2
  • A2------------LDR_3

Assurez-vous que les lasers sont directement dirigés vers les LDR avant de terminer les connexions de toutes les pièces.

Après avoir testé l'appareil et enregistré une vidéo de test, j'ai divisé l'appareil en trois parties pour trois entrées différentes. Je n'ai pas eu de doutes sur la sécurité de ma chambre depuis que je les ai utilisés.

Code

  • PeopleCounter_with_Lasers.ino
PeopleCounter_with_Lasers.inoArduino
//////////////////////////////////////////////////////// // Créer un compteur de personnes avec des lasers // // sur un appareil Android // // par Kutluhan Aktar // // /////////////////////// /////////////////////// Le but du projet est de faire un compteur de personnes qui détecte le nombre de personnes qui entrent dans la pièce à l'aide de lasers et de LDR et contrôlez-le avec une application Android. //// Connectez la jambe d'un LDR au GND avec une résistance de 1K ohm. //// Assurez-vous que les lasers sont directement dirigés vers les LDR. //// Si vous voulez que le les résultats du compteur de personnes sont précis, veuillez définir correctement le niveau optimal des LDR.////// Connexions://// Arduino Uno// Laser_Module_1// Pin 2 ------------ ------------// Module_Laser_2// Broche 3 ------------------------// Module_Laser_3// Broche 4 ------------------------// Avertisseur// Broche 5 ------------------- -----// Module Bluetooth HC-06// Broche 6 ------------------------TX// Broche 7 ----- -------------------RX// Control_Led_1// Broche 8 ----------------------- -// Control_Led_2// Pin 12 -------------------------// Control_Led_3// Broche 13 ------------------ ------// RGB_Module// Broche 9 ------------------------R// Broche 10 -------- --G// Broche 11 ------------------------B// LDR_1/ / AO -----------------------// LDR_2// A1 ------------------ ------// LDR_3// A2 ------------------------ #include int LaserPin_1 =2; // Définit les pins des capteurs laser.int LaserPin_2 =3;int LaserPin_3 =4;int BuzzerPin =5; // Buzzer pin.int Control_RX =6; // Broche RX et TX pour la bibliothèque SoftWareSerial.int Control_TX =7;int RedPin =9; // Broches PWM pour capteur LED RVB.int GreenPin =10;int BluePin =11;int Control_Led_1 =8; // Définir chacun des led comme marque pour l'état de chacun des modules laser.int Control_Led_2 =12;int Control_Led_3 =13;int LDR_1 =A0; // Broches analogiques pour LDRs.int LDR_2 =A1;int LDR_3 =A2;int LDR_1_Read; // Définir la valeur des LDR en tant que variables globales.int LDR_2_Read;int LDR_3_Read;int Counter =0; // Définir la valeur par défaut du compteur comme zero.volatile boolean Alarm_is_Activated =false; // Choisissez si l'alarme est activée ou non.volatile boolean Alarm_Initial =false;volatile boolean Counter_Detect =false; // C'est une variable pour donner un délai à Arduino.SoftwareSerial Control (Control_RX, Control_TX); // Définir les broches Rx et Tx pour communiquer avec le module Bluetooth.String Name ="Control"; // Nommez votre module et définissez le mot de passe pour it.int Password =1111;String Uart ="9600,0,0";void setup() { Serial.begin(9600); Contrôle.begin(9600); // Lancer le module Bluetooth HC-06 pour communiquer. // Change_BluetoothModule_Defaults(); // Vous pouvez l'activer si vous souhaitez modifier les valeurs par défaut du module Bluetooth. pinMode (LaserPin_1, SORTIE); pinMode(LaserPin_2,OUTPUT); pinMode(LaserPin_3,OUTPUT); pinMode(RedPin,SORTIE); pinMode(GreenPin,SORTIE); pinMode (BluePin, SORTIE); pinMode(Control_Led_1,OUTPUT); pinMode(Control_Led_2,OUTPUT); pinMode(Control_Led_3,OUTPUT);}void loop() { get_Data_From_LDR(); // Obtenir les données des capteurs LDR. if(Control.available()){ // Si le module Bluetooth HC-06 est disponible, Commands() a continué. char c =Control.read(); Serial.println(c); // Contrôle les caractères définis par l'application à l'aide du terminal. Commandes (c) ; } Régler l'alarme(); // Initialise la fonction d'alarme. Set_Counter(); // Commencer le compteur de personnes. }void Commands(char i){ // Choisissez les événements qui se produisent lorsque le caractère spécifique est envoyé de l'application à Arduino. switch(i){ case '1' :Control.print(Counter); Pause; case '2' :Alarm_is_Activated =true ; Pause; case '3' :Alarm_is_Activated =false; Pause; case '4' :digitalWrite(LaserPin_1,HIGH); digitalWrite(Control_Led_1,HIGH); Pause; cas '5' :digitalWrite(LaserPin_1,LOW); digitalWrite(Control_Led_1,LOW); Pause; cas '6' :digitalWrite(LaserPin_2,HIGH); digitalWrite(Control_Led_2,HIGH); Pause; cas '7' :digitalWrite(LaserPin_2,LOW); digitalWrite(Control_Led_2,LOW); Pause; cas '8' :digitalWrite(LaserPin_3,HIGH); digitalWrite(Control_Led_3,HIGH); Pause; cas '9' :digitalWrite(LaserPin_3,LOW); digitalWrite(Control_Led_3,LOW); Pause; cas 'r' :Compteur =0; Pause; } }void get_Data_From_LDR(){ // Récupère les données des capteurs LDR. LDR_1_Read =analogRead(LDR_1); LDR_2_Read =analogRead(LDR_2) ; LDR_3_Read =analogRead(LDR_3) ; }void Set_Counter(){ // Définit un compteur de personnes. if(LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150){ // Si un mouvement est détecté. Counter_Detect =vrai ; } else{ Counter_Detect =false; } if(Counter_Detect ==true){ Counter =Counter + 1; retard (500); // Donnez un peu de temps pour obtenir le nombre de personnes qui entrent dans la salle avec précision. } if(Counter_Detect ==false){ Counter =Counter; }}void Set_Alarm(){ // Définit un système d'alarme réglable. if(Alarm_is_Activated ==true){ if(LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150){ // Si un mouvement est détecté. Alarm_Initial =vrai ; } else{ Alarm_Initial =false; } if(Alarm_Initial ==true){ tone(BuzzerPin,500); Color_Change(255, 0, 0); retard (50); Color_Change (0, 255, 0); retard (50); Color_Change (0, 0, 255); retard (50); Color_Change(255, 255, 0); retard (50); Color_Change(80, 0, 80); retard (50); Color_Change (0, 255, 255); retard (50); Color_Change(255, 255, 255); retard (50); } } if(Alarm_is_Activated ==false || Alarm_Initial ==false ){ noTone(BuzzerPin); Color_Change(0, 0, 0); }}void Color_Change(int red, int green, int blue){ // Modifiez facilement les variables du module RVB. rouge =255 - rouge ; vert =255 - vert ; bleu =255 - bleu ; analogWrite(RedPin, rouge); analogWrite(GreenPin, vert); analogWrite(BluePin, blue);}void Change_BluetoothModule_Defaults(){ // Modifiez les valeurs par défaut du module Bluetooth quelles que soient les valeurs que vous choisissez. Control.print("AT+NOM"); // Changer le nom. Control.println(Nom); Serial.print("Le nom a été modifié :"); Serial.println(Nom); retard (2000); Control.print("AT+PSWD"); // Changer le mot de passe. Control.println(Mot de passe); Serial.print("Le mot de passe a été modifié :"); Serial.println (mot de passe); retard (2000); Control.print("AT+UART"); // Changer le débit en bauds. Si le module Bluetooth est un HC-05, la valeur par défaut du débit en bauds est 38400. Control.println(Uart); Serial.print("Le débit en bauds est défini :"); Serial.println(Uart); retard (2000); Serial.println("La tâche est terminée."); // Vous pouvez voir si la tâche est terminée correctement ou non à l'aide du terminal.}

Pièces et boîtiers personnalisés

Le fichier de code de People Counter ! peoplecounter_J375iBnBF8.aiaLe fichier Apk de People Counter ! peoplecounter_uBf7MU4A1c.apk

Schémas


Processus de fabrication

  1. Ventilateur à température contrôlée
  2. Robot à commande gestuelle utilisant Raspberry Pi
  3. ROBOT WIFI RASPBERRY PI CONTRLÉ À PARTIR D'UN SMARTPHONE ANDROID
  4. Ardulock 3D RVB
  5. Jouer avec Fire via Wi-Fi (ESP8266, NeoPixels et application Android)
  6. Jouet contrôlé par Android utilisant un bouclier de moteur Raspberry
  7. LED contrôlées par Alexa via Raspberry Pi
  8. MyRiver
  9. Idée pour la Saint-Valentin - Compteur de jours passés ensemble (Photo)