Skip to content
This repository has been archived by the owner on Jan 5, 2025. It is now read-only.

Latest commit

 

History

History
603 lines (397 loc) · 20 KB

File metadata and controls

603 lines (397 loc) · 20 KB

Open Source Love License: MIT GitHub last commit Project Type

Sistem-Perawatan-Echeveria-Peacockii-Berbasis-Bot-of-Things

Tugas Akhir IoT Master Class Indobot 2022

Echeveria Peacockii merupakan jenis tanaman yang memiliki kekerabatan dengan kaktus, namun pada tubuh tanaman ini tidak dijumpai adanya duri, sehingga sangat diminati oleh para pecinta tanaman hias. Perawatan Echeveria Peacockii hingga saat ini masih dilakukan secara konvensional, sehingga boros waktu dan tenaga. Oleh karena itu, proyek ini dibuat untuk mendapatkan sistem yang mampu melakukan penyiraman sekaligus mampu memantau perubahan kondisi yang ada di lingkungan sekitar tanaman. Proyek ini telah dilaksanakan dan memakan waktu kurang lebih 1 bulan. Antarmuka sistem menggunakan Bot Telegram. Hasil penelitian menunjukkan bahwa sistem yang dibuat dapat berfungsi dengan baik.



Kebutuhan Proyek

Bagian Deskripsi
Papan Pengembangan DOIT ESP32 DEVKIT V1
Editor Kode Arduino IDE
Dukungan Aplikasi Bot Telegram
Driver CP210X USB Driver
Platform IoT • Blynk
• ThingsBoard
Protokol Komunikasi • Inter Integrated Circuit (I2C)
• Message Queuing Telemetry Transport (MQTT)
• Transmission Control Protocol/Internet Protocol (TCP/IP)
• MTProto
Arsitektur IoT 4 Lapisan
Bahasa Pemrograman C/C++
Pustaka Arduino • WiFi (bawaan)
• BlynkSimpleEsp32
• ThingsBoard
• PubSubClient
• CTBot
• ArduinoJson
• LiquidCrystal_I2C
• DHT_sensor_library
• ESP_FC28_Library
Aktuator Submersible pump (x2)
Sensor • FC-28: Kelembaban Tanah Resistif (x1)
• LDR: Cahaya (x1)
• DHT22: Suhu & Kelembaban Udara (x1)
Layar LCD I2C (x1)
Komponen Lainnya • Kabel USB Mikro - USB tipe A (x1)
• Kabel jumper (1 set)
• Papan ekspansi ESP32 (x1)
• Breadboard (x1)
• Electrical relay 2 channel (x1)
• Adaptor DC 5V (x1)
• Resistor
• Kotak casing (x1)
• Baut plus (1 set)
• Mur (1 set)



Unduh & Instal

  1. Arduino IDE

    https://bit.ly/ArduinoIDE_Installer
    

  2. CP210X USB Driver

    https://bit.ly/CP210X_USB_Driver
    



Rancangan Proyek

Infrastruktur
infrastructure
Diagram Ilustrasi
pictorial-diagram
Desain Perangkat Lunak
flowchart-blynk flowchart-thingsboard
Pengkabelan
device-wiring



Memindai Alamat I2C Yang Ada Pada LCD

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(115200);
  while (!Serial); // Wait for serial monitor
  Serial.println("\nI2C Scanner");
}

void loop() {
  int nDevices = 0;
  Serial.println("Scanning...");

  for (byte address = 1; address < 127; ++address) {
    // The i2c_scanner uses the return value of the Wire.endTransmission to see if a device did acknowledge to the address.
    Wire.beginTransmission(address);
    byte error = Wire.endTransmission();

    if (error == 0) {
      Serial.print("I2C device found at address 0x");
      if (address < 16) {
        Serial.print("0");
      }
      Serial.print(address, HEX);
      Serial.println("  !");

      ++nDevices;
    } else if (error == 4) {
      Serial.print("Unknown error at address 0x");
      if (address < 16) {
        Serial.print("0");
      }
      Serial.println(address, HEX);
    }
  }
  if (nDevices == 0) {
    Serial.println("No I2C devices found\n");
  } else {
    Serial.println("done\n");
  }
  delay(5000); // Wait 5 seconds for next scan
}



