ALAT PENGHITUNG PENGUNJUNG 1 PINTU OTOMATIS BERBASIS IOT

 


Kelompok B7 :

Dhimas Aji Setya Nugraha 3.32.20.1.08

Dito Arif Hermawan 3.32.20.1.10

Latar Belakang

Pada masa pandemi COVID-19, pemerintah negara Indonesia menetapkan suatu peraturan baru yang berlaku yaitu pembatasan pengunjung pada perkuliahan tatap muka dimana pengunjung seperti mahasiwa atau dosen yang hadir hanya boleh sekitar 50%-nya saja. Maka dari itu, dalam Tugas Besar Mikrokontroller ini kami akan membahas tentang sistem penghitung jumlah pengunjung otomatis pada satu pintu untuk masuk dan keluar menggunakan sensor Ultrasonik dan berbasis IoT (Internet of Things). 

Komponen Masukan

  • Ultrasonik
Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu.

Komponen Pemroses

  • NodeMCU ESP8266
NodeMCU adalah sebuah board elektronik yang berbasis chip ESP8266 dengan kemampuan menjalankan fungsi mikrokontroler dan juga koneksi internet (WiFi). 

Komponen Luaran

  • Bel
Bel adalah sebuah komponen elektronika yang dapat menghasilkan getaran suara berupa gelombang bunyi. Bel akan menghasilkan getaran suara ketika diberikan sejumlah tegangan listrik dengan taraf tertentu sesuai dengan spesifikasi bentuk dan ukuran buzzer elektronika itu sendiri. Pada umumnya, bel ini sering digunakan sebagai alarm karena penggunaannya yang cukup mudah yaitu dengan memberikan tegangan input maka bel elektronika akan menghasilkan getaran suara berupa gelombang bunyi yang dapat didengar manusia.
  • Blynk
BLYNK adalah platform untuk aplikasi OS Mobile (iOS dan Android) yang bertujuan untuk kendali module Arduino, Raspberry Pi, ESP8266, WEMOS D1, dan module sejenisnya melalui Internet. Aplikasi ini merupakan wadah kreatifitas untuk membuat antarmuka grafis untuk proyek yang akan diimplementasikan hanya dengan metode drag and drop widget.
Diagram Blok


Diagram Alir


Diagram Pengawatan


Diagram Skematik


Dokumentasi Alat


