Rabu, 07 April 2021

INTERNET OF THINGS ( IOT ) : SMART HOME GOOGLE ASSISTANT

 

MATA KULIAH

Arsitektur dan Organisasi Komputer

 

Dosen Pengampu

Aditya Prapanca, S.T., M.Kom.

 

Di Susun Oleh :

 Nizar Alamsyah P. N               (20050974031)

 Orin Novita Sari                      (20050974039)

 Mirna Milasari                         (20050974043)

 M. Iksanul Baigofik                 (20050974049)

 Chayani Suci Romasage           (20050974067)

 

 

Kami kelompok 1 dari kelas PTI A 2020 akan memaparkan konsep materi UAS Arsitektur dan Organisasi Komputer yang berjudul “IOT SMART HOME GOOGLE ASSISTANT”. Kami memilih projek ini karena kami ingin membatasi penyebaran virus ditengah pandemi seperti sekarang ini serta, kami juga mengkolaborasikannya dengan alat listrik berteknologi digital makadari itu, projek ini tidak perlu disentuh. Namun meskipun begitu projek ini mampu melakukan fungsi dengan sebagaimana mestinya. Jadi, projek ini akan sangat membantu penggunannya.

      Sebelum membahas lebih lanjut kita perlu mengetahui terlebih dahulu apa itu IoT. IoT atau Internet of Things adalah sebuah konsep yang bertujuan untuk memperluas manfaat dan konekvitas internet yang tersambung secara terus menerus. Jadi, secara sederhananya, IoT merupakan pemanfaatan internet untuk segala hal yang bertujuan untuk mempermudah pekerjaan manusia. Hal ini seperti projek yang telah kami buat yaitu Jordi.

      Jordi merupakan sebuah perangkat IoT yang dilengkapi oleh dua buah relay dan juga satu port untuk sensor analog. Perangkat ini juga bisa diprogram ulang oleh pengguannya sesuai dengan keperluan, melalui port micro USB yang telah terpasang di PCB. Sebelum mulai membahas lebih dalam bagaimana kami dapat membuat berbagai macam projek IoT dengan sebuah module Jordi ini, mari kita mulai untuk membedah design dari alat tersebut terlebih dahulu.

 

 

Skematik Projek IoT Jordi

 


Gambar 1. Blok Diagram Jordi

 

Dari gambar blok diagram diatas, dapat kita pecah menjadi beberapa bagian yaitu :

 

1.    USB dan Rangkaian USB TTL

    Rangkaian ini bertugas untuk menterjemahkan komunikasi antara komputer dengan mikrokontroler melalui port USB. Karena mikrokontroler yang digunakan dalam project ini adalah ESP12E / ESP12F dan berkomunikasi secara serial, maka kami memerlukan rangkaian konverter USB TTL untuk bisa saling berkomunikasi antara dua perangkat komputer dan microkontroler. Rangkaian ini bisa disebut juga dengan Rangkaian USB Serial.

    

Gambar 2. Rangkaian USB TTL


Dari gambar diatas komponen utama dari USB TTL atau USB Serial adalah Sebuah IC CH340. IC ini yang bertugas menterjemahkan bahasa komunikasi dari komputer menuju ke mikrokontroler dan begitupula sebalik nya. Untuk dapat membuat IC ini bekerja, perlu dipasangkan crystal dengan frekwensi 12MHz sebagai oscilator nya.


2.    Regulator Tegangan 5V


    Dalam projek ini kami menggunakan sebuah regolator yang dapat menurunkan tegangan input menjadi 5V untuk menyalakan rangkaian module relay serta rangkaian minimum sistem ESP12E / ESP12F. Komponen yang digunakan adalah sebuah IC 7805 untuk memberikan arus maksimal sebesar 200mA.
Gambar 3. Regulator DC 5V


