Rabu, 14 April 2021

IoT : Lamp Controller menggunakan EPS32 board dan Telegram (CTBot & Arduino IDE)

 KELOMPOK 4 PTI 2020B

1. Ahmad Fikri Husaini    : 20050974030
2. Bryan Adi Prakoso    : 20050974058
1. Shaffa Salsabillah    : 20050974008
2. Nisa Nur Sholicha    : 20050974066
3. Erika Nur Amini    : 20050974012

Video Tutorial : https://www.youtube.com/watch?v=vZQW4VVpSv0


BAB I
ALAT DAN BAHAN

1. MODUL RELAY 5Volt

Modul relay adalah salah satu piranti yang beroperasi berdasarkan prinsip elektromagnetik untuk menggerakkan kontaktor guna memindahkan posisi ON ke OFF atau sebaliknya dengan memanfaatkan tenaga listrik.Peristiwa tertutup dan terbukanya kontaktor ini terjadi akibat adanya efek induksi magnet yang timbul dari kumparan induksi listrik.Perbedaan yang paling mendasar antara relay dan sakelar adalah pada saat pemindahan dari posisi ON ke OFF.Relay melakukan pemindahan-nya secara otomatis dengan arus listrik, sedangkan sakelar dilakukan dengan cara manual.

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5ewMgRhDkNVlsN_fztjPmcGrXNpKoNOw9FROhblmAY_-FiPn5otElxXabqC2j76es7XEcGW3J6n3ZUueXgY1TKKL2Hvczvv9AfMz-0n9SkKmEwBa1nZj0RvRCej0P_QNDj3KNfGXw_oc/


Fungsi modul relay :

Pada dasarnya, fungsi modul relay adalah sebagai saklar elektrik. Dimana ia akan bekerja secara otomatis berdasarkan perintah logika yang diberikan. Kebanyakan, relay 5 volt DC digunakan untuk membuat project yang salah satu komponennya butuh tegangan tinggi atau yang sifatnya AC (Alternating Current).

Sedangkan kegunaan relay secara lebih spesifik adalah sebagai berikut:

  • Menjalankan fungsi logika dari mikrokontroler Arduino
  • Sarana untuk mengendalikan tegangan tinggi hanya dengan menggunakan tegangan rendah
  • Meminimalkan terjadinya penurunan tegangan
  • Memungkinkan penggunaan fungsi penundaan waktu atau fungsi time delay function
  • Melindungi komponen lainnya dari kelebihan tegangan penyebab korsleting.
  • Menyederhanakan rangkaian agar lebih ringkas.

2. KABEL JUMPER

KABEL JUMPER (Jumper Wires) Adalah kabel-kabel pendek yang digunakan untuk menghubungkan antara komponen yang satu dengan komponen lainnya pada breadboard sehingga terdapat hubungan listrik dan terbentuk rangkaian elektronik.

Sumber Gambar : https://docplayer.info/201619223-Bab-ii-landasan-teori.html

Cara Kerja :

yaitu menghantarkan arus listrik dari satu komponen ke komponen lainnya yang dihubungkan. Ini terjadi karena di ujung dan di dalam kabel terdapat konduktor listrik kecil yang memang fungsinya untuk menghantarkan listrik.

Kelebihan :

  • Memiliki konektor di ujungnya yang sangat memudahkan kita dalam memasang maupun melepas kabel ke komponen.
  • Harganya terjangkau
  • Memiliki warna bervariasi yang memudahkan kita dalam membuat rangkaian

 Kekurangan :

Berbicara tentang kekurangannya, menurut saya kabel jumper Arduino tidak memiliki kekurangan yang berarti karena dengan adanya kabel jumper ini sudah sangat memudahkan kita dalam membuat rangkaian proyek.

 3. ESP32 DEVKIT V1 BOARD

sumber gambar : https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdNlmYTsgbUdejjP4QMYoCgFLbSp8jCzWT-GYs_7fdf29S6lgThLUray-Nsb74ZwTvW5M4sydLUKA9jHmywawiSsZWZuATubFZ4QSGcBs0ib00dCMJGax9jhkfMktw1Cj0L5CPNxJY4S4/

Fitur dan Spesifikasi EPS32

A. Prosesor:

  • Prosesor utama: Mikroprosesor Tensilica Xtensa 32-bit LX6
  • Core: 2 atau 1 (tergantung variasi)
  • Frekuensi jam: hingga 240 MHz
  • Performa: hingga 600 DMIPS
  • Ko-prosesor berdaya sangat rendah: memungkinkan Anda melakukan konversi ADC, komputasi, dan ambang batas level saat dalam tidur nyenyak.