Pengaturan Arduino IDE

  1. Buka Arduino IDE terlebih dahulu, kemudian buka proyek dengan cara klik File -> Open :

    SistemPerawatanEcheveriaBlynkIoT.ino atau SistemPerawatanEcheveriaThingsboardIoT.ino


  2. Isi Url Pengelola Papan Tambahan di Arduino IDE

    Klik File -> Preferences -> masukkan Boards Manager Url dengan menyalin tautan berikut :

    https://dl.espressif.com/dl/package_esp32_index.json
    

  3. Pengaturan Board di Arduino IDE

    Cara mengatur board DOIT ESP32 DEVKIT V1

    • Cara: klik Tools -> Board -> Boards Manager -> Instal esp32.

    • Kemudian klik: Tools -> Board -> ESP32 Arduino -> DOIT ESP32 DEVKIT V1.


  4. Ubah Kecepatan Papan di Arduino IDE

    Klik Tools -> Upload Speed -> 115200


  5. Instal Pustaka di Arduino IDE

    Unduh semua file zip pustaka. Kemudian tempelkan di: C:\Users\Computer_Username\Documents\Arduino\libraries


  6. Pengaturan Port di Arduino IDE

    Klik Port -> Pilih sesuai dengan port perangkat anda (anda dapat melihatnya di Device Manager)


  7. Ubah Nama WiFi, Kata Sandi WiFi, dan sebagainya sesuai dengan apa yang anda gunakan saat ini.

  8. Sebelum mengunggah program, silakan klik: Verify.

  9. Jika tidak ada kesalahan dalam kode program, silakan klik: Upload.

  10. Beberapa hal yang perlu anda lakukan saat menggunakan board ESP32 :

    • Informasi Arduino IDE: Uploading... -> segera tekan dan tahan tombol BOOT.

    • Informasi Arduino IDE: Writing at .... (%) -> lepaskan tombol BOOT.

    • Tunggu sampai muncul pesan: Done Uploading -> Program langsung dioperasikan.

    • Tekan tombol EN (RST) lalu Restart untuk menangani board ESP32 yang tidak bisa memproses SC.

    • Jangan tekan tombol BOOT dan EN secara bersamaan karena hal ini bisa beralih ke mode Unggah Firmware.


  11. Jika masih ada masalah saat unggah program, maka coba periksa pada bagian driver / port / yang lainnya.