3.    Minimum Sistem ESP12E / ESP12F

    Rangkaian ini merupakan inti dari projek IoT kami. Karena dari rangkaian minimum sistem ini yang nantinya bertugas untuk mengontrol dan mengolah informasi yang didapat, serta juga mengirimkan balik data hasil olahan.

    Chip ESP12E / ESP12F tidak bisa berdiri sendiri walaupun sudah kami berikan tegangan kerja sebesar 3,3V. Melainkan chip ini masih memerlukan komponen tambahan seperti beberapa resistor yang terhubung ke pin tertentu untuk mengaktifkan rangkaian tersebut. Jika tidak dipasangkan resistor pada jalur yang benar, chip tidak akan bekerja atau mungkin akan bekerja namun dengan mode lain. Misalkan bekerja pada mode flash atau program ulang.


Gambar 4. Minimum Sistem ESP12E / ESP12F


4.    Rangkaian Detektor Sensor Analog

    Kalau kita perhatikan pada reverensi gambar skematik dari sebuah board nodemcu, maka kita akan melihat sebuah rangkaian resistor pembagi tegangan yang terangkain di jalur ADC (Analog to Digital Converter) pada pin ESP nya. Nah, rangkaian ini berfungsi untuk mengkondisikan sinyal analog masuk agar dapat dibaca oleh ESP dari level tegangan minimum hingga maksimum. Rangkaian nya hanya terdiri dari resistor dengan nilai 220k Ohm dan 100k Ohm.
 

Gambar 5. Rangkaian Detektor Sensor Analog


5.    Rangkaian Driver Relay / Module Relay

    Karena chip ESP atau mikrokontroler tidak bisa langsung menyalakan peralatan listrik, maka disini kami menggunakan relay sebagai saklar digital nya. Tentu untuk dapat menggerakkan relay harus ada beberapa komponen tambahan agar ESP dapat menyalakan relay tersebut. Komponen utama nya adalah sebuah transistor yang digunakan untuk menswitch tegangan agar coil pada relay memperoleh tegangan dari sinyal dengan arus lemah yang dikirimkan ESP ke kaki basis transistor.



Gambar 6. Rangkaian Driver Relay / Module Relay


6.    Rangkaian Buzzer

    Untuk rangkaian buzzer, driver nya tidak berbeda dengan relay, hanya saja beban koil relay kita gantikan langsung dengan buzzer seperti pada gambar dibawah ini :



Gambar 7. Rangkaian Buzzer


Layout PCB IoT Jordi

    Nah, setelah semua bagian skematik sesuai dengan teori dan reverensi yang kami dapat, maka tata letak komponen bisa kita atur sedemikian rupa agar menggunakan sedikit ruang namun tidak mengorbankan aturan-aturan yang ada. Berikut ini adalah gambaran layout dari IoT Jordi.


Gambar 8. Layout atas bawah Jordi



Gambar 9. Layout atas Jordi



Gambar 10. Layout bawah Jordi


Proses Pembuatan IoT Jordi


1.    Menyiapkan alat dan bahan

    Siapkan seluruh komponen alat dan bahan seperti PCB IoT Jordi yang sudah selesai dirangkai, kabel USB, adaptor, kabel lampu, lampu 5 watt (opsional) dan sebuah smartphone yang sudah tersambung dengan internet.

2.    Sketch Arduino IoT Jordi

    Run code program Jordi dan sambungkan SSID program dengan salah satu fitur Wi-Fi dalam smartphone. Berikut adalah code program yang kami gunakan :


#include <ESP8266WiFi.h>

#include "Adafruit_MQTT.h"

#include "Adafruit_MQTT_Client.h"

 

#define Relay1            12

 

#define WLAN_SSID       "Nizar Oxy"             // Your SSID

#define WLAN_PASS       "123456789"        // Your password

 

/********* Adafruit.io Setup ***********/

 

#define AIO_SERVER      "io.adafruit.com"

#define AIO_SERVERPORT  1883                   // use 8883 for SSL

#define AIO_USERNAME    "zura10"            // Replace it with your username

#define AIO_KEY         "aio_Yazx862Fdk9fP97F3F1v0RJ4xhv6"   // Replace with your Project Auth Key

 

/**** Global State (you don't need to change this!) ******/

 

