Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Maak een mensenteller die wordt beheerd door een Android-app

Componenten en benodigdheden

Arduino UNO
× 1
Broodplank (algemeen)
× 2
Fotoweerstand
× 3
Lasermodule
× 3
Zoemer
× 1
RGB Led-module
× 1
LED (generiek)
× 3
Weerstand 1k ohm
× 3
Weerstand 221 ohm
× 3
Batterij
× 1
Jumperdraden (algemeen)
× 1

Apps en online services

Arduino IDE
MIT App Inventor

Over dit project

Beschrijving

Allereerst is de personenteller een apparaat dat het aantal mensen dat een ingang passeert detecteert. Ik had gedacht dat ik een mensenbalie zou maken om mijn kamer te beveiligen als ik twee weken op vakantie moest. Ook wilde ik de personenteller gebruiken als alarm dat mensen waarschuwt die geen toestemming hebben om de kamer te betreden. Een laser is de beste optie om iets nauwkeurig te tellen met een LDR vanwege de aard van de snelheid, dus besloot ik lasers met LDR's te gebruiken voor de teltaken. Er zijn drie mogelijke toegangen in mijn kamer (twee deuren en één raam), dus ik heb drie lasers en drie LDR's gebruikt. Ik realiseerde me echter dat ik het apparaat op afstand moet bedienen als ik wil kiezen tussen welke laser van de ingang open is en of het alarm aan staat of niet. Zodat ik een HC-06 Bluetooth-module heb toegevoegd om met het apparaat te communiceren met een Android-app die ik heb gemaakt. Bovendien toont de Android-app het aantal mensen dat de ingang binnenkomt die u wilt observeren.

Om mijn projecten en artikelen te ondersteunen, kun je mijn website hier bezoeken :)

Een app maken

Er zijn veel verschillende manieren om een ​​Android-app te maken, zoals het converteren van codes van HTML naar Java of het programmeren van de app met Python. De MIT App Inventor is echter de gemakkelijkste manier vanwege de structuur van slepen en neerzetten wanneer je een Android-app wilt maken, maar vergeet niet dat deze nog niet compatibel is geweest met iOS.

Mensen Tellen! is de naam van de app en bevat twee schermen genaamd Screen1 en Screen2.

Scherm1

Het is het startscherm om door te gaan naar het hoofdscherm, maar eerst moet het wachtwoord dat is ingesteld in de MIT App Inventor correct worden ingevoerd. (Het standaardwachtwoord dat ik heb ingesteld is "teller".)

Scherm2

Het is het hoofdscherm en het menu om het Arduino-bord te besturen en het resultaat van de mensenteller die door Arduino wordt verzonden, wordt op dit scherm weergegeven.

U kunt kiezen welke laser aan staat en of het alarm al dan niet open staat, verder kunt u op dit scherm het resultaat van de personenteller zien en instellen om vanaf nul te beginnen.

Hoe maak je een mensenteller met lasers en LDR's

Een laser (lichtversterking door gestimuleerde emissie van straling) is een apparaat dat het pakket van het licht in feite door de zeer rechte lijn naar het doel stuurt. En een LDR (lichtafhankelijke weerstand) kan de toename van de intensiteit van het licht gemakkelijk detecteren als de laser direct op zichzelf wordt gericht. Wanneer er een obstakel is tussen de laser en de LDR, detecteert de LDR een afname van de intensiteit van het licht. Dus als je elke daling binnen het bereik van het optimale niveau zou kunnen tellen, zou je een mensenteller hebben. Volgens mijn experiment met de LDR moet het bereik van het optimale niveau tussen 150 en 350 liggen.

Verbindingen

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

Zorg ervoor dat de lasers direct naar de LDR's zijn gericht voordat u de verbindingen van alle onderdelen voltooit.

Nadat ik het apparaat had getest en een testvideo had opgenomen, verdeelde ik het apparaat in drie delen voor drie verschillende ingangen. Ik heb geen twijfels gehad over de veiligheid van mijn kamer sinds ik ze heb gebruikt.

Code

  • PeopleCounter_with_Lasers.ino