Pengaturan Blynk

  1. Memulai blynk :

    • Buka situs resmi Blynk berikut: blynk.io.

    • Klik Start Free untuk mendaftar.

    • Masukkan email.

    • Buka email untuk konfirmasi.

    • Masuk menggunakan akun yang sudah dibuat.


  2. Buat template baru :

    • Klik Developer Zone -> lalu pilih opsi My Templates.

    • Kemudian klik + New Templates untuk membuat Template Baru.

    • Bagian NAME diisi dengan Smart Farming, HARDWARE pilih ESP32, CONNECTION TYPE pilih WiFi, TEMPLATE DESCRIPTION bersifat opsional.

    • Klik Done.


  3. Buat datastreams :

    • Masuk ke menu Datastreams -> klik + New Datastreams -> pilih Virtual Pin.

    • Masukkan data pertama :

    • NAME -> suhu_udara
    • PIN -> V0
    • DATA TYPE -> Double
    • UNITS -> Celcius, °C
    • MIN -> 0
    • MAX -> 100
    • DECIMALS -> #.#
    • DEFAULT VALUE -> 0

    • Masukkan data kedua :

    • NAME -> kelembaban_udara
    • PIN -> V1
    • DATA TYPE -> Integer
    • UNITS -> Percentage, %
    • MIN -> 0
    • MAX -> 100
    • DEFAULT VALUE -> 0

    • Masukkan data ketiga :

    • NAME -> kelembaban_tanah
    • PIN -> V2
    • DATA TYPE -> Integer
    • UNITS -> Percentage, %
    • MIN -> 0
    • MAX -> 100
    • DEFAULT VALUE -> 0

    • Masukkan data keempat :

    • NAME -> cahaya
    • PIN -> V3
    • DATA TYPE -> Integer
    • UNITS -> Lux, lx
    • MIN -> 0
    • MAX -> 100000
    • DEFAULT VALUE -> 0

    • Masukkan data kelima :

    • NAME -> indikator_pompa1
    • PIN -> V4
    • DATA TYPE -> Integer
    • MIN -> 0
    • MAX -> 1
    • DEFAULT VALUE -> 0

    • Masukkan data keenam :

    • NAME -> indikator_pompa2
    • PIN -> V5
    • DATA TYPE -> Integer
    • MIN -> 0
    • MAX -> 1
    • DEFAULT VALUE -> 0

    • Masukkan data ketujuh :

    • NAME -> tombol_siram
    • PIN -> V6
    • DATA TYPE -> Integer
    • MIN -> 0
    • MAX -> 1
    • DEFAULT VALUE -> 0

    • Klik Create.

    • Klik Save.


  4. Buat device baru :

    • Masuk ke menu Devices.

    • Klik + New Devices untuk menambahkan devices baru.

    • Pilih From Templates :

    • TEMPLATE -> Smart Farming
    • DEVICE NAME -> Smart Farming

    • Klik Create.


  5. Kelola dashboard pada situs Blynk :

    • Klik simbol titik 3 -> kemudian pilih Edit Dashboard.

    • Pilih widget yang diinginkan lalu drag ke area dashboard.

    • Klik setting pada widget yang ditambahkan.

    • Pilih datastream yang sudah tersedia, antara lain: suhu_udara / kelembaban_udara / kelembaban_tanah / cahaya / indikator_pompa1 / indikator_pompa2 / tombol_siram.

    • Klik Save And Apply.


  6. Kelola dashboard pada Blynk mobile apps :

    • Buka ponsel pintar anda -> lalu di Google Play Store, cari aplikasi yang bernama Blynk IoT -> kemudian instal.

    • Buka aplikasi tersebut -> lalu lakukan konfigurasi seperti yang ada di situs Blynk tadi.

    • Selebihnya anda dapat mencari tutorial di Google untuk memperkaya wawasan anda.


  7. Konfigurasi firmware :

    • Masuk ke menu Devices -> pilih Smart Farming -> klik Device Info.

    • Salin ID Template, Nama Template, dan AuthToken tersebut.

    • Kemudian tempelkan pada bagian paling atas kode firmware, contohnya seperti ini :

    #define BLYNK_TEMPLATE_ID "TMPL6ZSHxYC-z"
    #define BLYNK_TEMPLATE_NAME "Smart Farming"
    #define BLYNK_AUTH_TOKEN "fw1oXlpe-YfYh7JXQHu4QTS3EqlnM-iw"



Pengaturan ThingsBoard

  1. Memulai ThingsBoard :

    • Buka situs resmi ThingsBoard berikut: thingsboard.cloud.

    • Masuk dengan akun google.


  2. Buat device profile baru :

    • Masuk ke menu Profiles -> lalu pilih Device profiles.

    • Klik + (Add device profile).

    • Device profile details: Name -> MQTT.

    • Transport configuration: Transport type -> MQTT. Lalu isilah data MQTT seperti yang terlihat di bawah ini :

    • Telemetry topic filter: v1/devices/me/telemetry/fpiotdevan. Ini nanti harus sama dengan yang ada di kode firmware.

    • Attributes publish & subscribe topic filter: v1/devices/me/attributes/fpiotdevan. Ini nanti harus sama dengan yang ada di kode firmware.

    • MQTT device payload : JSON.

    • Klik Add untuk menambahkan.


  3. Buat device baru :

    • Masuk ke menu Entities -> lalu pilih Devices -> Groups.

    • Ubah akses device groups All menjadi Public agar dapat digunakan secara luas.

    • Buka device groups All.

    • Klik + (Add device).

    • Buatlah 1 device dengan ketentuan sebagai berikut :

    • Name -> EcheveriaIoT
    • Label -> EcheveriaIoT
    • Device profile -> default

  4. Buat dashboard :

    • Masuk ke menu Dashboards -> Groups -> All.

    • Ubah akses dashboard groups All menjadi Public agar dapat digunakan secara luas.

    • Buka dashboard groups All.

    • Klik + (Add dashboard).

    • Lalu beri nama Echeveria Dashboard -> klik Add untuk menambahkan.

    • Ubah title menjadi Sistem Perawatan Echeveria.

    • Pilih widget yang diinginkan -> pengaturan pada widget.


  5. Konfigurasi firmware :

    • Masuk ke menu Entities -> lalu pilih Devices -> Groups.

    • Klik EcheveriaIoT -> salin ID Device dan Token tersebut.

    • Kemudian tempelkan pada kode firmware, contohnya seperti ini :

    #define DEVICE_ID_TB "26001630-a274-11ee-9db5-1fb69bbe078f"
    #define ACCESS_TOKEN_TB "tovosJJOLHzwc42DSfvM"



