• MUHILHAM • Electronics Hobbyist and Maker
  • Shop
  • Sitemap
  • Portfolio
  • Jasa Custom Project





  • Home IoT Kontrol Lampu Dengan Suara Menggunakan Android Melalui Internet [Speech Recognition]

    Kontrol Lampu Dengan Suara Menggunakan Android Melalui Internet [Speech Recognition]

    MUHAMMAD ILHAM Penulis MUHAMMAD ILHAM


    Pada kesempatan kali ini saya akan membahas sebuah teknologi yang menarik untuk di bahas tentunya, yaitu Internet Of Things atau sering disingkat IoT, merupakan konsep yang bertujuan dengan memanfaatkan koneksi internet diharapkan dapat dihasilkan teknologi yang dapat mempermudah pekerjaan manusia, sederhananya penerapannya sebagai remote kontrol jarak jauh, yang akan dibahas pada artikel kali ini.

    Adapun penerapan IoT yang akan dibahas kali ini adalah menyalakan dan mematikan lampu dengan menggunakan suara dengan memanfaatkan speech recognition yang ada di smartphone android, nantinya alat yang dibuat mampu mengendalikan lampu melalui jarak jauh dengan syarat adanya koneksi internet.

    Masuk ke pembahasan mengenai pengendalian lampu dengan suara dari jarak jauh, adapun komponen yang dibutuhkan untuk membuatnya diataranya, Wemos D1 yang merupakan komponen utama pada project kali ini karena fungsi dari wemos ini sebagai penghubung alat atau perangkat yang akan dikendalikan dengan koneksi internet kelebihan dari wemos ini bisa diprogram dengan menggunakan software Arduino IDE jadi bisa lebih mudah dalam pembuatan program atau codingnya, adapun komponen berikutnya yaitu Relay yang berfungsi sebagai saklar pemutus dan penghubung sumber listrik ke beban lampu.

    Komponen yang digunakan
    • Wemos D1 Mini
    • Module Relay 5V
    • Transistor BC557
    • Resistor 10k
    • Lampu
    • Projectboard
    • Kabel Jumper Secukupnya
    • Smartphone Android
    Berikut ini block diagram sistem

    Sistem pengendalian ini dirancang agar dapat menyalakan dan mematikan lampu menggunakan suara menggunakan android melalui internet, prinsip kerjanya terdapat wemos sebagai penerima perintah dari android dimana perintah dikirim menggunakan koneksi internet, agar wemos dan android dapat bekomunikasi digunakan sebuah web server thingspeak yang dapat menyimpan data yang kirim oleh android yang kemudian wemos akan menerima data yang dikirim oleh android, kemudian data di proses oleh wemos untuk pengendalian relay.

    Rangkaian/Wiring Elektrical

    Membuat channel di web thingspeak

    1. Pergi ke thingspeak.com
    2. Jika belum memiliki akun silahkan buat akun terlebih dahulu jika sudah langsung Sign In saja
    3. Kemudian buatlah Channel baru
    4. Setelah berhasil membuat channel masuk ke Channel setting kemudian tambahkan field
    5. Masuk ke API Keys catat Channel ID dan Read API Keys
    6. Setelah itu masukkan Channel ID dan Read API Keys pada coding arduino kemudian upload coding dan tes dengan aplikasi android, kemudian lihat pada Private View apakah data yang dikirim masuk pada field yang dibuat
    Silahkan copy program ke software Arduino IDE

    /**************************
     Kontrol lampu dengan suara menggunakan android melalui internet
     [Speech Recognition]
     www.muhilham.com
     15/07/2018
    ***********************/
    
    #include 
    #include 
    
    WiFiClient TSpeak_client;
    
    const char* namawifi = "Roy Anak IndiHome"; // nama acces point wifi 
    const char* password = "1234554321"; // password wifi
    unsigned long myChannelNumber = 483487; // isi channel ID anda 
    const char* myReadAPIKey = "Read API Key"; // Isi dengan read api key anda
    const int Lampu1 = D5;
    const int LED = D4;
    
    void setup() {
      Serial.begin(115200);
      pinMode(LED, OUTPUT);
      pinMode(Lampu1, OUTPUT);
      digitalWrite(Lampu1, HIGH);
      digitalWrite(LED, HIGH);
      Serial.println("** SETUP **");
      Serial.println();
      delay(500);
      WIFI_Connect();
      ThingSpeak.begin(TSpeak_client);
    }
    
    void WIFI_Connect() {
      digitalWrite(LED, HIGH);
      WiFi.disconnect();
      WiFi.mode(WIFI_AP_STA);
      WiFi.begin(namawifi, password);
      Serial.println();
      Serial.print("Menghubungkan Dengan ");
      Serial.println(namawifi);
      // wait for connection
      while (WiFi.status() != WL_CONNECTED) {
        delay(250);
        digitalWrite(LED, LOW);
        Serial.print(".");
        delay(250);
        digitalWrite(LED, HIGH);
      }
    
      // Terhubung dengan acces point
      Serial.println();
      Serial.println("-- WIFI TERHUBUNG --");
      Serial.print("IP address: ");
      Serial.println(WiFi.localIP());
      Serial.println();
      digitalWrite(LED, LOW);
    }
    
    void loop() {
    
      if (WiFi.status() != WL_CONNECTED) {
        delay(500);
        ESP.wdtDisable();
        Serial.println("WiFi Terputus, RESET WEMOS !");
        digitalWrite(LED, HIGH);
      }
      else {
    
        int Field1 = ThingSpeak.readIntField(myChannelNumber, 1, myReadAPIKey); // mengambil/membaca data pada filed 1
        Serial.print("Field 1 : ");
        Serial.println(Field1);
    
        if (Field1 == 1) {
          digitalWrite(Lampu, HIGH); 
          Serial.println("LAMPU MATI");
        }
        if (Field1 == 2) {
          digitalWrite(Lampu1, LOW);
          Serial.println("LAMPU NYALA");
        }
      }
    }
    


    Update : Server dengan Google Firebase


    Pembaharuan dengan server Firebase ini membuat respon lebih cepat dibandingkan dengan server Thingspeak yang versi gratis, mungin berbeda juka menggunakan thingpeak yang berbayar. Namun pada server firebase versi spark yang merupakan versi gratis dari firebase menurut saya respon server nya sudah cepet, sama - sama gratis kan kalau saya ya mending pilih yang ini.

    Untuk versi update dengan firebase ini rangkaian yang di gunakan tidak berbeda, hanya saja berbeda di aplikasi android dan program wemos nya saja.

    Membuat database Google Firebase
    • Pergi ke console.firebase.google.com login dengan akun google kamu
    • Kemudian buat project baru dengan memilih Add project
    • Pada panel sebelah kiri, klik Database pilih Realtime Database
    • Buat struktur database seperti berikut


    • Catat FirebaseURL kamu


    • Selain FirebaseURL kita juga butuh Secret Code database, catat juga



    Konfigurasi Aplikasi Android dan Program Wemos
    • Pergi ke ai2.appinventor.mit.edu login dengan akun google kamu
    • Kemudian Import file .aia aplikasi android yang sudah saya buat, dwonload disini



    • Atur Komponen firebase dengan Secret Code dan FirebaseURL yang kamu catat tadi


    • Untuk konfigurasi program wemos atur juga dengan Secret Code dan FirebaseURL yang kamu catat tadi, dan jangan lupa mengatur koneksi WiFi


    Tampilan Aplikasi Android

    Program terbaru dengan Firebase, lengkapi terlebih dahulu library yang digunakan


    /**************************
      Kontrol lampu dengan suara menggunakan android melalui internet
      [Speech Recognition]
      www.muhilham.com
      2018
    ***********************/
     
    #include  // Memasukkan library wemos
    #include  // Memasukkan library database (firebase)
    const char FIREBASE_HOST[] = "smart-lamp-voice-controlled.firebaseio.com"; // domain database firebase
    const char FIREBASE_AUTH[] = "hbt3lUQ4TDyj6CYv4C6uCq19tlVmXe0QbZ7qQghj"; // kode rahasia database (firebase)
    const char WIFI_SSID[] = "NAMA WIFI"; // Nama SSID wifi yang akan dihubungkan dengan alat
    const char WIFI_PASSWORD[] = "PASSWORD WIFI"; // Password wifi yang akan dihubungkan dengan alat
    // WEMOS
    const int Relay = D5; // pin digital yang digunakan untuk mengaktifkan relay
    const int LED = D6; // pin untuk led buitltin wemos
    // NODE MCU
    //const int Relay = 14; // pin digital D5 (untuk mengaktifkan relay)
    //const int LED = 2; // pin digital D4 (led buitltin Node MCU)
    bool lastState = false;
    void setup() { // fungsi program yang dijalankan sekali saat mikrokontroller di beri sumber listrik
      Serial.begin(115200); // baudrate / kecepatan serial monitor
      pinMode(Relay, OUTPUT); // set pin relay(D5) sebagai output
      pinMode(LED, OUTPUT); // set pin LED (D4) sebagai output
      digitalWrite(LED, HIGH); // set pin LED high (3.3 volt) matikan LED
      WiFi.begin(WIFI_SSID, WIFI_PASSWORD); // hubungkan dengan WIFI
      Serial.print("Menghubungkan"); // tampilkan pada serial monitor
      while (WiFi.status() != WL_CONNECTED) { // selagi wifi tidak terhubung jalankan program didalamnya
        Serial.print(".");
        digitalWrite(LED, LOW);  // hidupkan led
        delay(600); // waktu tunda 600 milidetik
        digitalWrite(LED, HIGH); // matikan led
        delay(500); // waktu tunda 500 milidetik
      }
      Serial.println();
      Serial.println("Terhubung");
      digitalWrite(LED, LOW); // hidupkan led
      Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // hubungkan dengan database (firebase)
    }
    void loop() { // program perulangan
      String stateLOAD = Firebase.getString("Relay1"); // ambil data dari database
      if (stateLOAD == "\"off\"" && lastState) { // jika data in = 1 jalankan program dibawah nya
        digitalWrite(Relay, LOW); // non aktifkan relay (matikan lampu)
        digitalWrite(LED, HIGH); // matikan LED builtin
        Serial.println("Relay 1 Off");
        lastState = false;
      } else if (stateLOAD == "\"on\"" && !lastState) { // jika data in = 2 jalankan program dibawah nya
        digitalWrite(Relay, HIGH); // aktifkan relay (hidupkan lampu)
        digitalWrite(LED, LOW); // hidupkan LED builtin
        Serial.println("Relay 1 On");
        lastState = true;
      }
      if (WiFi.status() != WL_CONNECTED) { // jika tidak terputus dari wifi reset wemos
        ESP.restart(); // restart
      }
    }
    


    IoT

    Related Posts

    MUHAMMAD ILHAM

    MUHAMMAD ILHAM

    “ Ikat ilmu dengan menulisnya ”
    ― Ali bin Abi Thalib ―

  • Next Post
    Previous Post

    10 comments

    1. BastiyanApril 7, 2019 at 11:42 AM

      link aplikasinya gan

      ReplyDelete
      Replies
        Reply
    2. jepang1980June 19, 2019 at 7:31 PM

      Mantap

      ReplyDelete
      Replies
        Reply
    3. AdnanJuly 18, 2019 at 10:39 AM

      aplikasinya gak bisa di install gan

      ReplyDelete
      Replies
        Reply
    4. elektrikalrekayasaDecember 13, 2019 at 7:03 AM

      Gan boleh di bagi file aia nya .yg voice recognition.

      ReplyDelete
      Replies
      1. MUHAMMAD ILHAMDecember 13, 2019 at 1:42 PM

        http://ai2.appinventor.mit.edu/#5231309580533760

        Delete
        Replies
          Reply
      2. Reply
    5. UnknownMarch 22, 2020 at 8:59 PM

      bang library database firebasenya itu gimana

      ReplyDelete
      Replies
        Reply
    6. Iswandy YaminAugust 26, 2020 at 7:59 AM

      Bang Boleh Minta File .aia nya?

      ReplyDelete
      Replies
      1. MUHAMMAD ILHAMAugust 26, 2020 at 8:41 AM

        baca posting keseluruhan

        Delete
        Replies
          Reply
      2. Reply
    7. Iswandy YaminAugust 27, 2020 at 9:36 PM

      saya pakai firebase kok prograp error ya?

      ReplyDelete
      Replies
        Reply
    8. Iswandy YaminAugust 27, 2020 at 9:36 PM

      saya pakai firebase kok program error ya?

      exit status 1
      #include expects "FILENAME" or

      muncul itu saat upload program

      ReplyDelete
      Replies
        Reply
    Add comment
    Load more...


    EmoticonEmoticon

    Popular Posts

    • Cara Memperbaiki Kipas Angin Mati Total [Tidak Berputar Sama Sekali]
    • Membuat Mobil Remote Control dengan Arduino [RC Car Control with Bluetooth]
    • Download Cadsoft Eagle Professional 7.2.0 Full
    • Cara Mudah Membuat Layout PCB Dengan Menggunakan Lotion Anti Nyamuk
    • Membuat Gerbang Otomatis [Arduino Controlled Gate Barrier with Ultrasonic Sensor HC-SR04]

    Categories

    Elektronika Arduino Tips dan Trik Robotic Tutorial IoT Software Arduino Tutorial PCB STM32

    Recent Posts

     
    Copyright © MUHILHAM • Electronics Hobbyist and Maker. All Rights Reserved.