Membuat Sistem IoT dengan Arduino UNO, ESP-01, ThingSpeak, dan MIT App Inventor
Ringkasan Proyek
Proyek ini membangun sistem pemantauan dan pengendalian tanaman berbasis Internet of Things (IoT) menggunakan Arduino UNO dan modul Wi-Fi ESP8266 ESP-01. Sistem membaca suhu udara, kelembapan udara, suhu tanah, kelembapan tanah, dan intensitas cahaya, lalu mengirimkan data ke ThingSpeak. Pengguna dapat memantau kondisi lingkungan serta mengendalikan pompa air dan lampu dari jarak jauh menggunakan aplikasi Android yang dibuat dengan MIT App Inventor.
Bahan & Komponen
Daftar perangkat keras, modul, dan tools yang dibutuhkan untuk merakit proyek ini.
Daftar Komponen Perangkat Keras
- 1x Arduino UNO (Mikrokontroler utama untuk membaca sensor dan mengendalikan aktuator)
- 1x ESP8266 ESP-01 (Modul komunikasi Wi-Fi)
- 1x DHT22 (Sensor suhu dan kelembapan udara)
- 1x DS18B20 (Sensor suhu digital untuk mengukur suhu tanah dengan protokol 1-Wire)
- 1x YL-69 + LM393 (Sensor kelembapan tanah)
- 1x LDR (Sensor intensitas cahaya)
- 2x LED (LED merah sebagai indikator pompa dan LED hijau sebagai indikator lampu)
- 1x Relay Module 2 Channel DC 5V (Modul relay dengan optocoupler dan Low-Level Trigger)
- 1x Pompa air DC 5V (Aktuator penyiraman tanaman)
- 1x Lampu 220V (Aktuator penerangan)
- 2x Resistor 330 Ohm (Pembatas arus LED)
- 2x Resistor 10K Ohm (Pendukung rangkaian DHT22 dan LDR)
- 1x Resistor 4.7K Ohm (Pull-up resistor DS18B20)
- 1x Protoboard (Papan perakitan elektronik)
- Jumper wires (Kabel penghubung komponen)
- 1x Catu daya eksternal DC 5V (Sumber daya untuk modul relay)
Software dan Layanan Online
- Arduino IDE (Pemrograman Arduino UNO)
- ThingSpeak API (Platform cloud untuk mengirim, menyimpan, dan membaca data IoT)
- MIT App Inventor (Pembuatan aplikasi Android)
- Library SoftwareSerial (Komunikasi serial Arduino dengan ESP-01)
- Library OneWire (Komunikasi dengan DS18B20)
- Library DallasTemperature (Pembacaan suhu DS18B20)
- Library DHT (Pembacaan DHT22)
Langkah Pembuatan
Khusus MemberPanduan perakitan tahap demi tahap dan catatan proses pengerjaan.
Proyek ini menghubungkan Arduino UNO dengan ESP8266 ESP-01 untuk membangun sistem IoT. Sensor membaca kondisi lingkungan tanaman, kemudian data dikirim ke ThingSpeak melalui Wi-Fi. Pengguna dapat melihat data melalui aplikasi Android dan mengendalikan pompa serta lampu dari jarak jauh.
Langkah 1: Memahami Konsep Proyek
Sistem mengumpulkan lima jenis informasi: suhu udara, kelembapan udara, suhu tanah, kelembapan tanah, dan intensitas cahaya. Sistem memiliki dua aktuator, yaitu pompa air dan lampu. Pengguna dapat menyalakan pompa ketika kelembapan tanah terlalu rendah dan menyalakan lampu ketika suhu tanah terlalu rendah. ThingSpeak menjadi pusat pertukaran data antara perangkat Arduino dan aplikasi Android.

