Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Crie um contador de pessoas controlado por um aplicativo Android

Componentes e suprimentos

​​
Arduino UNO
× 1
Breadboard (genérico)
× 2
Resistor de foto
× 3
Módulo Laser
× 3
Buzzer
× 1
Módulo LED RGB
× 1
LED (genérico)
× 3
Resistor 1k ohm
× 3
Resistor 221 ohm
× 3
Bateria
× 1
Fios de jumpers (genérico)
× 1

Aplicativos e serviços online

Arduino IDE
MIT App Inventor

Sobre este projeto





Descrição


Em primeiro lugar, o contador de pessoas é um dispositivo que detecta o número de pessoas que passam por uma entrada. Eu tinha pensado em fazer um contador de pessoas para proteger meu quarto quando eu tive que ir de férias por duas semanas. Além disso, queria usar o contador de pessoas como um alarme que avisa as pessoas que não têm permissão para entrar na sala. Um laser é a melhor opção para contar algo com precisão com um LDR devido à sua natureza de velocidade, então decidi usar lasers com LDRs para os trabalhos de contagem. Há três entradas possíveis no meu quarto (duas portas e uma janela), então usei três lasers e três LDRs. Porém, percebi que preciso controlar remotamente o aparelho se quero escolher entre qual entrada o laser está aberto ou se o alarme está ligado ou não. Por isso adicionei um módulo Bluetooth HC-06 para comunicar ao dispositivo com um aplicativo Android que criei. Além disso, o aplicativo Android exibe o número de pessoas que entram na entrada que você deseja observar.

Para apoiar meus projetos e artigos, você pode visitar meu site aqui :)






Criação de um aplicativo


Existem muitas maneiras diferentes de criar um aplicativo Android, como converter códigos de HTML para Java ou programar o aplicativo com Python. Porém, o MIT App Inventor é a maneira mais fácil devido a sua estrutura de arrastar e soltar quando você deseja fazer um aplicativo android mas não se esqueça que ainda não é compatível com o iOS.

Contador de pessoas! é o nome do aplicativo e inclui duas telas chamadas Tela1 e Tela2.

Tela1

É a tela inicial para continuar para a tela principal, mas em primeiro lugar, a senha definida no MIT App Inventor deve ser inserida corretamente. (A senha padrão que defini é "contador".)

Tela2

É a tela principal e o menu de controle da placa Arduino e o resultado do contador de pessoas enviado pelo Arduino é mostrado nesta tela.

Você pode escolher qual laser está ligado ou se o alarme está aberto ou não, nesta tela além disso você pode ver o resultado do contador de pessoas e configurá-lo para iniciar do zero.






Como fazer um contador de pessoas usando lasers e LDRs


Um laser (amplificação de luz por emissão estimulada de radiação) é um dispositivo que envia basicamente o pacote de luz através de uma linha reta até o alvo. E um LDR (resistor dependente de luz) pode detectar facilmente o aumento na intensidade da luz se o laser for apontado diretamente para si mesmo. Quando existe um obstáculo entre o laser e o LDR, o LDR detecta uma diminuição na intensidade da luz. Portanto, se você pudesse contar cada diminuição na faixa do nível ótimo, teria um contador de pessoas. De acordo com meu experimento com o LDR, a faixa do nível ideal deve estar entre 150 e 350.





Conexões

  • Módulos Uno do Arduino
  • Pino 2 --------- Laser_Module_1
  • Pino 3 -------- Laser_Module_2
  • Pino 4 -------- Laser_Module_3
  • Pin 5 -------- Buzzer
  • Pino 6 -------- Módulo Bluetooth HC-06 (TX)
  • Pino 7 --------- Módulo Bluetooth HC-06 (RX)
  • Pino 8 --------- Control_Led_1
  • Pin 12 --------- Control_Led_2
  • Pin 13 ---------- Control_Led_3
  • Pino 9 ------- RGB_Module (R)
  • Pino 10 ------ RGB_Module (G)
  • Pino 11 ------- RGB_Module (B)
  • AO ------------ LDR_1
  • A1 ------------- LDR_2
  • A2 ------------ LDR_3

Certifique-se de que os lasers estejam direcionados aos LDRs antes de terminar as conexões de todas as peças.