// Create an ESP8266 WiFiClient class to connect to the MQTT server.

WiFiClient client;

// or... use WiFiFlientSecure for SSL

//WiFiClientSecure client;

 

// Setup the MQTT client class by passing in the WiFi client and MQTT server and login details.

Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);

 

/********** Feeds *************/

 

 

// Setup a feed called 'onoff' for subscribing to changes.

Adafruit_MQTT_Subscribe Lampu = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME"/feeds/Lampu"); // FeedName

 

void MQTT_connect();

 

void setup() {

  Serial.begin(115200);

 

  pinMode(Relay1, OUTPUT);

 

  // Connect to WiFi access point.

  Serial.println(); Serial.println();

  Serial.print("Connecting to ");

  Serial.println(WLAN_SSID);

 

  WiFi.begin(WLAN_SSID, WLAN_PASS);

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  }

  Serial.println();

 

  Serial.println("WiFi connected");

  Serial.println("IP address: ");

  Serial.println(WiFi.localIP());

 

 

  // Setup MQTT subscription for onoff feed.

  mqtt.subscribe(&Lampu);

}

 

void loop() {

 

  MQTT_connect();

 

  Adafruit_MQTT_Subscribe *subscription;

  while ((subscription = mqtt.readSubscription(5000))) {

    if (subscription == &Lampu) {

      Serial.print(F("Got: "));

      Serial.println((char *)Lampu.lastread);

      int Light1_State = atoi((char *)Lampu.lastread);

      digitalWrite(Relay1, (Light1_State));

     

    }

  }

}

 

void MQTT_connect() {

  int8_t ret;

 

  // Stop if already connected.

  if (mqtt.connected()) {

    return;

  }

 

  Serial.print("Connecting to MQTT... ");

 

  uint8_t retries = 3;

 

  while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected

    Serial.println(mqtt.connectErrorString(ret));

    Serial.println("Retrying MQTT connection in 5 seconds...");

    mqtt.disconnect();

    delay(5000);  // wait 5 seconds

    retries--;

    if (retries == 0) {

      // basically die and wait for WDT to reset me

      while (1);

    }

  }

  Serial.println("MQTT Connected!");

 

3.      Perangkaian

a.    Pertama-tama sambungkan kabel USB ke Micro USB. Sebenarnya kabel USB ini bisa digunakan sebagai kabel power tetapi dalam projek Jordi kabel ini di khususkan untuk membuat program.

b.    Kemudian ada adaptor. Nah adaptor tersebut akan disambungkan ke DC power

c.    Lalu ada kabel lampu dan kabel lampu tersebut akan disambungkan ke relay

 

4.      Pengujian

Untuk menguji coba apakah rangkaian komponen diatas berhasil atau tidak, maka kita harus mempraktekkannya. Berikut adalah Langkah-langkahnya :

a.       Buka google assistant

b.   Lalu klik tombol microfon dan kita bisa mngatakan perintah “OKE GOOGLE TURN ON THE LAMP”, jika rangkaian komponen tadi sudah benar secara otomatis lampu akan menyalah. Tetapi jika lampu tidak menyalah berarti rangkaian komponen yang sudah kalian buat perlu diperbaiki.

c.  Berikutnya adalah bagaimana mematikan lampu. Untuk mematikan lampu kita bisa menggunakan perintah “TURN OFF THE LAMP” dan lampu akan mati.

   

 

Kesimpulan

Dengan memanfaatkan internet dari fitur Wi-Fi smartphone kami dapat menghubungkan ESP12E / ESP12F ke smartphone Android/IOS serta dapat melakukan komunikasi antara kedua perangkat yaitu Google Assistant yang ada dalam smartphone dan projek Jordi sehingga projek Jordi dapat melakukan fungsi menyalakan atau mematikan lampu sesuai dengan perintah pengguna.

 

Lampiran

Gambar 11. Hasil Rangkaian

 

Gambar 12. Hasil Pengujian Rangkaian

 

Gambar 13. Foto perwakilan kelompok bersama projek Jordi



Tidak ada komentar:

Posting Komentar