Cara Kerja Alat
    • Ketika sensor ultrasonik 1 membaca dahulu sebagai indikator ada orang masuk kemudian data akan disimpan sampai orang tersebut terbaca oleh sensor ultrasonik 2, setelah sensor 2 membaca maka akan menambah jumlah pengunjung masuk dan menambah jumlah pengunjung dalam ruangan. Kemudian data tersebut akan dikirim ke Blynk yang menampilkan jumlah pengunjung masuk, jumlah pengunjung keluar, dan jumlah pengunjung dalam ruangan.
    • Ketika sensor ultrasonik 2 membaca dahulu sebagai indikator ada orang keluar kemudian data akan disimpan sampai orang tersebut terbaca oleh sensor ultrasonik 1, setelah sensor 1 membaca maka akan menambah jumlah pengunjung keluar dan mengurangi jumlah pengunjung dalam ruangan. Kemudian data tersebut akan dikirim ke Blynk yang menampilkan jumlah pengunjung masuk, jumlah pengunjung keluar, dan jumlah pengunjung dalam ruangan.
    • Ketika pengunjung dalam ruangan telah mencapai batas maksimal yang telah ditentukan yaitu 5 maka bel akan menyala, serta di aplikasi Blynk akan muncul notifikasi pengunjung penuh. 
    • Ketika data pengunjung masuk berjumlah 5 ,pengunjung keluar berjumlah 5, dan jumlah pengunjung dalam ruangan berjumlah 0, maka data tersebut akan direset ke data awal yaitu 0.
    Program

    /* =================================================================================
     Pemrogram      : Kelompok EK-3B /7
      1. 08-Dhimas Aji Setya Nugraha      NIM:3.32.20.1.08
      2. 10-Dito Arif Hermawan                NIM:3.32.20.1.10

    Tgl.Praktikum  : Rabu, 14 Desember 2022
    ====================================================================================
      program alat penghitung pengunjung otomatis berbasis IoT
    ------------------------------------------------------------------------------------
    Komponen masukan:
    - Sensor Ultrasonik HC SR-04
    Komponen pemroses:
    - NodeMCU ESP8266
    Komponen Luaran :
    - Bel
    - Blynk 
    ================================================================================= */

    #include <NewPing.h>                              //library ultrasonic
    #include <Blynk.h>
    #include <ESP8266WiFi.h>
    #include <BlynkSimpleEsp8266.h>   

    int trigger_s1 = 12;                                    //trig sensor1=D6
    int trigger_s2 = 2;                                      //trig sensor2=D4
    int echo_s1 = 14;                                       //echo sensor1=D5
    int echo_s2 = 5;                                         //echo sensor2=D1
    int bel = 16;                                               //pin bel=D0

    int jumlah = 0;                                           //variabel untuk jumlah pengunjung
    int masuk = 0;                                            //variabel untuk pengunjung masuk
    int keluar = 0;                                            //variabel untuk pengunjung keluar

    NewPing sensor1(trigger_s1, echo_s1);
    NewPing sensor2(trigger_s2, echo_s2);

    char auth[] = "9Pa500ApQJRipmynYRjm8brppq324SVe";
    char ssid[] = "Dhimsxtya";
    char pass[] = "dhimsxtya";

    void setup()
    {
      Serial.begin(115200); 
      Blynk.begin(auth, ssid, pass);
      pinMode(bel, OUTPUT);
    }

    void loop() {
      kembali:
      delay(1000); 
      Blynk.run();
      int jarak1 = sensor1.ping_cm();                        //baca sensor1
      int jarak2 = sensor2.ping_cm();                        //baca sensor2
      Serial.print("Jarak1: ");
      Serial.print(jarak1); 
      Serial.println("cm");
      Serial.print("Jarak2: ");
      Serial.print(jarak2); 
      Serial.println("cm");
      Serial.print(jumlah);
      Serial.print(masuk);
      Serial.print(keluar);

      if (jarak1<6 && jarak2>6 && jarak1!=0)                 //jika sensor1 ada orang
      {
        do //do while untuk mengunci
        {
      int jarak1 = sensor1.ping_cm();
      int jarak2 = sensor2.ping_cm();
      Serial.print("Jarak(+)1: ");
      Serial.print(jarak1); 
      Serial.println("cm");
      Serial.print("Jarak(+)2: ");
      Serial.print(jarak2); 
      Serial.println("cm");
      Serial.print(jumlah);
      Serial.print(masuk);
      Serial.print(keluar);
           
           if (jarak2<4 && jarak1>=4 && jarak2!=0)
           {
            jumlah++;
            masuk=masuk+1;
            goto kembali;                                                             //kembali ke awal program loop
           }
        }
        while (jarak2>6);
      }
      
      else if(jarak2<6 && jarak1>6 && jarak2!=0)             //jika sensor2 ada orang
      {
        do
        {
      int jarak1 = sensor1.ping_cm();
      int jarak2 = sensor2.ping_cm();
      Serial.print("Jarak(-)1: ");
      Serial.print(jarak1); 
      Serial.println("cm");
      Serial.print("Jarak(-)2: ");
      Serial.print(jarak2); 
      Serial.println("cm");
      Serial.print(jumlah);
      Serial.print(masuk);
      Serial.print(keluar);
      
           if (jarak1<4 && jarak2>=4 && jarak1!=0)
           {
            jumlah--;
            keluar=keluar+1;
            goto kembali;                                                               //kembali ke awal program loop
           }
        }
        while (jarak1>6);
      }
      
     if(jumlah>=5) {
      jumlah=5;
      masuk=5;
      keluar=0;
      digitalWrite(bel, HIGH);
      delay(100);
      digitalWrite(bel, LOW);
      delay(100);
      Blynk.notify("PENGUNJUNG PENUH");
     }
     
     else if(jumlah<5) {
      digitalWrite(bel, LOW);
     }
     
     if(jumlah<=0) {
      jumlah=0;
      masuk=0;
      keluar=0;
     }

      Blynk.virtualWrite(V1, masuk);
      Blynk.virtualWrite(V2, keluar);
      Blynk.virtualWrite(V3, jumlah);
    }

               Powerpoint | Program Arduino


    Video Demonstrasi Alat



    Komentar