Depois de testar o dispositivo e gravar um vídeo de teste, dividi o dispositivo em três partes para três entradas diferentes. Não tive dúvidas sobre a segurança do meu quarto desde que os usei.


Código

  • PeopleCounter_with_Lasers.ino
PeopleCounter_with_Lasers.ino Arduino
 /////////////////////////////////////////////// // Crie um contador de pessoas com lasers // // em um dispositivo Android // // por Kutluhan Aktar // // /////////////////////////// //////////////////////////// O objetivo do projeto é fazer um contador de pessoas que detecte o número de pessoas que entram na sala usando lasers e LDRs e controlá-lo com um aplicativo Android.//// Conecte a perna de um LDR ao GND com resistor de 1K ohm.//// Certifique-se de que os lasers estão diretamente voltados para os LDRs.//// Se você quiser que o os resultados do contador de pessoas são precisos, defina o nível ideal de LDRs corretamente.////// Conexões://// Arduino Uno // Laser_Module_1 // Pino 2 ------------ ------------ // Laser_Module_2 // Pino 3 ------------------------ // Laser_Module_3 // Pino 4 ------------------------ // Buzzer // Pin 5 ------------------- ----- // Módulo Bluetooth HC-06 // Pino 6 ------------------------ TX // Pino 7 ----- ------------------- RX // Control_Led_1 // Pino 8 ----------------------- - // Control_Led_2 // Pin 12 ------------------------ // Control_Led_3 // Pino 13 ------------------ ------ // RGB_Module // Pino 9 ------------------------ R // Pino 10 -------- ---------------- G // Pino 11 ------------------------ B // LDR_1 / / AO ------------------------ // LDR_2 // A1 ------------------ ------ // LDR_3 // A2 ------------------------ #include  int LaserPin_1 =2; // Definir os pinos dos sensores de laser.int LaserPin_2 =3; int LaserPin_3 =4; int BuzzerPin =5; // Buzzer pin.int Control_RX =6; // Pino RX e TX para a biblioteca SoftWareSerial.int Control_TX =7; int RedPin =9; // Pinos PWM para RGB LED sensor.int GreenPin =10; int BluePin =11; int Control_Led_1 =8; // Defina cada um dos leds como uma marca para o status de cada um dos módulos de laser.int Control_Led_2 =12; int Control_Led_3 =13; int LDR_1 =A0; // Pinos analógicos para LDRs.int LDR_2 =A1; int LDR_3 =A2; int LDR_1_Read; // Defina o valor dos LDRs como variáveis ​​globais.int LDR_2_Read; int LDR_3_Read; int Counter =0; // Defina o valor padrão do contador como zero.volatile boolean Alarm_is_Activated =false; // Escolha se o alarme está ligado ou não.volatile boolean Alarm_Initial =false; volatile boolean Counter_Detect =false; // É uma variável para dar tempo de atraso ao Arduino.SoftwareSerial Control (Control_RX, Control_TX); // Defina os pinos Rx e Tx para se comunicarem com o Módulo Bluetooth.String Name ="Control"; // Nomeie seu módulo e defina a senha para ele.int Password =1111; String Uart ="9600,0,0"; void setup () {Serial.begin (9600); Control.begin (9600); // Inicie o módulo Bluetooth HC-06 para se comunicar. // Change_BluetoothModule_Defaults (); // Você pode ativá-lo se quiser alterar os padrões do módulo Bluetooth. pinMode (LaserPin_1, OUTPUT); pinMode (LaserPin_2, OUTPUT); pinMode (LaserPin_3, OUTPUT); pinMode (RedPin, OUTPUT); pinMode (GreenPin, OUTPUT); pinMode (BluePin, OUTPUT); pinMode (Control_Led_1, OUTPUT); pinMode (Control_Led_2, OUTPUT); pinMode (Control_Led_3, OUTPUT);} void loop () {get_Data_From_LDR (); // Obtenha os dados dos sensores LDR. if (Control.available ()) {// Se o módulo HC-06 Bluetooth estiver disponível, Commands () prosseguiu. char c =Control.read (); Serial.println (c); // Controle os caracteres que são definidos pelo aplicativo usando o terminal. Comandos (c); } Programar alarme(); // Inicialize a função de alarme. Set_Counter (); // Comece o contador de pessoas. } void Commands (char i) {// Escolha quais eventos acontecem quando o caractere específico é enviado do aplicativo para o Arduino. switch (i) {case '1':Control.print (Counter); pausa; caso '2':Alarm_is_Activated =true; pausa; caso '3':Alarm_is_Activated =false; pausa; caso '4':digitalWrite (LaserPin_1, HIGH); digitalWrite (Control_Led_1, HIGH); pausa; caso '5':digitalWrite (LaserPin_1, LOW); digitalWrite (Control_Led_1, LOW); pausa; caso '6':digitalWrite (LaserPin_2, HIGH); digitalWrite (Control_Led_2, HIGH); pausa; caso '7':digitalWrite (LaserPin_2, LOW); digitalWrite (Control_Led_2, LOW); pausa; caso '8':digitalWrite (LaserPin_3, HIGH); digitalWrite (Control_Led_3, HIGH); pausa; caso '9':digitalWrite (LaserPin_3, LOW); digitalWrite (Control_Led_3, LOW); pausa; caso 'r':Contador =0; pausa; }} void get_Data_From_LDR () {// Obtenha os dados dos sensores LDR. LDR_1_Read =analogRead (LDR_1); LDR_2_Read =analogRead (LDR_2); LDR_3_Read =analogRead (LDR_3); } void Set_Counter () {// Define um contador de pessoas. if (LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150) {// Se um movimento detectado. Counter_Detect =true; } else {Counter_Detect =false; } if (Counter_Detect ==true) {Counter =Counter + 1; atraso (500); // Dê algum tempo para obter o número de pessoas que entram na sala com precisão. } if (Counter_Detect ==false) {Counter =Counter; }} void Set_Alarm () {// Define um sistema de alarme ajustável. if (Alarm_is_Activated ==true) {if (LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150) {// Se um movimento for detectado. Alarm_Initial =true; } else {Alarm_Initial =false; } if (Alarm_Initial ==true) {tone (BuzzerPin, 500); Color_Change (255, 0, 0); atraso (50); Color_Change (0, 255, 0); atraso (50); Color_Change (0, 0, 255); atraso (50); Color_Change (255, 255, 0); atraso (50); Color_Change (80, 0, 80); atraso (50); Color_Change (0, 255, 255); atraso (50); Color_Change (255, 255, 255); atraso (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) {// Altere as variáveis ​​do Módulo RGB facilmente. vermelho =255 - vermelho; verde =255 - verde; azul =255 - azul; analogWrite (RedPin, vermelho); analogWrite (GreenPin, verde); analogWrite (BluePin, blue);} void Change_BluetoothModule_Defaults () {// Altere os valores padrão do módulo Bluetooth, quaisquer que sejam os valores que você escolher. Control.print ("AT + NAME"); // Altere o nome. Control.println (Nome); Serial.print ("Nome alterado:"); Serial.println (Nome); atraso (2000); Control.print ("AT + PSWD"); // Altere a senha. Control.println (senha); Serial.print ("A senha foi alterada:"); Serial.println (senha); atraso (2000); Control.print ("AT + UART"); // Altere a taxa de transmissão. Se o módulo Bluetooth for um HC-05, o valor padrão da taxa de transmissão é 38400. Control.println (Uart); Serial.print ("Taxa de transmissão definida:"); Serial.println (Uart); atraso (2000); Serial.println ("Tarefa concluída."); // Você pode ver se a tarefa foi concluída corretamente ou não usando o terminal.} 

Peças personalizadas e gabinetes

O arquivo de código do People Counter! peoplecounter_J375iBnBF8.aiaThe arquivo Apk do People Counter! peoplecounter_uBf7MU4A1c.apk

Esquemas


Processo de manufatura

  1. Ventilador com temperatura controlada
  2. Robô controlado por gestos usando Raspberry Pi
  3. ROBÔ WIFI RASPBERRY PI CONTROLADO PELO TELEFONE INTELIGENTE ANDROID
  4. 3D RGB Arduclock
  5. Brinque com Fire Over Wi-Fi (ESP8266, NeoPixels e aplicativo Android)
  6. Brinquedo controlado pelo Android usando Raspberry Motor Shield
  7. LEDs controlados por Alexa através do Raspberry Pi
  8. MyRiver
  9. Joystick Game
  10. Ideia para o dia dos namorados - Contador de dias passados ​​juntos (foto)