Langkah 2: Menyiapkan Komponen
Siapkan Arduino UNO, ESP8266 ESP-01, DHT22, DS18B20, sensor kelembapan tanah YL-69, LDR, modul relay dua kanal, pompa air, lampu, resistor, protoboard, dan kabel jumper. Siapkan juga komputer dengan Arduino IDE serta akun ThingSpeak dan MIT App Inventor.
Langkah 3: Merakit Perangkat Keras
Rakit rangkaian secara bertahap. Mulailah dengan sensor, kemudian konfigurasi ESP-01. Setelah komunikasi Wi-Fi berhasil, tambahkan relay dan aktuator. Pengujian per bagian akan mempermudah pencarian kesalahan.
Langkah 4: Menghubungkan Sensor
Hubungkan DS18B20 ke pin D5, DHT22 ke pin D11, LDR ke pin analog A1, dan keluaran analog YL-69 ke pin A0. Gunakan resistor pull-up 4.7K Ohm pada jalur data DS18B20. Pasang resistor pendukung DHT22 dan LDR sesuai kebutuhan rangkaian.
Instal library OneWire, DallasTemperature, dan DHT. Gunakan Arduino IDE untuk membaca sensor dan menampilkan nilainya melalui Serial Monitor dengan Baud Rate 9600. Suhu udara dan kelembapan udara diperoleh dari DHT22, suhu tanah dari DS18B20, sedangkan kelembapan tanah dan intensitas cahaya dibaca melalui input analog.
Langkah 5: Mengonfigurasi ESP8266 ESP-01
ESP-01 berfungsi sebagai Serial Bridge yang menerima AT Commands. Sebelum digunakan, periksa Baud Rate modul. Umumnya pengaturan awal adalah 115200, sedangkan proyek ini menggunakan 9600. Unggah contoh BareMinimum ke Arduino UNO agar komunikasi serial Arduino tidak mengganggu konfigurasi ESP-01.
Buka Serial Monitor dengan Baud Rate 115200 dan kirim perintah AT. Jika modul bekerja dengan benar, responsnya adalah OK. Ubah Baud Rate dengan AT+CIOBAUD=9600 atau gunakan AT+UART_DEF=9600,8,1,0,0 agar pengaturan tersimpan sesuai firmware. Atur Wi-Fi menggunakan AT+CWMODE=1, kemudian hubungkan ke jaringan dengan AT+CWJAP="NAMA_WIFI","PASSWORD_WIFI". Periksa alamat IP menggunakan AT+CIFSR.
Langkah 6: Menguji ESP-01 Bersama Arduino
Gunakan konfigurasi akhir berikut: ESP-01 RX ke Arduino D7, ESP-01 TX ke Arduino D6, CH_PD ke 3.3V, VCC ke 3.3V, GND ke GND, dan RESET ke D8. Gunakan SoftwareSerial dengan Baud Rate 9600. Uji komunikasi menggunakan AT, AT+RST, AT+GMR, AT+CWMODE?, AT+CWLAP, dan AT+CIFSR.
Langkah 7: Menggabungkan Sensor dan ESP-01
Setelah semua sensor dan ESP-01 berhasil diuji secara terpisah, gabungkan seluruh rangkaian ke Arduino UNO. Pastikan jalur data dan catu daya sudah benar. Perhatikan kebutuhan tegangan 3.3V ESP-01 dan jangan menghubungkannya langsung ke keluaran 5V Arduino.
Langkah 8: Membuat Channel ThingSpeak
Buat akun ThingSpeak dan tambahkan satu Status Channel. Siapkan delapan field: Field 1 untuk status pompa, Field 2 untuk status lampu, Field 3 untuk suhu udara, Field 4 untuk kelembapan udara, Field 5 untuk suhu tanah, Field 6 untuk kelembapan tanah, Field 7 untuk intensitas cahaya, dan Field 8 sebagai field cadangan untuk pengembangan atau pencatatan kesalahan komunikasi. Catat Channel ID dan Write API Key.
Langkah 9: Mengirim Data Sensor ke ThingSpeak
Arduino mengirim data melalui ESP-01 menggunakan komunikasi TCP dan HTTP GET. Koneksi dimulai menggunakan AT+CIPSTART ke alamat server ThingSpeak. Selanjutnya Arduino mengirim AT+CIPSEND sesuai panjang pesan dan mengirim permintaan GET berisi API Key serta nilai setiap field. Interval pengiriman pada contoh adalah 17 detik karena pembaruan ThingSpeak pada tutorial ini tidak boleh dilakukan dengan interval kurang dari 16 detik.
Langkah 10: Membuat Aplikasi Android untuk Monitoring
Buka MIT App Inventor dan buat aplikasi baru. Tambahkan label untuk menampilkan status pompa, status lampu, suhu udara, kelembapan udara, suhu tanah, kelembapan tanah, dan intensitas cahaya. Tambahkan komponen Web untuk membaca Status Channel ThingSpeak. Gunakan Clock dengan interval 2000 milidetik untuk memperbarui informasi secara berkala.
Respons ThingSpeak dibaca dalam format JSON. Ambil nilai setiap field dan tampilkan pada label yang sesuai. Nilai 0 berarti OFF dan nilai 1 berarti ON. Buat prosedur Alarm untuk memberikan peringatan ketika suhu tanah berada di bawah 10 derajat Celsius atau kelembapan tanah di bawah 60 persen.
Langkah 11: Memasang Aktuator LED dan Relay
Pasang modul relay dua kanal dengan optocoupler untuk mengendalikan pompa dan lampu. Gunakan konfigurasi Low-Level Trigger. Pasang LED merah sebagai indikator pompa dan LED hijau sebagai indikator lampu, masing-masing menggunakan resistor 330 Ohm. Relay memerlukan catu daya eksternal DC 5V sesuai spesifikasi modul.
Langkah 12: Mengonfigurasi Channel ThingSpeak untuk Aktuator
Buat dua Channel tambahan untuk menerima perintah aktuator. Channel pertama digunakan untuk pompa dan Channel kedua untuk lampu. Field 1 masing-masing Channel menyimpan perintah ON/OFF. Contoh Channel ID pada tutorial adalah 375598 untuk pompa dan 375599 untuk lampu. Catat Channel ID serta API Key masing-masing Channel.
Langkah 13: Memprogram Arduino untuk Membaca Perintah
Arduino membaca nilai terakhir Field 1 dari masing-masing Actuator Channel setiap 10 detik menggunakan HTTP GET. Nilai 1 mengaktifkan aktuator dan nilai 0 menonaktifkannya. Fungsi takeActions digunakan untuk mengendalikan pin D10 untuk pompa dan D12 untuk lampu. Karena relay aktif LOW, Arduino mengirim LOW untuk mengaktifkan relay dan HIGH untuk menonaktifkannya.
Langkah 14: Menguji Perintah Aktuator melalui Browser
Uji komunikasi dengan mengirimkan permintaan HTTP GET ke ThingSpeak menggunakan Write API Key dari Channel aktuator. Gunakan field1=1 untuk mengaktifkan dan field1=0 untuk menonaktifkan. Periksa Serial Monitor dan amati respons LED serta relay.
Langkah 15: Menyelesaikan Aplikasi Android
Tambahkan empat tombol pada MIT App Inventor, yaitu ON dan OFF untuk pompa serta ON dan OFF untuk lampu. Ketika tombol ditekan, aplikasi menulis perintah ke Channel aktuator yang sesuai. Pembuat proyek menggunakan teks berwarna biru untuk ON dan merah untuk OFF. Uji setiap tombol dan periksa apakah perubahan perintah diterima Arduino.
Langkah 16: Menggabungkan Seluruh Sistem
Gabungkan pembacaan sensor, pengiriman data ke ThingSpeak, pembacaan perintah aktuator, dan pengendalian relay dalam satu program. Versi akhir menambahkan pemeriksaan respons ESP-01 dengan AT Command. Jika modul tidak memberikan respons OK, Arduino melakukan Hardware Reset melalui pin D8. Program akhir tersedia pada repositori GitHub pembuat proyek dengan nama ArduFarmBot_Light_EXT.ino. Versi 1.1 juga menyediakan fungsi koneksi Wi-Fi menggunakan kredensial jaringan.
Langkah 17: Kesimpulan
Proyek ini memperlihatkan cara membangun sistem IoT menggunakan Arduino UNO dan ESP8266 ESP-01. Data sensor dapat dikirim ke cloud, dipantau melalui aplikasi Android, dan digunakan untuk mengendalikan aktuator dari jarak jauh. Sistem dapat dikembangkan menjadi proyek smart farming, pemantauan rumah kaca, dan penyiraman tanaman otomatis.
Buka Seluruh Panduan, Skema & Source Code
Dapatkan akses penuh ke langkah perakitan detail, diagram sirkuit lengkap, dan source code siap pakai. Gratis selamanya!