B. Konektivitas nirkabel:

  • Wi-Fi: 802.11 b / g / n / e / i (802.11n @ 2,4 GHz hingga 150 Mbit / s)
  • Bluetooth: v4.2 BR / EDR dan Bluetooth Hemat Energi (BLE)

C. Memori:

Memori internal:

  • ROM: 448 KiB
  • SRAM: 520 KiB
  • SRAM cepat RTC: 8 KiB
  • RTC SRAM lambat: 8 KiB
  • eFuse: 1 Kibit

Flash tertanam:

  • 0 MiB (chip ESP32-D0WDQ6, ESP32-D0WD, dan ESP32-S0WD)
  • 2 MiB (chip ESP32-D2WD)
  • 4 MiB (modul ESP32-PICO-D4 SiP)

Flash eksternal & SRAM: ESP32 mendukung hingga empat flash QSPI eksternal 16 MiB dan SRAM dengan enkripsi perangkat keras berdasarkan AES untuk melindungi program dan data. ESP32 dapat mengakses flash QSPI eksternal dan SRAM melalui cache berkecepatan tinggi.

  • Hingga 16 MiB flash eksternal dipetakan dengan memori ke dalam ruang kode CPU, mendukung akses 8-bit, 16-bit dan 32-bit. Eksekusi kode didukung.
  • Hingga 8 MiB memori flash / SRAM eksternal dipetakan ke data CPU ruang, mendukung akses 8-bit, 16-bit dan 32-bit. Mendukung pembacaan data pada flashdisk dan SRAM. Penulisan data didukung di SRAM.

D. Input / output periferal: 

Antarmuka periferal yang kaya dengan DMA yang mencakup kapasitif sentuh, ADC (pengonversi analog-ke-digital), DAC (pengonversi digital-ke-analog), I²C (Sirkuit Terpadu Antar), UART (penerima / pemancar asinkron universal), CAN 2.0 (Jaringan Area Pengontrol), SPI (Antarmuka Periferal Serial), I²S (Suara Inter-IC Terintegrasi), RMII (Antarmuka Independen Media yang Dikurangi), PWM (modulasi lebar pulsa), dan lainnya.  

E. Keamanan:

  • Fitur keamanan standar IEEE 802.11 semuanya didukung, termasuk WFA, WPA / WPA2 dan WAPI
  • Boot aman
  • Enkripsi flash
  • 1024-bit OTP, hingga 768-bit untuk pelanggan
  • Akselerasi perangkat keras kriptografi: AES, SHA-2, RSA, kurva elips kriptografi (ECC), generator bilangan acak (RNG).

F. Pin GPIO ESP32 WROOM DevKit V1.

Pada board ESP32 DevKit terdapat 25 pin GPIO (General Purpose Input Output) dengan masing – masing pin mempunyai karakteristik sendiri – sendiri.

Pin hanya sebagai INPUT :

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

Pin dengan internal pull up, dapat diseting melalui program :

  • GPIO14
  • GPIO16
  • GPIO17
  • GPIO18
  • GPIO19
  • GPIO21
  • GPIO22
  • GPIO23

Pin tanpa internal pull up (dapat ditambahkan pull up eksternal sendiri) :

  • GPIO13
  • GPIO25
  • GPIO26
  • GPIO27
  • GPIO32
  • GPIO33

 BAB II
PENYUSUNAN

A. Membuat Bot Telegram menggunakan BotFather

BotFather adalah satu-satunya cara membuat bot Telegram tanpa coding untuk memerintah bot yang ada. Caranya adalah sebagai berikut:

  1. Buka BotFather. Ketik Botfather di kotak pencarian Telegram Anda. Klik untuk membuka bot.

  2. Ketikkan perintah / newbot untuk membuat bot baru.

  3. Pilih nama pengguna untuk bot baru Anda. Nama pengguna bisa panjang antara 5-32 karakter tidak sensitif huruf besar. lalu kemudian memasukan id bot yang di buat Sebagai aturan, nama pengguna harus diakhiri dengan sufiks -bot, contoh tugasarkombot.

  4. Setelah selesai, Anda akan menerima token API HTTP. yaitu sesuatu seperti: 435074775: AAHRQTtAOhQ1POBw9L98ru6Giek0qafTvME.



  5. Amankan token ini dan simpan dengan aman. Jika ada yang memegang token ini, mereka dapat sepenuhnya mengendalikan bot Anda.