Pengaturan Bot Telegram

  1. Buka @BotFather.

  2. Ketik /newbot.

  3. Ketik nama bot yang diinginkan, contoh: echeveria_bot.

  4. Ketik nama pengguna bot yang diinginkan, contoh: echeveria_bot.

  5. Lakukan juga untuk pengaturan gambar bot, deskripsi bot, dan lain sebagainya menyesuaikan dengan kebutuhan anda.

  6. Salin API token bot telegram anda -> lalu tempelkan pada bagian #define BOTtoken "YOUR_API_BOT_TOKEN".

    Contohnya :

    #define BOTtoken "5911801402:AAFEEuBYHPmDxlYQxfPpTCZkRpn5d8hV_3E"



Memulai

  1. Unduh dan ekstrak repositori ini.

  2. Pastikan anda memiliki komponen elektronik yang diperlukan.

  3. Pastikan komponen anda telah dirancang sesuai dengan diagram.

  4. Konfigurasikan perangkat anda menurut pengaturan di atas.

  5. Selamat menikmati [Selesai].



Sorotan

Perangkat
device
Antarmuka Bot Telegram Pemantauan melalui Blynk Mobile
interfacebot-1 interfacebot-2 interfacebot-3 blynk-mobile
Pemantauan melalui Thingsboard
thingsboard



Demonstrasi Aplikasi

Via Telegram: @echeveria_bot



Catatan

Pada proyek ini, fungsi millis() telah diterapkan untuk meminimalkan pemblokiran kode dan meningkatkan efisiensi. Namun, untuk mendapatkan hasil yang jauh lebih optimal di masa depan, disarankan menggunakan RTOS (Real-Time Operating System) untuk mengelola prioritas tugas.



Apresiasi

Jika karya ini bermanfaat bagi anda, maka dukunglah karya ini sebagai bentuk apresiasi kepada penulis dengan mengklik tombol ⭐Bintang di bagian atas repositori.



Penafian

Aplikasi ini merupakan hasil karya saya sendiri dan bukan merupakan hasil plagiat dari penelitian atau karya orang lain, kecuali yang berkaitan dengan layanan pihak ketiga yang meliputi: pustaka, kerangka kerja, dan lain sebagainya.



LISENSI

LISENSI MIT - Hak Cipta © 2023 - Devan C. M. Wijaya, S.Kom

Dengan ini diberikan izin tanpa biaya kepada siapa pun yang mendapatkan salinan perangkat lunak ini dan file dokumentasi terkait perangkat lunak untuk menggunakannya tanpa batasan, termasuk namun tidak terbatas pada hak untuk menggunakan, menyalin, memodifikasi, menggabungkan, mempublikasikan, mendistribusikan, mensublisensikan, dan/atau menjual salinan Perangkat Lunak ini, dan mengizinkan orang yang menerima Perangkat Lunak ini untuk dilengkapi dengan persyaratan berikut:

Pemberitahuan hak cipta di atas dan pemberitahuan izin ini harus menyertai semua salinan atau bagian penting dari Perangkat Lunak.

DALAM HAL APAPUN, PENULIS ATAU PEMEGANG HAK CIPTA DI SINI TETAP MEMILIKI HAK KEPEMILIKAN PENUH. PERANGKAT LUNAK INI DISEDIAKAN SEBAGAIMANA ADANYA, TANPA JAMINAN APAPUN, BAIK TERSURAT MAUPUN TERSIRAT, OLEH KARENA ITU JIKA TERJADI KERUSAKAN, KEHILANGAN, ATAU LAINNYA YANG TIMBUL DARI PENGGUNAAN ATAU URUSAN LAIN DALAM PERANGKAT LUNAK INI, PENULIS ATAU PEMEGANG HAK CIPTA TIDAK BERTANGGUNG JAWAB, KARENA PENGGUNAAN PERANGKAT LUNAK INI TIDAK DIPAKSAKAN SAMA SEKALI, SEHINGGA RISIKO ADALAH MILIK ANDA SENDIRI.