Skip to content
This repository has been archived by the owner on Apr 7, 2024. It is now read-only.

Latest commit

 

History

History
362 lines (220 loc) · 15.6 KB

File metadata and controls

362 lines (220 loc) · 15.6 KB

Open Source Love License: MIT GitHub last commit Project

IoT-based-Soil-Moisture-Monitoring-System-using-HTTP-and-UART-communication-protocols

Proyek Tunggal: Sistem Pemantauan Kelembaban Tanah berbasis IoT menggunakan protokol komunikasi HTTP dan UART

Sistem IoT berbasis ESP-01 umumnya menggunakan perintah AT untuk dapat melakukan tindakan dalam suatu jaringan. Perintah AT ini diketahui ada banyak. Selain itu, kombinasi perintah yang ada sulit untuk dimengerti bagi seorang pemula. Oleh karena itu, proyek ini dibuat untuk meningkatkan kenyamanan pada sistem IoT berbasis ESP-01. Dalam hal ini, penulis menggunakan protokol UART di sisi papan pengembangan. Proyek ini telah dilaksanakan dan memakan waktu kurang lebih 2 minggu. Ada 2 jenis papan pengembangan yang dipakai. Arduino Uno R3 dipakai untuk mengambil data kelembaban tanah dari sensor yang kemudian dikirim ke ESP-01 melalui komunikasi UART: Software Serial. Sementara itu, ESP-01 digunakan untuk menerima data dari Arduino Uno melalui komunikasi UART: Hardware Serial dan kemudian mengirim data ke Ubidots melalui protokol HTTP.



Kebutuhan Proyek

Bagian Deskripsi
Papan Pengembangan • Arduino Uno R3
• ESP-01
Editor Kode Arduino IDE
Alat Pemrogram USB CH340-ESP01
Driver CH340 USB Driver
Platform IoT Ubidots
Protokol Komunikasi • Hypertext Transfer Protocol (HTTP)
• Universal Asynchronous Receiver-Transmitter (UART)
Arsitektur IoT 3 Lapisan
Bahasa Pemrograman C/C++
Pustaka Arduino • SoftwareSerial (default)
• Ubidots-ESP8266
Sensor Sensor Kelembaban Tanah Kapasitif (x1)
Komponen Lainnya • Kabel USB tipe B - USB tipe A (x1)
• Kabel jumper (1 set)
• Adapter ESP-01 (x1)



Unduh & Instal

  1. Arduino IDE

    https://bit.ly/ArduinoIDE_Installer
    

  2. CH340 USB Driver

    https://bit.ly/CH340_USB_Driver
    



Rancangan Proyek

Diagram Blok Infrastruktur
Block-Diagram Infrastructure
Diagram Ilustrasi Pengkabelan
Pictorial-Diagram Wiring



Pengetahuan Dasar

Serial Komunikasi

Pada dasarnya, suatu perangkat itu dapat dikomunikasikan dengan perangkat lain baik secara nirkabel maupun dengan kabel. Komunikasi antar perangkat keras yang umum digunakan salah satunya adalah Komunikasi Serial. Dapat diketahui bersama bahwa Komunikasi Serial ini ada tiga jenis, yaitu meliputi: UART (Universal Asynchronous Receiver-Transmitter), SPI (Serial Peripheral Interface), dan I2C (Inter Integrated Circuit). Komunikasi Serial UART memungkinkan setiap perangkat dapat bertindak sebagai master atau slave secara terbatas. Master adalah perangkat utama yang memiliki otoritas penuh atas kontrol Slave, sedangkan Slave adalah perangkat sekunder yang berada di bawah otoritas perangkat Master. Ada dua macam Komunikasi Serial UART, yaitu Hardware Serial dan Software Serial. Komunikasi Hardware Serial dapat dilakukan dengan cara menghubungkan pin TX dan pin RX secara menyilang pada masing-masing papan pengembangan, misalnya: RX-TX, kemudian TX-RX. Pin TX yaitu untuk mengirim data, sedangkan pin RX yaitu untuk menerima data. Komunikasi Software Serial ini kurang lebih sama dengan Komunikasi Hardware Serial dalam segi pengkabelan, namun ada perbedaan dalam segi pengkodean. Dengan menggunakan Software Serial inilah anda dapat mengatasi masalah keterbatasan pin RX dan TX yang ada di papan pengembangan. Untuk berkomunikasi dengan Software Serial ini cukup mudah, yaitu dengan menggunakan Pin Digital tertentu sebagai pengganti pin TX dan pin RX.

Internet of Things

Internet of Things (IoT) adalah sebuah konsep dimana suatu hal yang terhubung ke jaringan dapat melakukan satu tindakan atau lebih dalam mencapai suatu tujuan. Tindakan ini diantaranya berupa pengumpulan data, pengiriman data, penerimaan data, atau pengolahan data. Setiap proyek IoT pasti membutuhkan perangkat yang dapat terhubung ke WiFi seperti ESP. ESP terdiri dari 2 jenis, yaitu ESP8266 dan ESP32. Hal ini di pasaran sangat beragam sekali modelnya, untuk itu perlu sekali anda menyesuaikan kembali dengan kebutuhan yang ada di proyek agar tidak menimbulkan kekecewaan.



