Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Erstellen eines Personenzählers, der von einer Android-App gesteuert wird

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Breadboard (generisch)
× 2
Fotowiderstand
× 3
Lasermodul
× 3
Summer
× 1
RGB-LED-Modul
× 1
LED (generisch)
× 3
Widerstand 1k Ohm
× 3
Widerstand 221 Ohm
× 3
Batterie
× 1
Jumper (generisch)
× 1

Apps und Onlinedienste

Arduino-IDE
MIT App Inventor

Über dieses Projekt

Beschreibung

Zunächst einmal ist der Personenzähler ein Gerät, das die Anzahl der Personen erfasst, die einen Eingang passieren. Ich hatte mir gedacht, dass ich einen Personenzähler machen sollte, um mein Zimmer zu sichern, wenn ich für zwei Wochen in den Urlaub musste. Außerdem wollte ich den Personenzähler als Alarm verwenden, der Personen warnt, die keine Berechtigung zum Betreten des Raumes haben. Ein Laser ist aufgrund seiner Geschwindigkeit die beste Option, um etwas mit einem LDR genau zu zählen, daher habe ich mich entschieden, Laser mit LDRs für die Zählaufgaben zu verwenden. Es gibt drei mögliche Eingänge in meinem Zimmer (zwei Türen und ein Fenster), also habe ich drei Laser und drei LDRs verwendet. Ich habe jedoch festgestellt, dass ich das Gerät aus der Ferne steuern muss, wenn ich wählen möchte, welcher Eingang der Laser geöffnet hat oder ob der Alarm an ist oder nicht. Damit habe ich ein HC-06 Bluetooth-Modul hinzugefügt, um mit einer von mir erstellten Android-App mit dem Gerät zu kommunizieren. Darüber hinaus zeigt die Android-App die Anzahl der Personen an, die den Eingang betreten, den Sie beobachten möchten.

Um meine Projekte und Artikel zu unterstützen, kannst du meine Website hier besuchen :)

App erstellen

Es gibt viele verschiedene Möglichkeiten, eine Android-App zu erstellen, z. B. Codes von HTML nach Java zu konvertieren oder die App mit Python zu programmieren. Der MIT App Inventor ist jedoch aufgrund seiner Drag-and-Drop-Struktur der einfachste Weg, wenn Sie eine Android-App erstellen möchten, aber vergessen Sie nicht, dass sie noch nicht mit iOS kompatibel ist.

Personenzähler! ist der Name der App und enthält zwei Bildschirme namens Screen1 und Screen2.

Bildschirm1

Es ist der Startbildschirm, um zum Hauptbildschirm zu gelangen, aber zuerst muss das Passwort, das in der MIT App Inventor festgelegt wurde, korrekt eingegeben werden. (Das von mir eingestellte Standardpasswort ist "counter".)

Bildschirm2

Es ist der Hauptbildschirm und das Menü zur Steuerung des Arduino-Boards und das Ergebnis des von Arduino gesendeten Personenzählers wird auf diesem Bildschirm angezeigt.

Sie können wählen, welcher Laser eingeschaltet ist oder ob der Alarm geöffnet ist oder nicht, auf diesem Bildschirm können Sie außerdem das Ergebnis des Personenzählers sehen und auf Null setzen.

So erstellen Sie einen Personenzähler mit Lasern und LDRs

Ein Laser (Lichtverstärkung durch stimulierte Emission von Strahlung) ist im Grunde ein Gerät, das das Paket des Lichts durch die sehr gerade Linie zum Ziel schickt. Und ein LDR (lichtabhängiger Widerstand) kann die Zunahme der Lichtintensität leicht erkennen, wenn der Laser direkt auf sich selbst gerichtet ist. Wenn sich zwischen Laser und LDR ein Hindernis befindet, erkennt der LDR eine Abnahme der Lichtintensität. Wenn Sie also jede Abnahme im Bereich des optimalen Niveaus zählen könnten, hätten Sie einen Personenzähler. Nach meinem Experiment mit dem LDR muss der Bereich des optimalen Pegels zwischen 150 und 350 liegen.

Verbindungen

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

Stellen Sie sicher, dass die Laser direkt auf die LDRs gerichtet sind, bevor Sie alle Verbindungen der Teile herstellen.

Nachdem ich das Gerät getestet und ein Testvideo aufgenommen habe, habe ich das Gerät in drei Teile für drei verschiedene Eingänge geteilt. Ich hatte keine Zweifel an der Sicherheit meines Zimmers, seit ich sie benutzt habe.