PeopleCounter_with_Lasers.inoArduino
 /////////////////////////////////////////////// Maak een mensenteller met lasers // // op een Android-apparaat // // door Kutluhan Aktar // // ///////////////////////// //////////////////////// Het doel van het project is om een ​​mensenteller te maken die het aantal mensen dat de kamer binnenkomt detecteert met behulp van lasers en LDR's en bedien het met een Android-app.//// Verbind het ene been van een LDR met de GND met een weerstand van 1K ohm.//// Zorg ervoor dat de lasers rechtstreeks naar de LDR's zijn gericht.//// Als u wilt dat de de resultaten van de personenteller zijn nauwkeurig, stel het optimale niveau van LDR's correct in.////// Connections://// Arduino Uno// Laser_Module_1// Pin 2 ------------ ------------// Laser_Module_2// Pin 3 ------------------------// Laser_Module_3// Pin 4 ------------------------// Zoemer// Pin 5 ------------------- -----// HC-06 Bluetooth-module// Pin 6 ------------------------TX// Pin 7 ----- -------------------RX// Control_Led_1// Pin 8 ----------------------- -// Control_Led_2// Pin 12 ------------------------// Control_Led_3// Pin 13 ------------------ ------// RGB_Module// Pin 9 ------------------------R// Pin 10 -------- ----------------G// Pin 11 ------------------------B// LDR_1/ / AO ------------------------// LDR_2// A1 ------------------ ------// LDR_3// A2 ------------------------ #include int LaserPin_1 =2; // Definieer de pinnen van de lasersensoren.int LaserPin_2 =3;int LaserPin_3 =4;int BuzzerPin =5; // Zoemer pin.int Control_RX =6; // RX- en TX-pin voor de SoftWareSerial-bibliotheek.int Control_TX =7;int RedPin =9; // PWM-pinnen voor RGB LED-sensor.int GreenPin =10;int BluePin =11;int Control_Led_1 =8; // Stel elk van de leds in als een markering voor de status van elk van de lasermodules.int Control_Led_2 =12;int Control_Led_3 =13;int LDR_1 =A0; // Analoge pinnen voor LDRs.int LDR_2 =A1;int LDR_3 =A2;int LDR_1_Read; // Definieer de waarde van LDR's als globale variabelen.int LDR_2_Read;int LDR_3_Read;int Counter =0; // Stel de standaardwaarde van de teller in op zero.volatile boolean Alarm_is_Activated =false; // Kies of het alarm aan staat of niet.vluchtige boolean Alarm_Initial =false;vluchtige boolean Counter_Detect =false; // Het is een variabele om vertragingstijd aan Arduino te geven. SoftwareSerial Control (Control_RX, Control_TX); // Definieer de Rx- en de Tx-pinnen om te communiceren met Bluetooth Module.String Name ="Control"; // Geef uw module een naam en stel het wachtwoord in.int Wachtwoord =1111;String Uart ="9600,0,0";void setup() { Serial.begin(9600); Controle.begin(9600); // Begin de HC-06 Bluetooth-module om te communiceren. // Change_BluetoothModule_Defaults(); // U kunt het activeren als u de standaardinstellingen van de Bluetooth-module wilt wijzigen. pinMode (LaserPin_1, UITGANG); pinMode (LaserPin_2, OUTPUT); pinMode (LaserPin_3, UITGANG); pinMode (RedPin, UITGANG); pinMode (GreenPin, UITGANG); pinMode (BluePin, UITGANG); pinMode(Control_Led_1,OUTPUT); pinMode (Control_Led_2,OUTPUT); pinMode(Control_Led_3,OUTPUT);}void loop() { get_Data_From_LDR(); // Haal de gegevens op van LDR-sensoren. if(Control.available()){ // Als de HC-06 Bluetooth-module beschikbaar is, is Commands() doorgegaan. char c =Controle.lezen(); Serieel.println(c); // Beheer de tekens die door de app zijn ingesteld met behulp van de terminal. Commando's (c); } Zet alarm(); // Initialiseer de alarmfunctie. Set_Counter(); // Begin met de mensenteller. }void Commands (char i){ // Kies welke gebeurtenissen plaatsvinden wanneer het specifieke teken van de app naar Arduino wordt verzonden. switch(i){ case '1' :Control.print(Teller); pauze; geval '2':Alarm_is_Activated =waar; pauze; geval '3':Alarm_is_Activated =false; pauze; geval '4':digitalWrite(LaserPin_1,HIGH); digitalWrite(Control_Led_1,HIGH); pauze; geval '5':digitalWrite(LaserPin_1,LOW); digitalWrite(Control_Led_1,LOW); pauze; geval '6':digitalWrite(LaserPin_2,HIGH); digitalWrite(Control_Led_2,HIGH); pauze; geval '7':digitalWrite(LaserPin_2,LOW); digitalWrite (Control_Led_2,LOW); pauze; geval '8':digitalWrite(LaserPin_3,HIGH); digitalWrite(Control_Led_3,HIGH); pauze; geval '9':digitalWrite(LaserPin_3,LOW); digitalWrite (Control_Led_3,LOW); pauze; geval 'r' :Teller =0; pauze; } }void get_Data_From_LDR(){ // Haal de gegevens op van LDR-sensoren. LDR_1_Read =analoogRead(LDR_1); LDR_2_Read =analoogRead(LDR_2); LDR_3_Read =analoogRead(LDR_3); }void Set_Counter(){ // Stel een personenteller in. if(LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150){ // Als een beweging wordt gedetecteerd. Counter_Detect =waar; } else{ Counter_Detect =false; } if(Counter_Detect ==true){ Teller =Teller + 1; vertraging (500); // Geef wat tijd om het aantal mensen dat de kamer binnenkomt nauwkeurig te krijgen. } if(Counter_Detect ==false){ Teller =Teller; }}void Set_Alarm(){ // Stel een instelbaar alarmsysteem in. if(Alarm_is_Activated ==true){ if(LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150){ // Als een beweging wordt gedetecteerd. Alarm_Initial =waar; } else{ Alarm_Initial =false; } if(Alarm_Initial ==true){ tone(BuzzerPin,500); Color_Change (255, 0, 0); vertraging (50); Color_Change (0, 255, 0); vertraging (50); Color_Change (0, 0, 255); vertraging (50); Color_Change (255, 255, 0); vertraging (50); Color_Change (80, 0, 80); vertraging (50); Color_Change (0, 255, 255); vertraging (50); Color_Change (255, 255, 255); vertraging (50); } } if(Alarm_is_Activated ==false || Alarm_Initial ==false ){ noTone(BuzzerPin); Color_Change (0, 0, 0); }}void Color_Change (int rood, int groen, int blauw){ // Wijzig de RGB-modulevariabelen eenvoudig. rood =255 - rood; groen =255 - groen; blauw =255 - blauw; analogWrite(RedPin, rood); analogWrite(GreenPin, groen); analogWrite(BluePin, blue);}void Change_BluetoothModule_Defaults(){ // Wijzig de standaardwaarden van de Bluetooth-module, ongeacht de waarden die u kiest. Control.print("AT+NAAM"); // Verander de naam. Controle.println(Naam); Serial.print("Naam is gewijzigd:"); Serial.println(Naam); vertraging (2000); Controle.print("AT+PSWD"); // Verander het wachtwoord. Control.println(Wachtwoord); Serial.print("Wachtwoord is gewijzigd:"); Serial.println(Wachtwoord); vertraging (2000); Controle.print("AT+UART"); // Wijzig de baudrate. Als de Bluetooth-module een HC-05 is, is de standaardwaarde van de baudrate 38400. Control.println(Uart); Serial.print("Baudsnelheid is ingesteld:"); Serial.println(Uart); vertraging (2000); Serial.println("Taak is voltooid."); // U kunt zien of de taak correct is voltooid of niet met behulp van de terminal.}

Aangepaste onderdelen en behuizingen

Het codebestand van People Counter! peoplecounter_J375iBnBF8.aiaHet APK-bestand van People Counter! peoplecounter_uBf7MU4A1c.apk

Schema's


Productieproces

  1. Temperatuurgestuurde ventilator
  2. Gebaargestuurde robot met Raspberry Pi
  3. RASPBERRY PI WIFI ROBOT GECONTROLEERD VANAF ANDROID SMART PHONE
  4. 3D RGB Arduclock
  5. Speel met Fire via wifi (ESP8266, NeoPixels en Android-app)
  6. Android bestuurd speelgoed met Raspberry Motor Shield
  7. Alexa gestuurde LED's via Raspberry Pi
  8. MyRiver
  9. Joystick-spel
  10. Een PM2.5 en PM 10 detectorontwerp voor Windows 10 UWP-app
  11. Idee voor Valentijnsdag - Teller van samen doorgebrachte dagen (foto)