Pengaturan Arduino IDE

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

    Master.ino

    Slave.ino


  2. Isi Url Pengelola Papan Tambahan di Arduino IDE

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

    http:https://arduino.esp8266.com/stable/package_esp8266com_index.json
    

  3. Pengaturan Board di Arduino IDE

    i

    Cara mengatur board Arduino Uno

    Klik Tools -> Board -> Arduino AVR Boards -> Arduino Uno


    ii

    Cara mengatur board ESP-01

    • Klik bagian Tools -> Board -> Boards Manager -> Instal esp8266.

    • Kemudian klik Tools -> Board -> ESP8266 Boards -> Generic ESP8266 Module.


  4. Ubah Kecepatan Papan di Arduino IDE

    i

    Cara mengubah kecepatan board Arduino Uno

    Klik Tools -> Upload Speed -> 9600


    ii

    Cara mengubah kecepatan board ESP-01

    Klik Tools -> Upload Speed -> 9600


  5. Instal Pustaka di Arduino IDE

    Unduh semua file zip pustaka. Lalu 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, langkah selanjutnya yaitu menggunakan alat pemrograman ESP-01 sesuai dengan prosedur. Kemudian klik: Upload. Sedangkan Arduino Uno dapat dilakukan secara langsung tanpa menggunakan alat pemrograman.

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



Pengaturan USB CH340-ESP01

pinout


  1. Mode Pemrograman :

    • Pasang ESP-01 ke USB CH340-ESP01.

    • Tekan dan tahan tombol yang ada di USB CH340-ESP01, lalu tancapkan pada komputer/laptop.

    • Lepaskan tombol ketika perangkat sudah dikenali oleh komputer/laptop.

    • Silakan unggah program.

  2. Mode Pengoperasian :

    • Lepaskan USB CH340-ESP01 dari komputer/laptop.

    • Kode program yang telah tertanam dalam board ESP-01 ini siap untuk dioperasikan (sudah tidak ada aktivitas pemrograman lagi).

    • Lepaskan ESP-01 dari USB CH340-ESP01. Lakukan pemasangan kabel seperti yang ditunjukkan dalam diagram ilustrasi.


Catatan :

• Untuk mengunggah program, selain menggunakan USB CH340-ESP01, anda juga dapat menggunakan alat pemrogram lainnya seperti: USB CP2102, USB CH340, USB FTDI, atau dengan USB PL2303.

• Berdasarkan pengalaman, saya akui bahwa penggunaan USB CH340-ESP01 ini jauh lebih baik daripada alat pemrogram lainnya karena tidak membutuhkan kabel untuk dapat terhubung ke komputer/laptop.



Pengaturan Ubidots

  1. Memulai Ubidots :

    • Silakan Masuk agar dapat mengakses layanan Ubidots.

    • Jika anda belum memiliki akun Ubidots silakan buat dulu.


  2. Membuat devices :

    • Setelah masuk ke dalam akun -> klik Devices.

    • Klik + (Create a device) -> lalu pilih Blank Device.

    Device name sesuaikan dengan kebutuhan anda.

    Device label sesuaikan dengan apa yang ada di Ubidots sewaktu berhasil mengirim data pertama kali, dalam hal ini biasanya akan berbentuk ID.

    • Pilih ✅ Checklist untuk menyimpan.


  3. Membuat dashboards :

    • Klik Data -> lalu pilih Dashboards.

    • Klik Add new Dashboard.

    Name, Tags, Default time range -> sesuaikan dengan kebutuhan anda.

    Dynamic Dashboard -> ubah menjadi Dynamic (Single Device).

    Default Device -> pilih device yang ingin ditampilkan.

    • Pengaturan yang lain biarkan saja -> kemudian klik SAVE.


  4. Membuat widget :

    • Pastikan anda berada di menu Dashboards.

    • Klik + Add new widget.

    • Silakan pilih sesuai dengan kebutuhan anda. Kalau di proyek ini, penulis menggunakan Line chart untuk visualisasi datanya.

    • Silakan atur variabel yang ingin ditampilkan pada widget yaitu dengan cara klik + Add Variables, kemudian klik ✅ Checklist untuk menyimpan.

    • Jika ingin mengubah isi widget, silakan klik simbol pensil -> jika sudah, kemudian klik ✅ Checklist untuk menyimpan.


  5. Konfigurasi firmware :

    • Klik bagian User yang ada di pojok kanan atas -> lalu pilih API Credentials.

    • Salin Default token -> lalu tempelkan pada kode firmware. Contohnya sebagai berikut:

    const String token = "BBUS-aRZvtYRMM7IWbrKFcICR30YYP7dh5Q"; // define ubidots token
    



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 Keras Serial Monitor & Platform IoT: Ubidots
hardware serialmonitor-iotplatform



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 dibuat dengan menyertakan sumber-sumber dari pihak ketiga. Pihak ketiga di sini adalah penyedia layanan, yang layanannya berupa pustaka, kerangka kerja, dan lain-lain. Saya ucapkan terima kasih banyak atas layanannya. Telah terbukti sangat membantu dan dapat diimplementasikan.



LISENSI

LISENSI MIT - Hak Cipta © 2024 - 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.