Code

  • PeopleCounter_with_Lasers.ino
PeopleCounter_with_Lasers.inoArduino
 //////////////////////////////////////////// // Erstellen Sie einen Personenzähler mit Lasern // // auf einem Android-Gerät // // von Kutluhan Aktar // // ///////////////////////// //////////////////////// Ziel des Projekts ist es, einen Personenzähler zu erstellen, der die Anzahl der Personen, die den Raum betreten, mithilfe von Lasern und LDRs erkennt und steuere es mit einer Android-App.//// Verbinden Sie das eine Bein eines LDR mit dem GND mit 1K Ohm Widerstand.//// Stellen Sie sicher, dass die Laser direkt auf die LDRs gerichtet sind.//// Wenn Sie möchten, dass die Die Ergebnisse des Personenzählers sind genau, bitte stellen Sie den optimalen Pegel der LDRs richtig ein. ////// Connections://// Arduino Uno// Laser_Module_1// Pin 2 ------------ ------------// Laser_Module_2// Pin 3 ------------------------- // Laser_Module_3// Pin 4 ---------------------------------- // Summer // Pin 5 ------------------- -----// HC-06 Bluetooth Modul// 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; // Definiere die Pins der Lasersensoren.int LaserPin_2 =3;int LaserPin_3 =4;int BuzzerPin =5; // Summer pin.int Control_RX =6; // RX- und TX-Pin für die SoftWareSerial-Bibliothek.int Control_TX =7;int RedPin =9; // PWM-Pins für RGB-LED-Sensor.int GreenPin =10;int BluePin =11;int Control_Led_1 =8; // Setzen Sie jede der LEDs als Markierung für den Status jedes der Lasermodule.int Control_Led_2 =12;int Control_Led_3 =13;int LDR_1 =A0; // Analoge Pins für LDRs.int LDR_2 =A1;int LDR_3 =A2;int LDR_1_Read; // Definiere den Wert von LDRs als globale Variablen.int LDR_2_Read;int LDR_3_Read;int Counter =0; // Setzen Sie den Standardwert des Zählers als zero.volatile boolean Alarm_is_Activated =false; // Wählen Sie, ob der Alarm an ist oder nicht.volatile boolean Alarm_Initial =false;volatile boolean Counter_Detect =false; // Es ist eine Variable, um Arduino.SoftwareSerial Control (Control_RX, Control_TX) eine Verzögerungszeit zu geben; // Definieren Sie die Rx- und Tx-Pins für die Kommunikation mit Bluetooth Module.String Name ="Control"; // Benennen Sie Ihr Modul und setzen Sie das Passwort für it.int Password =1111;String Uart ="9600,0,0";void setup () { Serial.begin (9600); Control.begin(9600); // Beginnen Sie mit dem HC-06 Bluetooth-Modul, um zu kommunizieren. // Change_BluetoothModule_Defaults(); // Sie können es aktivieren, wenn Sie die Voreinstellungen des Bluetooth-Moduls ändern möchten. pinMode (LaserPin_1, AUSGANG); pinMode (LaserPin_2, OUTPUT); pinMode (LaserPin_3, AUSGANG); pinMode (RedPin, AUSGANG); pinMode (GreenPin, AUSGANG); pinMode (BluePin, AUSGANG); pinMode (Control_Led_1, OUTPUT); pinMode (Control_Led_2, OUTPUT); pinMode(Control_Led_3,OUTPUT);}void loop() { get_Data_From_LDR(); // Holen Sie sich die Daten von LDR-Sensoren. if(Control.available()){// Wenn das HC-06 Bluetooth-Modul verfügbar ist, wurde Commands() fortgesetzt. Zeichen c =Control.read(); Serial.println(c); // Steuern Sie die Zeichen, die von der App gesetzt werden, mit dem Terminal. Befehle (c); } Wecker stellen(); // Initialisieren Sie die Alarmfunktion. Set_Counter(); // Starten Sie den Personenzähler. }void Commands(char i){ // Wählen Sie aus, welche Ereignisse passieren, wenn das bestimmte Zeichen von der App an Arduino gesendet wird. Schalter (i) {Fall '1':Control.print (Zähler); brechen; Fall '2':Alarm_is_Activated =true; brechen; Fall '3':Alarm_is_Activated =false; brechen; Fall '4':digitalWrite(LaserPin_1,HIGH); digitalWrite (Control_Led_1, HOCH); brechen; Fall '5':digitalWrite(LaserPin_1,LOW); digitalWrite(Control_Led_1,LOW); brechen; Fall '6':digitalWrite(LaserPin_2,HIGH); digitalWrite (Control_Led_2, HOCH); brechen; Fall '7':digitalWrite (LaserPin_2,LOW); digitalWrite (Control_Led_2, LOW); brechen; Fall '8':digitalWrite(LaserPin_3,HIGH); digitalWrite (Control_Led_3, HOCH); brechen; Fall '9':digitalWrite(LaserPin_3,LOW); digitalWrite (Control_Led_3, LOW); brechen; Fall 'r':Zähler =0; brechen; } }void get_Data_From_LDR(){ // Holen Sie sich die Daten von LDR-Sensoren. LDR_1_Read =analogRead (LDR_1); LDR_2_Read =analogRead (LDR_2); LDR_3_Read =analogRead (LDR_3); }void Set_Counter(){ // Setze einen Personenzähler. if(LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150){ // Wenn eine Bewegung erkannt wird. Counter_Detect =wahr; } else{ Counter_Detect =false; } if(Counter_Detect ==true){ Counter =Counter + 1; Verzögerung (500); // Geben Sie etwas Zeit, um die genaue Anzahl der Personen zu ermitteln, die den Raum betreten. } if(Counter_Detect ==false){ Counter =Counter; }}void Set_Alarm(){ // Setze ein einstellbares Alarmsystem. if(Alarm_is_Activated ==true){ if(LDR_1_Read <150 || LDR_2_Read <150 || LDR_3_Read <150){ // Wenn eine Bewegung erkannt wird. Alarm_Initial =wahr; } else{Alarm_Initial =false; } if (Alarm_Initial ==true) { Ton (BuzzerPin, 500); Color_Change (255, 0, 0); Verzögerung (50); Color_Change (0, 255, 0); Verzögerung (50); Color_Change (0, 0, 255); Verzögerung (50); Farbänderung (255, 255, 0); Verzögerung (50); Color_Change (80, 0, 80); Verzögerung (50); Color_Change (0, 255, 255); Verzögerung (50); Color_Change (255, 255, 255); Verzögerung (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){ // Ändern Sie die RGB-Modulvariablen einfach. rot =255 - rot; grün =255 - grün; blau =255 - blau; analogWrite (RedPin, rot); analogWrite (GreenPin, grün); analogWrite(BluePin, blue);}void Change_BluetoothModule_Defaults(){ // Ändern Sie die Standardwerte des Bluetooth-Moduls nach Ihren Wünschen. Control.print("AT+NAME"); // Namen ändern. Control.println(Name); Serial.print("Name wurde geändert:"); Serial.println (Name); Verzögerung (2000); Control.print("AT+PSWD"); // Änder das Passwort. Control.println(Passwort); Serial.print("Passwort wurde geändert:"); Serial.println (Passwort); Verzögerung (2000); Control.print("AT+UART"); // Baudrate ändern. Wenn das Bluetooth-Modul ein HC-05 ist, ist der Standardwert der Baudrate 38400. Control.println(Uart); Serial.print("Baudrate ist eingestellt:"); Serial.println (Uart); Verzögerung (2000); Serial.println("Aufgabe ist abgeschlossen."); // Sie können am Terminal sehen, ob die Aufgabe korrekt ausgeführt wurde oder nicht.}

Kundenspezifische Teile und Gehäuse

Die Codedatei von People Counter! peoplecounter_J375iBnBF8.aiaDie Apk-Datei von People Counter! peoplecounter_uBf7MU4A1c.apk

Schaltpläne


Herstellungsprozess

  1. Temperaturgesteuerter Lüfter
  2. Gestengesteuerter Roboter mit Raspberry Pi
  3. RASPBERRY PI WIFI-ROBOTER, KONTROLLIERT VON ANDROID SMART PHONE
  4. 3D RGB Arduclock
  5. Spielen Sie mit Feuer über WLAN (ESP8266, NeoPixels und Android-App)
  6. Android-gesteuertes Spielzeug mit Raspberry Motor Shield
  7. Alexa-gesteuerte LEDs über Raspberry Pi
  8. MyRiver
  9. Joystick-Spiel
  10. Valentinstag-Idee – Zusammen verbrachte Tage Counter (Foto)