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

Latest commit

 

History

History
531 lines (358 loc) · 18 KB

File metadata and controls

531 lines (358 loc) · 18 KB

Open Source Love License: MIT GitHub last commit Project1 Project2 Type

Smart-Green-House-Berbasis-IoT-Mobile-Apps

Tugas Akhir Edspert.id: Intensive Bootcamp Internet of Things Batch-10

Green House adalah bangunan untuk budidaya tanaman yang memiliki struktur atap dan dinding tembus cahaya. Para petani terbantu oleh adanya Green House ini, namun tetap saja memerlukan pengondisian tertentu agar dapat mencapai apa yang diinginkan. Hal ini biasanya dilakukan secara tradisional, sehingga dinilai kurang efektif terutama pada jaman yang penuh dengan teknologi serba canggih seperti sekarang ini. Selain itu, rawannya pencurian dan pembobolan bangunan adalah topik yang perlu diperhatikan selain pemeliharaan sayuran. Proyek ini dibuat untuk membantu para petani agar dapat mengelola Green House yang mereka miliki dengan cepat dan tepat baik dalam jarak yang dekat maupun jarak yang jauh. Proyek ini telah dilaksanakan dan memakan waktu kurang lebih 1 bulan. Sistem yang dibuat ini dapat memantau suhu udara, kelembaban udara, kelembaban tanah, intensitas cahaya, status pompa, status pintu, dan alarm keamanan. Selain itu, sistem ini juga telah disediakan fitur kendali pompa dan kunci pintu secara otomatis, sehingga hal ini dapat meningkatkan efisiensi dalam pemeliharaan sayuran dan keamanan yang ada di area Green House. Sistem ini berbasis Internet of Things (IoT) yaitu dengan menggunakan HTTP sebagai protokol komunikasinya. Antarmuka sistem menggunakan aplikasi MIT App Inventor.



Kebutuhan Proyek

Bagian Deskripsi
Papan Pengembangan • DOIT ESP32 DEVKIT V1
• NodeMCU V3 ESP8266 Lolin
Editor Kode Arduino IDE
Driver • CH340 USB Driver
• CP210X USB Driver
Platform IoT Antares
Protokol Komunikasi • Hypertext Transfer Protocol (HTTP)
• Universal Asynchronous Receiver-Transmitter (UART)
• Serial Peripheral Interface (SPI)
• Inter Integrated Circuit (I2C)
Arsitektur IoT 4 Lapisan
Dukungan Aplikasi MIT App Inventor
Bahasa Pemrograman C/C++
Pustaka Arduino • WiFi (bawaan)
• HTTPClient (bawaan)
• ESP8266WiFi (bawaan)
• ESP8266HTTPClient (bawaan)
• SPI (bawaan)
• DHT_sensor_library
• LiquidCrystal_I2C
• ESP_FC28_Library
• MFRC522
Aktuator • Submersible pump (x1)
• Solenoid Door Lock (x1)
• Piezo buzzer (x1)
Sensor • FC-28: Kelembaban Tanah Resistif (x1)
• LDR: Resistor Cahaya (x1)
• DHT22: Suhu & Kelembaban Udara (x1)
• SW-420: Getaran (x1)
• Pembaca RFID (x1)
Layar LCD I2C (x1)
Komponen Lainnya • Kabel USB Mikro - USB tipe A (x1)
• Kabel jumper (1 set)
• Switching power supply 12V 3A (x1)
• Electrical relay 1 channel (x1)
• Step Down LM2596 Adjustable 3A DC-DC (x2)
• Breadboard (x2)
• Papan ekspansi NodeMCU (x1)
• Kotak casing (x1)
• Kartu RFID (x2)
• Connector male jack DC (x1)
• Baut plus (1 set)
• Mur (1 set)



Unduh & Instal

  1. Arduino IDE

    https://bit.ly/ArduinoIDE_Installer
    

  2. CH340 USB Driver

    https://bit.ly/CH340_USB_Driver
    

  3. CP210X USB Driver

    https://bit.ly/CP210X_USB_Driver
    



Rancangan Proyek