B. Memasang Arduino IDE
  1. Download File Software Arduino IDE untuk Windows
    Silahkan download Software IDE Arduino di https://www.arduino.cc/en/Main/Software. Kemudia pilih Windows Installer paling atas. kemudian akan tampil pilihan Download. Silahkan klik Just Download atau Contribute dan Download untuk donasi.





  2. Persetujuan Instalasi Software IDE Arduino 
    Setelah selesai download silahkan buka dengan klik kiri dua kali atau klik kanan open kemudian akan muncul License Agreement atau Persetujuan Instalasi, klik tombol I Agree untuk memulai install software Arduino IDE.

  3. Pilih Opsi Instalasi
    Untuk Installation Option pilih semua option dan klik tombol Next.


  4. Pilih Folder
    Installation Folder atau Pilihan Folder untuk memilih folder tempat menyimpan program arduino dan klik tombol install untuk memulai proses instalasi software.


  5. Proses Extract dan Instalasi di mulai 
    Proses instalasi di mulai,program di extract ke Windows.


  6. Install USB Driver
    Saat proses instalasi sedang berlangsung akan muncul pilihan untuk install driver, pilih tombol instal,proses ini untuk mengenali dan melakukan komunikasi dengan board arduino melalui port USB.


  7. Proses Instalasi Selesai
    Setelah selesai silahkan klik close.


C. Input Library ESP32 Ke Arduino

  1. Pada Arduino IDE, masuk menu File > Preferences hingga jendela dialog Preferences terbuka

  2. Pada Additonal Board Manager URLs, klik button  yang berada di sebelah kanan field sehingga muncul kotak dialog sebagai berikut. Isikan dengan URL https://dl.espressif.com/dl/package_esp32_index.json, lalu klik OK.

  3. Jalankan Boards Manager melalui menu Tools>board>board manager. Pastikan komputer terhubung dengan koneksi internet, karena Arduino IDE akan mengunduh data dari alamat url repositori yang dimasukan pada menu preferences di langkah sebelumnya.

  4. Ketikan ESP32 pada filter pencarian, sehingga muncul seperti gambar. Lalu klik Install

  5. Tunggu beberapa saat hingga proses download dan instalasi selesai. Lalu klik Close

D. Input Library CTBot

  1. Instal library Menggunakan manager Library
  2. Pada menu Sketch, pilih menu Include Library>Manage Libraries

  3. Apabila sudah masuk ke Library Manager, kemudian ketik “CTBot” pada filter pencarian, sehingga muncul seperti gambar. Lalu klik Install

  4. Tunggu beberapa saat hingga proses download dan instalasi selesai. Lalu klik Close

E. Membuat Sketch Code LightBot(CTBot)

Setelah proses input library esp32 dan CTbot telah berhasil, berikutnya adalah pembuatan sketch / coding yang akan di upload ke board esp32
  1. Pertama yang harus di lakukan adalah klik menu file -> examples -> CTBot -> LightBot.  


    Pada sketch yang disediakan oleh CTBot sebenarnya ada beberapa pilihan. Namun, karna pada projek kali ini kami membuat sebuah home automation menggunakan riley dan lampu maka di sini kami memilih sketch LightBot.
  2. Setelah sketch LightBot di pilih makan akan muncul jendela Arduino baru yang berisi sketch yang sudah di pilih tadi.




