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.
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) |
-
Arduino IDE
https://bit.ly/ArduinoIDE_Installer
-
CP210X USB Driver
https://bit.ly/CP210X_USB_Driver
Infrastruktur |
---|
Diagram Ilustrasi |
---|
Desain Perangkat Lunak | |
---|---|
Pengkabelan |
---|
#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
}
-
Buka
Arduino IDE
terlebih dahulu, kemudian buka proyek dengan cara klikFile
->Open
:SistemPerawatanEcheveriaBlynkIoT.ino
atauSistemPerawatanEcheveriaThingsboardIoT.ino
-
Isi
Url Pengelola Papan Tambahan
di Arduino IDEKlik
File
->Preferences
-> masukkanBoards Manager Url
dengan menyalin tautan berikut :https://dl.espressif.com/dl/package_esp32_index.json
-
Pengaturan Board
di Arduino IDECara mengatur board
DOIT ESP32 DEVKIT V1
• Cara: klik
Tools
->Board
->Boards Manager
-> Instalesp32
.• Kemudian klik:
Tools
->Board
->ESP32 Arduino
->DOIT ESP32 DEVKIT V1
.
-
Ubah Kecepatan Papan
di Arduino IDEKlik
Tools
->Upload Speed
->115200
-
Instal Pustaka
di Arduino IDEUnduh semua file zip pustaka. Kemudian tempelkan di:
C:\Users\Computer_Username\Documents\Arduino\libraries
-
Pengaturan Port
di Arduino IDEKlik
Port
-> Pilih sesuai dengan port perangkat anda(anda dapat melihatnya di Device Manager)
-
Ubah
Nama WiFi
,Kata Sandi WiFi
, dan sebagainya sesuai dengan apa yang anda gunakan saat ini. -
Sebelum mengunggah program, silakan klik:
Verify
. -
Jika tidak ada kesalahan dalam kode program, silakan klik:
Upload
. -
Beberapa hal yang perlu anda lakukan saat menggunakan
board ESP32
:• Informasi
Arduino IDE
:Uploading...
-> segera tekan dan tahan tombolBOOT
.• Informasi
Arduino IDE
:Writing at .... (%)
-> lepaskan tombolBOOT
.• Tunggu sampai muncul pesan:
Done Uploading
->Program langsung dioperasikan
.• Tekan tombol
EN (RST)
laluRestart
untuk menangani boardESP32
yang tidak bisa memprosesSC
.• Jangan tekan tombol
BOOT
danEN
secara bersamaan karena hal ini bisa beralih ke modeUnggah Firmware
.
-
Jika masih ada masalah saat unggah program, maka coba periksa pada bagian
driver
/port
/yang lainnya
.
-
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.
-
Buat template baru :
• Klik
Developer Zone
-> lalu pilih opsiMy Templates
.• Kemudian klik
+ New Templates
untuk membuat Template Baru.• Bagian
NAME
diisi denganSmart Farming
,HARDWARE
pilihESP32
,CONNECTION TYPE
pilihWiFi
,TEMPLATE DESCRIPTION
bersifat opsional.• Klik
Done
.
-
Buat datastreams :
• Masuk ke menu
Datastreams
-> klik+ New Datastreams
-> pilihVirtual 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
.
-
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
.
-
Kelola dashboard pada situs Blynk :
• Klik
simbol titik 3
-> kemudian pilihEdit Dashboard
.• Pilih
widget yang diinginkan
laludrag
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
.
-
Kelola dashboard pada Blynk mobile apps :
• Buka ponsel pintar anda -> lalu di
Google Play Store
, cari aplikasi yang bernamaBlynk IoT
-> kemudianinstal
.• Buka aplikasi tersebut -> lalu lakukan konfigurasi seperti yang ada di situs Blynk tadi.
• Selebihnya anda dapat mencari tutorial di
Google
untuk memperkaya wawasan anda.
-
Konfigurasi firmware :
• Masuk ke menu
Devices
-> pilihSmart Farming
-> klikDevice Info
.• Salin
ID Template
,Nama Template
, danAuthToken
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"
-
Memulai ThingsBoard :
• Buka situs resmi ThingsBoard berikut: thingsboard.cloud.
• Masuk dengan akun google.
-
Buat device profile baru :
• Masuk ke menu
Profiles
-> lalu pilihDevice 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.
-
-
Buat device baru :
• Masuk ke menu
Entities
-> lalu pilihDevices
->Groups
.• Ubah akses device groups
All
menjadiPublic
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
-
Buat dashboard :
• Masuk ke menu
Dashboards
->Groups
->All
.• Ubah akses dashboard groups
All
menjadiPublic
agar dapat digunakan secara luas.• Buka dashboard groups
All
.• Klik
+ (Add dashboard)
.• Lalu beri nama
Echeveria Dashboard
-> klikAdd
untuk menambahkan.• Ubah
title
menjadiSistem Perawatan Echeveria
.• Pilih
widget yang diinginkan
-> pengaturan pada widget.
-
Konfigurasi firmware :
• Masuk ke menu
Entities
-> lalu pilihDevices
->Groups
.• Klik
EcheveriaIoT
-> salinID Device
danToken
tersebut.• Kemudian tempelkan pada kode firmware, contohnya seperti ini :
#define DEVICE_ID_TB "26001630-a274-11ee-9db5-1fb69bbe078f" #define ACCESS_TOKEN_TB "tovosJJOLHzwc42DSfvM"
-
Buka @BotFather.
-
Ketik
/newbot
. -
Ketik nama bot yang diinginkan, contoh:
echeveria_bot
. -
Ketik nama pengguna bot yang diinginkan, contoh:
echeveria_bot
. -
Lakukan juga untuk pengaturan gambar bot, deskripsi bot, dan lain sebagainya menyesuaikan dengan kebutuhan anda.
-
Salin
API token bot telegram anda
-> lalu tempelkan pada bagian#define BOTtoken "YOUR_API_BOT_TOKEN"
.Contohnya :
#define BOTtoken "5911801402:AAFEEuBYHPmDxlYQxfPpTCZkRpn5d8hV_3E"
-
Unduh dan ekstrak repositori ini.
-
Pastikan anda memiliki komponen elektronik yang diperlukan.
-
Pastikan komponen anda telah dirancang sesuai dengan diagram.
-
Konfigurasikan perangkat anda menurut pengaturan di atas.
-
Selamat menikmati [Selesai].
Perangkat |
---|
Antarmuka Bot Telegram | Pemantauan melalui Blynk Mobile | ||
---|---|---|---|
Pemantauan melalui Thingsboard |
---|
Via Telegram: @echeveria_bot
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.
Jika karya ini bermanfaat bagi anda, maka dukunglah karya ini sebagai bentuk apresiasi kepada penulis dengan mengklik tombol ⭐Bintang
di bagian atas repositori.
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 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.