Infrastruktur
infrastructure
Diagram Ilustrasi untuk ESP32 Diagram Ilustrasi untuk NodeMCU
pd-esp32 pd-nodemcu
Diagram Sistem
systems-diagram
Pengkabelan
device-wiring1
device-wiring2



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 :

    Final_Project_Edspert_Batch10_ESP32Project.ino

    Final_Project_Edspert_Batch10_NodeMCUProject.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
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
    

  3. Pengaturan Board di Arduino IDE

    i

    Cara mengatur board DOIT ESP32 DEVKIT V1

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

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


    ii

    Cara mengatur board NodeMCU V3 ESP8266 Lolin

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

    • Kemudian klik Tools -> Board -> ESP8266 Boards -> NodeMCU 1.0 (ESP-12E Module).


  4. Ubah Kecepatan Papan di Arduino IDE

    i

    Cara mengubah kecepatan board DOIT ESP32 DEVKIT V1

    Klik Tools -> Upload Speed -> 115200


    ii

    Cara mengubah kecepatan board NodeMCU V3 ESP8266 Lolin

    Klik Tools -> Upload Speed -> 115200


  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, 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. Sedangkan dalam unggah program, board NodeMCU lebih unggul karena umumnya sudah dapat dilakukan secara otomatis.

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



Pengaturan Antares

  1. Memulai Antares :

    • Silakan Registrasi terlebih dahulu.

    • Selanjutnya silakan Masuk agar dapat mengakses layanan.


  2. Mengaktifkan access key :

    • Masuk ke menu Account.

    • Klik Get Access Key untuk menghasilkan access key. Proses ini hanya perlu dilakukan sekali.

    • Jika anda sudah pernah mengaktifkan access key sebelumnya, lewati langkah ini.


  3. Membuat applications :

    • Masuk ke menu Applications.

    • Klik + Create an Application.

    • Dalam menu Add Application, silakan menentukan beberapa hal berikut :

    • Application Name -> Nama Aplikasi yang akan anda buat.
    • Application ID -> ID Aplikasi yang akan anda buat.
    • Labels -> tentukan sesuai dengan kebutuhan proyek.

  4. Membuat device :

    • Pastikan anda berada di menu Home / Applications / Aplikasi yang anda buat.

    • Klik + Add Device.

    • Nama device ini sebaiknya anda tentukan berdasarkan variabel yang ada dalam proyek.


  5. Konfigurasi firmware :

    • Pastikan anda berada di menu Account.

    • Salin Access Key tersebut.

    • Tempelkan pada kode firmware, contohnya seperti ini :

    #define ACCESSKEY "1444e88d02acb758:b996115b1c2f6f0f"

    • Lalu, Nama proyek dan Nama device itu harus sesuai dengan yang telah dibuat tadi. Contohnya :

    #define projectName "FinalProject_Edspert10"
    #define deviceName "GreenHouse_Device1"


Pengaturan MIT App Inventor

  1. Buka situs resmi MIT App Inventor :

    https://appinventor.mit.edu/
    

  2. Klik Create Apps!, kemudian masuk dengan menggunakan akun google.

  3. Klik Project -> lalu impor berkas yang ada di direktori Smart-Green-House-Berbasis-IoT-Mobile-Apps\Src\MIT App Inventor Project\ :

    Smart_Green_House_Device_1.aia

    Smart_Green_House_Device_2.aia


  4. Klik tombol Block lalu atur beberapa poin berikut ini :

    • Isi bagian initialize global url to dengan format berikut :

    https://platform.antares.id:8443/~/antares-cse/antares-id/[YOUR_APPLICATION_NAME]/[YOUR_DEVICE_NAME]/la


    • Isi bagian initialize global header to -> make a list seperti berikut ini :

    make a list :

    X-M2M-Origin.

    YOUR_ACCESS_KEY.

    Content-Type.

    application/json;ty=4.

    Accept.

    application/json.


  5. Kemudian klik Connect -> selanjutnya pilih AI Companion.

  6. Buka ponsel cerdas anda, lalu pada Google Play Store cari aplikasi MIT AI2 Companion, kemudian lakukan instalasi.

  7. Buka aplikasi MIT AI2 Companion.

  8. Pilih metode Scan QR Code.

  9. Arahkan ponsel cerdas anda ke area QR Code yang ada di situs MIT App Inventor.

  10. Jika ingin mengoperasikan 2 sistem dalam waktu yang bersamaan, maka anda dapat melakukannya dengan 2 device yang berbeda agar sistem tidak bentrok.



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 Pemantauan menggunakan ESP32 Platform Antares untuk ESP32
product-esp32 antaresplatform-esp32
Konfigurasi MIT App Inventor untuk ESP32
mitappinventor-device1
Perangkat Pengendalian menggunakan NodeMCU
product-nodemcu-ac1 product-nodemcu-ac2
Platform Antares untuk NodeMCU
antaresplatform-nodemcu
Konfigurasi MIT App Inventor untuk NodeMCU
mitappinventor-device2
Simulasi Pemantauan dengan Aplikasi Mobile
simulation-1 simulation-2



Catatan

Ada Sedikit Masalah di Bagian Pembacaan RFID.



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.