F. Penjelasan Code
  1. pada bagian #include “CTBot.h”; berfungsi untuk memanggil library dari CTBot

  2. kemudian ada 4 variabel yaitu ssid, pass, token, dan led. Variabel tersebut nantinya berfungsi untuk mengkoneksikan esp32 kita ke relay, wifi dan bot telegram yang telah kita buat.

    > ssid = nama wifi yang akan kita koneksikan dengan eps32.
    > pass = password wifi.
    > token = berisi token bot telegram yang telah di buat menggunakan BotFather.
    > led = pin yang nantinya akan disambungkan dari board esp ke pin relay. Untuk keterangan pin dapat dilihat pada masing-masing board yang digunakan (esp32/nodeMCU) dalam kasus kali ini kami menggunakan esp32 dan menginputkan pin 2 ke vairabel led.
  3. pada function void setup (). Didalamnya berisi codingan untuk mengkoneksikan esp32 board dengan wifi dan bot telegram serta relay sesuai dengan isian variabel yang telah kita masukan. 

    > Serial.begin(115200); = merupakan sebuah perintah untuk mendeklarasikan kecepatan transfer data pada Arduino dalam satuan bps (bit per second). Pada sketch LightBot sudah tertulis 115.200 bps yang merupakan kecepatan maksimal pada Arduino. Sedangkan untuk Serial/println sendiri fungsi adalah untuk menampilkan data pada serial monitor yang ada di Arduino
    > Mybot.wifiConnect(ssid, pass); = merupakan statement perintah untukmengkoneksikan board kita ke wifi sesuai dengan variabel ssid(nama wifi) dan pass (password wifi) yang telah kita isikan sebelumnya.
    > Mybot.setTelegramToken(token); = statement yang berfungsi untuk menset token bot telegram yang telah kita buat yang nantinya akan dikoneksikan dengan perangkat IoT kita.
    > Kemudian ada statement didalam if(). Yang berfungsi untuk mengecek proses koneksi yang telah dilakukan sebelumnya. Jika koneksi berhasil dilakukan maka serial monitor akan menunjukan bahwa “testConnection OK” apabila koneksi gagal atau ada permasalahan dalam pengkoneksian maka pada serial monitor akan tertulis “testConnection NOK
    > pinMode (led, OUTPUT); = merupakan statement untuk menset pin yang akan digunakan sebagai input/output pada board.
    > digitalWrite(led, HIGH); = sebuah perintah untuk memberikan nilai 1(HIGH)/0(GROUND) pada pin yang telah kita pilih. Karna pada sketch LightBot ini menggunakan inverse logic yang artinya nilai HIGH/1 berfungsi untuk mematikan pin/mematikan relay begitu juga sebaliknya.
  4. Pada function void loop (). Berisi statement interaksi yang akan dilakukan user dan esp32 pada bot telegram.

    > Apabila user mengetikan “light on” pada telegram bot, maka esp akan menginisiasikan relay untuk menyala “digitalWrite(led, LOW);” sedangkan bot akan memberikan feedback berupa pesan “Light is now ON”. Begitu juga sebaliknya. Tulisan tersebut dapat di custom sesuai dengan keinginan user.
    > Apabila user pertama kali menyalakan bot atau menghidupkan Kembali maka nantinya secara otomatis bot akan mengenerate pesan ke user beruma “welcome + id sender telegram + try light on or light off
  5. Pada bagian bawah terdapat delay(500) yang berarti waktu tunda sebelum mengekesekusi perintah selanjutnya, dalam satuan millisecond. 500 mili = 0.5 second.

G. Compiling dan Upload Code ke Board ESP32

Setelah variabel pada sketch telah disesuaikan dengan nama dan password wifi, token bot, dan pin yang akan digunakan, selanjutnya adalah proses upload

  1. Pilih menu tools -> board: “Arduino uno” -> ESP32 Arduino -> ESP32 Dev Modul
  2. Maka akan muncul pada tool seperti ini

  3. Lalu pastikan port telah sesuai dengan tempat kita menancapkan board esp pada laptop/pc kita

  4. Setelah itu klik upload

  5. Jika sudah selesai maka pada bagian bawah akan muncul tulisan seperti ini


BAB III
PERAKITAN DAN CARA KERJA

Tahap perakitan ESP32 + RELAY 5Volt + Tatakan Lampu :
A. Pasang kabel jumper female to female pada beberapa bagian
  1. Vcc(relay) -> Vin/3.3V(ESP32)

  2. Gnd(Relay) -> Gnd(ESP32)

  3. In(relay) -> Pin GPIO2(ESP32)

  4. maka akan jadi seperti ini

B. Menyambungkan tatakan lampu ke relay
  1. Potong kabel, ambil bagian kanan atau bagian ground kemudian pasang kabel sesuai contoh

  2. Pasang kabel pada tatakan lampu

  3. kabel kiri menuju lampu

  4. kabel kanan menuju steker

  5. Pasang lampu ke tatakan

C. Cara Kerja
  1. Pada saat pertama kali membuka bot klik start

  2. Maka akan muncul pesan dari bot seperti ini dan keadaan lampu akan mati




  3. Ketika kita mengirim pesan “light on” maka lampu akan menyala dan bot akan memberikan respon “Light is now ON”




  4. Ketika kita mengirim pesan “light off” maka lampu akan mati dan bot akan memberikan respon “Light is now OFF”



UNTUK TUTORIAN LEBIH LENGKAPNYA DAPAT DI LIHAT DI CHANNEL YOUTUBE



Tidak ada komentar:

Posting Komentar