TUGAS BESAR





KONTROL GREENHOUSE TANAMAN SAWI (3x2x2)



REFERENSI :
1. Friadhi Roby dan Junadhi.(2019). "Sistem Kontrol Intensitas Cahay, Suhu dan Kelembaban Udara Pada Greenhouse Berbasis Raspberry PI". JTIS, Riau. Volume 2, No. 1. pp. 30-37

2.  Arafat dan Ibrahim.(2020). "Sistem Alat Monitoring Untuk Pengendali Suhu dan Kelembaban Greenhouse Berbasis Internet of Things. Volume 21, No.1. pp. 25-34

3. Agustinus Seto, Zainal Arifin, dan Septya Maharani.(2015). "Rancang Bangun Sistem Pengendali Suhu dan Kelembaban Miniatur Greenhouse menggunakan Mikrokontroler Atmega 8". Prosiding Seminar Tugas Akhir FMIPA UNMUL. Volume 2, No. 2. pp. 42-49

4. Eri Muchyar, dkk.(2021). "Penerapan Sistem Kontrol Air dan Suhu Pada Greenhouse Hidroponik". Jurnal Informatika, Sulawesi Tenggara. Volume 10, No. 1. pp. 1-9

5. Karsid, Rofan Aziz, dan Haris Apriyanto.(2020). "Aplikasi Kontrol Terjadwal Pada Greenhouse Tanaman Sawi". JurnalTeknik Pendingin dan Tata Udara, Indramayu. Volume 9, No. 2. pp. 79-85

TIPS & TRICK :(klik tulisan untuk menuju sumber terkait)

 https://www.agrikompleks.my.id/2020/01/cara-budidaya-tanaman-sawi-yang-baik.html

http://cybex.pertanian.go.id/mobile/artikel/91829/Budidaya-Tanaman-Sawi/#:~:text=Cara%20melakukan%20pembibitan%20yaitu%20%3A%20benih,disemaikan%20tanaman%20dipindahkan%20ke%20bedengan.&text=Hal%20terpenting%20dalam%20penanaman%20sawi,terlalu%20dalam%20atau%20terlalu%20dangkal.

https://youtu.be/nZwwMyyk2hw

https://www.merdeka.com/trending/7-cara-menanam-sawi-dengan-benar-pahami-urutan-dan-cara-perawatannya-kln.html

https://bibitonline.com/artikel/cara-menanam-sawi-hijau-dengan-baik-dan-benar


1. Pendahuluan
[Kembali]

Mikrokontroler Arduino dapat digunakan untuk mengontrol lingkungan dalam sebuah greenhouse dengan efisien. Proyek ini melibatkan penggunaan beberapa sensor, seperti pH sensor untuk memantau tingkat keasaman tanah, rain sensor untuk mendeteksi hujan dan mengatur penyiraman, UV sensor untuk memonitor radiasi UV, kelembaban tanah sensor untuk mengukur kelembaban tanah, dan LM35 sebagai sensor suhu. Arduino dipilih karena kemudahan pemrograman dan ketersediaan sensor yang kompatibel. Program mikrokontroler dapat dikembangkan untuk membaca data dari sensor, mengolahnya, dan mengambil tindakan otomatis seperti mengatur penyiraman dan ventilasi. Komunikasi dengan platform cloud atau aplikasi seluler juga dapat diimplementasikan untuk memantau kondisi lingkungan dari jarak jauh. Dengan menggabungkan elemen-elemen ini, proyek ini tidak hanya meningkatkan efisiensi dalam pemeliharaan tanaman sawi dalam greenhouse berukuran 3x2x2 meter, tetapi juga memberikan fleksibilitas dan kontrol yang lebih baik terhadap faktor-faktor lingkungan yang mempengaruhi pertumbuhan tanaman.

2. Tujuan [Kembali]

1.   Memahami dasar dasar mikrokontroler, khususnya Arduino, sebagai inti proyek.

2.  Menentukan sensor pH, rain sensor, sensor UV, kelembaban tanah, dan suhu LM35 untuk memantau kondisi greenhouse.

3.  Menghubungkan dan mengintegrasikan sensor sensor ke dalam mikrokontroler Arduino.

4.  Menulis kode Arduino untuk membaca data sensor dan mengambil keputusan kontrol.

5.  Merancang antarmuka pengguna sederhana untuk memantau kondisi greenhouse.

6.  Mengembangkan logika otomatisasi untuk mengatur penyiraman, ventilasi, dan sistem lainnya.

3. Alat dan Bahan [Kembali]

a. Alat

  • Power Supply



Spesifikasi :

Input voltage    : 5V-12V
Output voltage  : 5V
Output Current : MAX 3A
Output power   :15W

b. Bahan

  • Arduino UNO



Spesifikasi : 

  • Motor DC


Spesifikasi :

Operating temperature  : -10oC – 60oC
Rated voltage                : 6.0VDC
Rate load                       : 10 g*cm
No-load current             : 70 mA max
No-load speed               : 9100±1800rpm
Loaded current              : 250 A max
Loaded speed                : 4500±1500 rpm
Starting torque              : 20 g*cm
Starting voltage            : 2.0
Stall current                  : 500 mA max
Body size                      : 27.5mm x 20mm x 15mm
Weight                           : 17.5 grams
  • Relay


Spesifikasi : 

Trigger Voltage (Voltage across coil) : 5V DC
Trigger Current (Nominal current)     : 70mA
Maximum AC load current                 : 10A @ 250/125V AC
Maximum DC load current                 : 10A @ 30/28V DC
Compact 5-pin configuration with plastic moulding
Operating time                                    : 10msec Release time: 5msec
Maximum switching                           : 300 operating/minute (mechanicall
  • Baterai 


Spesifikasi :

Input voltage                    : ac 100~240v / dc 10~30v
Output voltage                 : dc 1~35v
Max. Input current           : dc 14a
Charging current              : 0.1~10a
Discharging current         : 0.1~1.0a
Balance current               : 1.5a/cell max
Max. Discharging power : 15w
Max. Charging power     : ac 100w / dc 250w
Jenis batre yg didukung  : life, lilon, lipo 1~6s, lihv 1-6s, pb 1-12s, nimh, cd 1-16s
Ukuran                            : 126x115x49mm
Berat                               : 460gr

  • Dioda
Spesifikasi :


  • Transistor

Spesifikasi :


  • Resistor


Spesifikasi :



  • Kapasitor


  • Spek :


    .

  • Potensiometer




    Spesifikasi:

  •  Induktor 




  • UV sensor

Spesifikasi :

    • Catu Daya : 3.3V/5V
    • Sensor : LTR390-UV-01
    • Communication Bus : I2C (Constant Address: 0x53)
    • Response Spectrum : 280 - 430nm
    • Mounting Hole Size : 2mm
    • Dimensi : 27 x 20mm


  • Sensor Suhu (LM35)

Spesifikasi :

Local sensor accuracy (max)         : 0.5, 1
Operating temperature range (°C) : -55 to 150
Supply voltage (min) (V)              : 4
Supply voltage (max) (V)              : 30
Supply current (max) (µA)            : 114
Interface type                                : Analog output
Sensor gain (mV/°C)                    : 10
  • Flame Sensor

  • Touch Sensor


    • Tegangan Operasional: 2.0 - 5.5V
    • Arus Operasional (Vcc = 3V): 1,5 - 3,0μA
    • Arus Operasional (VDD = 3V): 3,5 - 7,0μA
    • Waktu Respon Keluaran: 60 - 220mS
    • Chipset yang digunakan: TTP223-BA6
  • PH meter


Spesifikasi :

Rentang pengukuran PH : 3,5 - 9 (3,5-6,5 asam, 7-9 alkali)
Dimensi Paket                : 12,6 x 4,2 x 1,2 inch
Berat                               : 3,2 ons


  • Soil Moisture Sensor
Spesifikasi:

Pin Konfigurasi:




  • Heater

Spesifikasi :

Ukuran  25 Watt untuk volume air kurang lebih 25 Liter
Ukuran  50 Watt untuk volume air kurang lebih 50 Liter
Ukuran  75 Watt untuk volume air kurang lebih 75 Liter
Ukuran 100 Watt untuk volume air kurang lebih 100 Liter
Ukuran 150 Watt untuk volume air kurang lebih 150 Liter
Ukuran 200 Watt untuk volume air kurang lebih 200 Liter
Ukuran 300 Watt untuk volume air kurang lebih 300 Liter

  • Modul PCF8574
Fitur:
- Antarmuka I2C, modul ekspansi I / O, dua skalabilitas I / O 8 I / O (hingga 8 penggunaan simultan
- PCF8574 diperluas menjadi 64 I / O)

Fitur paling penting:
1. Mendukung dua jenis antarmuka papan target akses: Pin atau kursi baris,
2. Mendukung kaskade bus I2C (dengan metode docking pin header row seat dapat digunakan secara bersamaan beberapa modul I2C)
3. Aplikasi umum: I / O kekurangan sumber daya Ekspansi I / O MCU
4. Sumber daya utama: antarmuka PCF8574 I2C, paralel 8-bit

  • Ground
    Ground Berfungsi sebagai untuk meniadakan beda potensial dengan mengalirkan arus sisa dari kebocoran tegangan atau arus pada rangkaian


  •  LCD 20x4



gambar LCD


4. Dasar Teori [Kembali]

  •  Sistem Kontrol
Sistem kontrol adalah sistem pengaturan atau pengendalian terhadap satu atau beberapa besaran (variabel, parameter) sehingga berada pada suatu harga atau dalam satu rangkuman harga (range) tertentu. 
  • Greenhouse
Istilah greenhouse yang berasal dari kata green (hijau) dan house (rumah diterjemahkan dalam Bahasa Indonesia sebagai rumah hijau. Disebut demikian barangkali apabila dilihat dari luar greenhouse yang diberi dinding kaca atau plastik, tanaman nampak hijau. Pada mulanya, dinding greenhouse ini dibuat dari bahan kaca sehingga sering dinamai juga dengan rumah kaca, Namun, istilah rumah kaca ini sering dianggap identik dengan sumber pencemaran lingkungan.Perkembangan selanjutnya, kaca sebagai dinding greenhouse dapat digantikan dengan plastik.
  • Tanaman Sawi
Kondisi ideal untuk tumbuh tanaman sawi yaitu sebagai berikut:


3.  pH Ideal



  • Arduino UNO



  • Arduino adalah platform perangkat keras (hardware) yang dirancang untuk memudahkan pengembangan dan prototyping proyek-proyek elektronik. Ini terdiri dari papan sirkuit cetak berukuran kecil yang dilengkapi dengan mikrokontroler dan sejumlah pin input/output yang dapat digunakan untuk menghubungkan sensor, aktuator, dan komponen elektronik lainnya.

    Mikrokontroler pada papan Arduino adalah otak utama yang mengontrol berbagai komponen yang terhubung dengannya. Papan Arduino biasanya dilengkapi dengan berbagai macam varian mikrokontroler dari berbagai produsen, seperti ATmega yang diproduksi oleh Microchip Technology. Meskipun demikian, Arduino lebih sering dikaitkan dengan platform open-source yang dikelola oleh Arduino.cc.

    Arduino memiliki beberapa komponen utama yang membentuk papan sirkuit mikrokontroler. Berikut adalah penjelasan tentang komponen-komponen utama Arduino:

    1. Mikrokontroler: Ini adalah otak utama dari Arduino yang melakukan semua operasi pengolahan data dan kontrol. Arduino menggunakan mikrokontroler sebagai pusat kendali, yang berfungsi untuk membaca input, menjalankan kode program, dan mengontrol output. Beberapa varian Arduino menggunakan mikrokontroler dari berbagai produsen, seperti ATmega yang diproduksi oleh Microchip Technology.
    2. Pin I/O: Arduino memiliki sejumlah pin input/output (I/O) yang digunakan untuk menghubungkan sensor, aktuator, dan komponen lainnya. Pin ini bisa berfungsi sebagai input untuk membaca data dari sensor atau output untuk mengontrol aktuator. Ada pin digital dan pin analog. Pin digital dapat berupa input atau output dengan nilai logika 0 (LOW) atau 1 (HIGH), sementara pin analog digunakan untuk membaca nilai analog seperti sensor suhu atau cahaya.
    3. Papan Sirkuit: Papan Arduino adalah substrat fisik tempat semua komponen terhubung. Papan ini biasanya terbuat dari bahan tahan lama dan dilengkapi dengan jalur tembaga yang menghubungkan komponen-komponen elektronik.
    4. Konektor USB: Banyak varian Arduino dilengkapi dengan konektor USB. Ini memungkinkan Anda untuk menghubungkan papan Arduino ke komputer, sehingga Anda dapat mengunggah kode program ke mikrokontroler dan berkomunikasi dengan papan melalui koneksi serial.
    5. Catu Daya: Arduino memerlukan catu daya untuk beroperasi. Ini bisa berasal dari komputer melalui kabel USB atau dari sumber daya eksternal seperti baterai atau adaptor listrik. Beberapa papan Arduino memiliki regulator tegangan yang memungkinkan papan menerima berbagai tingkat tegangan masukan.
    6. Konektor Listrik: Arduino umumnya memiliki pin header atau konektor yang memungkinkan Anda untuk menghubungkan kabel atau kawat ke pin I/O. Ini memudahkan Anda dalam menghubungkan sensor, aktuator, dan komponen lainnya ke papan Arduino.
    7. Kristal Osilator: Kristal osilator digunakan untuk menghasilkan sinyal osilasi yang diperlukan oleh mikrokontroler untuk menjalankan perhitungan waktu dan operasi lainnya.
    8. Tombol Reset: Tombol reset memungkinkan Anda untuk mengulang proses booting papan Arduino atau menghentikan eksekusi program yang sedang berjalan.
    9. Indikator LED: Beberapa varian Arduino memiliki indikator LED yang terhubung ke pin tertentu. LED ini dapat diatur dalam kode program untuk memberi tahu status atau kondisi papan, seperti aktif atau dalam mode tidur.

    Semua komponen ini bekerja bersama-sama untuk menciptakan platform Arduino yang kuat dan serbaguna untuk mengembangkan berbagai proyek elektronik dan pemrograman.



      Pin (5V, 3.3V, GND, Analog, Digital, PWM, AREF)

      Pin pada Arduino adalah tempat dimana untuk menyambungkan kabel anatara pin Arduino dengan perangkat-perangkat input/output (biasanya menghubungkan dengan rangkaian project pada breadboard). Pin Arduino biasanya berupa female header sehingga untuk mendapatkan koneksi dari pin Arduino hanya cukup colokan kabel ke dalam lubang pin header tersebut. Terdapat beberapa pin pada Arduino dengan fungsi yang berbeda-beda, masing-masing pin diberi label sesuai nama dan fungsinya pada PCB.

      GND : Kependekan dari ‘Ground’. Terdapat beberapa pin ground dan semuanya dapat digunakan.

      5V & 3.3V: 5V pin memberikan supply tegangan 5 volt, dan 3.3V pin memberikan supply tegangan 3.3 volt. Kebanyakan yang digunakan dengan Arduino bekerja pada tegangan 5 atau 3.3 volt.

      Analog: Pin yang berada di bawah tulisan ‘Analog In’ (A0 sampai A5 pada Arduino UNO) adalah pin Analog Input. Pin ini dapat membaca sinyal dari sensor analog (seperti sensor suhu) dan mengkonversinya kedalam nilai digital yang dapat kita baca.

      Digital: Terletak disisi lain dari analog pin terdapat pin digital (0 sampai 13 pada UNO). Pin ini dapat difungsikan sebagai digital input (seperti memberitahukan apabila button dipencet) dan digital output (seperti menyalakan sebuah LED).

      PWM: Kamu bisa melihat simbol (~) pada beberapa pin digital (3, 5, 6, 7, 9, 10, dan 11 pada UNO). Pin ini berfungsi sebagai pin digital biasanya, tapi bisa digunakan untuk Pulse-Width Modulation (PWM), sederhananya pin ini dapat mengeluarkan keluaran tegangan Analog.

      AREF: Singkatan dari Analog Reference. Pin ini digunakan untuk mengatur tegangan referensi external (antara 0 dan 5 volt) sebagai batas untuk pin analog input.

      Tombol Reset

      Seperti komputer pada umumnya, Arduino mempunyai tombol reset (10). Menekan tombol ini akan menghubungkan pin reset dengan ground dan merestart semua kode program yang ada di dalam Arduino. Reset ini akan sangat membantu jika kode tidak berjalan berulang-ulang, tapi kamu ingin menjalankannya beberapa kali.

      Power LED Indicator

      Tepat di bawah dan di sebelah kanan kata “UNO” di board Arduino, ada LED kecil di samping kata ‘ON’ (11). LED ini harus menyala setiap kali Anda memasukkan Arduino Anda ke sumber tegangan. Jika lampu ini tidak menyala, ada kemungkinan ada sesuatu yang salah.

      TX RX LED

      TX adalah singkatan dari transmit, RX adalah singkatan dari receive. Kata ini cukup familiar dalam istilah elektronik untuk menunjukkan pin sebagai komunikasi serial. Dalam board Arduino terdapat dua tempat tulisan TX dan RX – pertama pada pin digital 0 dan 1, dan yang kedua di samping indikator LED TX dan RX (12). LED ini akan memberi kita beberapa indikasi visual setiap kali Arduino menerima atau mentransmisikan data (seperti saat kita memasukan program baru ke board Arduino).

      IC Utama

      Berwarna hitam terdapat banyak kaki logam disampingnya adalah IC, atau Integrated Circuit (13). Anggap saja itu sebagai otaknya Arduino. IC utama pada Arduino UNO berbeda dengan jenis board Arduino lainnya tapi biasanya merupakan IC keluarga ATmega yang diproduksi oleh perusahaan ATMEL. Untuk mengetahui jenis IC yang dipakai bisa ditemukan secara tertulis disisi atas IC. Jika Anda ingin tahu lebih banyak tentang perbedaan antara IC tersebut, dapat dilihat pada datasheet.

      Voltage Regulator

      Regulator tegangan berfungsi untuk membatasi jumlah tegangan yang masuk ke board Arduino. Anggap saja itu sebagai semacam gatekeeper; ini akan menghilangkan tegangan lebih yang mungkin membahayakan sirkuit. Tentu saja, ini memiliki batas, jadijangan menghubungkan Arduino Anda dengan yang lebih besar dari 20 volt.

  • Cara Menghubungkan dua arduino
    • Dua buah board Arduino UNO/Nano dapat dihubungkan dengan komunikasi serial, sehingga keduanya dapat berkomunikasi.

      Alternatif komunikasi serial yang dapat dipakai adalah sebagai berikut:

      • Komunikasi Serial Asinkron
      • Komunikasi Serial I2C / TWI (Two Wire Interface)
      • Komunikasi SPI (Serial Peripheral Interface)

                Komunikasi Serial Asinkron

      Pada komunkasi serial asinkron, port yang dipakai adalah port komunikasi serial TX & RX, atau pin D0 dan D1 pada Arduino. Cara menghubungkannya adalah silang, yaitu TX dihubungkan ke RX , RX dihubungkan ke TX. Pengiriman data dilakukan dengan menggunakan library Serial pada Arduino. Pada komunikasi ini hanya dapat dihubungkan 2 buah board Arduino.

      Komunikasi asinkron pada Arduino dapat menggunakan hardware dan software. Secara hardware, komunikasi asinkron terhubung ke pin D0 dan D1. Jika perlu tambahan komunikasi serial, dapat menggunakan library SoftwareSerial. 

      Jika menggunakan library SoftwareSerial, port yang digunakan bebas.

      Berikut ini skema menghubungkan Arduino dengan komunikasi sinkron, menggunakan port asinkron bawaan aslinya. Pin TX di Arduino pertama dihubungkan ke RX di Arduino kedua. Pin RX di Arduino pertama dihubungkan ke TX di Arduino kedua.


                Komunikasi Serial I2C/TWI

      Pada komunikasi ini digunakan protokol TWI (Two Wire Interface). Pin yang dipakai adalah SDA (ADC4) dan SCL (ADC5).

      Berikut ilustrasi port pada Arduino:

      Pin Arduino UNO
      Pin Arduino UNO

      Pada protokol TWI/I2C, 1 prosesor menjadi master, sedangkan lainnya adalah slave. Pengalamatan pada I2C adalah 7 bit, jadi jumlah node maksimum yang dapat dihubungkan pada bus I2C adalah 128 buah prosesor.

      Berikut ini contoh cara menghubungkan 2 buah Arduino dengan protokol I2C.

      Arduino UNO Master Slave I2C
      Arduino UNO Master Slave I2C

            Komunikasi SPI (Serial Peripheral Interface)

      Pada komunikasi ini digunakan protokol SPI. Pin yang dipakai adalah SCK, MOSI, MISO dan SS.

      Daftar pin yang dipakai untuk SPI  pada Arduino adalah sebagai berikut:

      Jalur SPI
      Pin ArduinoPin ATmega328
      MOSI11 or ICSP-4PB3
      MISO12 or ICSP-1PB4
      SCK13 or ICSP-3PB5
      SS10PB2

      Berikut cara menghubungkan 2 perangkat yang menggunakan protokol SPI

       

      Arduino Dengan SPI
      Arduino Dengan SPI

    • Cara menampilkan 2 LCD dengan 1 arduino
    • Perlu diperhatikan lagi mengenai modul I2C LCD adalah tentang addressing atau pengalamatan. Pada modul I2C LCD terdapat jumper A2, A1 dan A0 yang dapat dibuat menjadi sebuah alamat. Pada kondisi default (A0, A1, A2 tidak ter-jumper) maka alamatnya adalah 0x27. Konfigurasi bit A2, A1, A0 akan dapat membuat 8 alamat LCD. Jika A0, A1, A2 tidak di-jumper maka logikanya adalah “1” sehingga konfigurasi bit-nya dalam biner = 0010 0111. Berikut table konfigurasi A0, A1, A2.

      Selanjutnya langsung saja kita buat aplikasinya : 2 LCD I2C Arduino. Siapkan kebutuhan kompoenennya :

      • Arduino UNO (2)
      • LCD Display 16×2 (2)
      • Backpack I2C module LCD (2)
      • Breadboard
      • Kabel konektor

      Satu modul LCD I2C biarkan saja apa adanya, berarti alamatnya 0x27. Satu lagi kita buat dengan alamat 0x21, berarti A2 = 0, A1 = 0, A0 =1. Logika “0” berarti di-jumper alias disambung antara titik A2 ke titik diatasnya (disambung).

      address modul I2C LCD

      Pasang konektor 16 pin di masing – masing modul I2C ke pin LCD Display kemudian solder, jika sudah koneksikan dengan Arduino UNO seperti pada rangkaian berikut ini :

      Rangkaian modul I2C LCD Arduino

      Pin SDA dan SCL di Arduino silakan cek label-nya di balik (bagian bawah) Arduino. Bisa juga koneksi ke pin A4 untuk SDA dan pin A5 untuk SCL. Cara menyambung 2 LCD I2C dengan Arduino cukup jadikan 1 antara masing – masing pin. Pin SDA modul 1 terhubung dengan pin SDA modul 2 kemudian dihubungkan dengan pin SDA Arduino (A4), demikian juga untuk pin SCL, Gnd dan VCC.


      •   Sensor Suhu LM35
      Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyaikeluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan.


      IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indicator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 Î¼ A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan. Untuk mendeteksi suhu digunakan sebuah sensor suhu LM35 yang dapat dikalibrasikan langsung dalam C (celcius), LM35 ini difungsikan sebagai basic temperature sensor. 


      Prinsip Kerja LM35 :
      Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan 100°C setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0,1°C, dapat dioperasikan dengan menggunakan power supply tunggal dan dapat dihubungkan antar muka (interface) rangkaian control.

      Sensor suhu LM35 mampu melakukan pengukuran suhu dari suhu -55ºC hingga +150ºC dengan toleransi kesalahan pengukuran ±0.5ºC.

      Dilihat dari tipenya range suhu dapat dilihat sebagai berikut :
      • LM35, LM35A -> range pengukuran temperature  -55ºC hingga +150ºC.
      • LM35C, LM35CA -> range pengukuran temperature -40ºC hingga +110ºC.
      • LM35D -> range pengukuran temperature 0ºC hingga +100ºC. 
      Kelebihan LM 35 :
      • Rentang suhu yang jauh, antara -55 sampai +150ºC
      • Low self-heating, sebesar 0.08 ºC
      • Beroperasi pada tegangan 4 sampai 30 V
      • Tidak memerlukan pengkondisian sinyal
      Kekurangan LM 35:
      • Membutuhkan tegangan untuk beroperasi.
      Pin out sensor suhu:

      Grafik:

    • Resistor

    Resistor merupakan salah satu komponen yang digunakan dalam sebuah sirkuit atau rangkaian elektronik. Resistor berfungsi sebagai resistansi/ hambatan yang mampu mengatur atau mengendalikan tegangan dan arus listrik rangkaian. Resistor mempunyai nilai resistansi (tahanan) tertentu yang dapat memproduksi tegangan listrik di antara kedua pin dimana nilai tegangan terhadap resistansi tersebut berbanding lurus dengan arus yang mengalir, berdasarkan persamaan hukum Ohm :

    • Transistor
    Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung arus (switching), stabilisasi tegangan, dan modulasi sinyal. Transistor dapat berfungsi semacam kran listrik, di mana berdasarkan arus inputnya (BJT) atau tegangan inputnya (FET), memungkinkan pengaliran listrik yang sangat akurat dari sirkuit sumber listriknya. Kapasitor NPN memiliki simbol seperti gambar di bawah ini:


    Terdapat rumus rumus dalam mencari transistor seperti rumus di bawah ini:
    Rumus dari Transitor adalah :

    hFE = iC/iB

    dimana, iC = perubahan arus kolektor   

    iB = perubahan arus basis 

    hFE = arus yang dicapai


    Rumus dari Transitor adalah :


    Karakteristik Input
    Transistor adalah komponen aktif yang menggunakan aliran electron sebagai prinsip kerjanya didalam bahan. Sebuah transistor memiliki tiga daerah doped yaitu daerah emitter, daerah basis dan daerah disebut kolektor. Transistor ada dua jenis yaitu NPN dan PNP. Transistor memiliki dua sambungan: satu antara emitter dan basis, dan yang lain antara kolektor dan basis. Karena itu, sebuah transistor seperti dua buah dioda yang saling bertolak belakang yaitu dioda emitter-basis, atau disingkat dengan emitter dioda dan dioda kolektor-basis, atau disingkat dengan dioda kolektor.

    Bagian emitter-basis dari transistor merupakan dioda, maka apabila dioda emitter-basis dibias maju maka kita mengharapkan akan melihat grafik arus terhadap tegangan dioda biasa. Saat tegangan dioda emitter-basis lebih kecil dari potensial barriernya, maka arus basis (Ib) akan kecil. Ketika tegangan dioda melebihi potensial barriernya, arus basis (Ib) akan naik secara cepat.

    Pemberian bias 
            Ada beberapa macam rangkaian pemberian bias, yaitu: 
     1. Fixed bias yaitu, arus bias IB didapat dari VCC yang dihubungkan ke kaki B melewati tahanan R seperti gambar 58. Karakteristik Output.


    2.Self Bias adalah arus input didapatkan dari pemberian tegangan input VBB seperti gambar 60.


  • Sensor UV

Sensor Ultraviolet (Sensor Api) UV Tron adalah sensor yang sering digunakan untuk untuk mendeteksi keberadaan sumber api berdasarkan gelombangultraviolet yang dipancarkan oleh api. Sensor ultraviolet UV Tron ini digunakan untuk keperluan mendeteksi sumber api pada ruangan yang terpasang alat ini.
Radiasi UV dapat dibagi menjadi hampir UV (panjang gelombang: 380–200 nm) dan UV vakum (200–10 nm). Dalam pembicaraan mengenai pengaruh radiasi UV terhadap kesehatan manusia dan lingkungan, jarak panjang gelombang sering dibagi lagi kepada UVA (380–315 nm), yang juga disebut "Gelombang Panjang" atau "blacklight"; UVB (315–280 nm), yang juga disebut "Gelombang Medium" (Medium Wave); dan UVC (280-10 nm), juga disebut "Gelombang Pendek" (Short  Wave).
Radiasi UV dapat dibagi menjadi hampir UV (panjang gelombang: 380–200 nm) dan UV vakum (200–10 nm). Dalam pembicaraan mengenai pengaruh radiasi UV terhadap kesehatan manusia dan lingkungan, jarak panjang gelombang sering dibagi lagi kepada UVA (380–315 nm), yang juga disebut "Gelombang Panjang" atau "blacklight"; UVB (315–280 nm), yang juga disebut "Gelombang Medium" (Medium Wave); dan UVC (280-10 nm), juga disebut "Gelombang Pendek" (Short  Wave).
Sensor api UV-Tron adalah sebuah sensor yang mendeteksi adanya nyala api yang memancarkan sinar ultraviolet. Pancaran cahaya ultraviolet dari sebuah nyala lilin berjarak 5 meter dapat  dideteksi oleh sensor ini. Sensor api UV-Tron adalah sebuah sensor yang mendeteksi adanya nyala api yang memancarkan sinar ultraviolet. Pancaran cahaya ultraviolet dari sebuah nyala lilin berjarak 5 meter dapat  dideteksi oleh sensor ini. Sensor UV-Tron akan mengeluarkan logika high (1) jika ia mendeteksi keberadaan api dan sebaliknya sensor UV-Tron akan mengeluarkan logika low (0) jika ia tidak mendeteksi api. Sensor UV-Tron dapat membaca panjang gelombang dari 185nm sampai  260nm.

  • Soil Moisture Sensor
Soil Moisture Sensor merupakan module untuk mendeteksi kelembaban tanah, yang dapat diakses menggunakan microcontroller seperti arduino.Sensor kelembaban tanah ini dapat dimanfaatkan pada sistem pertanian, perkebunan, maupun sistem hidroponik mnggunakan hidroton.

Soil Moisture Sensor dapat digunakan untuk sistem penyiraman otomatis atau untuk memantau kelembaban tanah tanaman secara offline maupun online. Sensor yang dijual pasaran mempunyai 2 module dalam paket penjualannya, yaitu sensor untuk deteksi kelembaban, dan module elektroniknya sebagai amplifier sinyal.


Grafik Respon Sensor Soil Moisture



  • Flame Sensor

    IR Flame Sensor

    Flame sensor atau sensor api merupakan alat pendeteksi kebakaran melalui adanya nyala api yang muncul secara tiba-tiba. Besarnya nyala api yang terdeteksi yaitu nyala api dengan panjang gelombang 760 nm hingga 1.100 nm. Transduser yang digunakan dalam mendeteksi nyala api yaitu infrared. Biasanya sensor api ini digunakan pada ruangan di perkantoran, apartemen atau perhotelan. Namun sering juga digunakan dalam pertandingan robot. Sensor ini berfungsi sebagai mata dari robot untuk mendeteksi nyala api. Dengan meletakkan sensor api sebagai mata, diharapkan robot bisa menemukan posisi lilin yang menyala. Sensor api memiliki manfaat yang cukup besar. Salah satu diantaranya yaitu bisa meminimalisir adanya alarm palsu sebagai sebuah tanda akan terjadinya kebakaran. Sensor ini dirancang khusus untuk menemukan penyerapan cahaya pada gelombang tertentu. 

     

    Jenis dan Cara Kerja Sensor Api

     

    Prinsip kerja sensor api cukup sederhana, yaitu memanfaatkan sistem kerja metode optik. Optik yang mengandung infrared, ultraviolet atau pencitraan visual api bisa mendeteksi adanya percikan api sebagai tanda awal kebakaran. Jika terjadi reaksi percikan api yang cukup sering, maka akan terlihat emisi karbondioksida dan radiasi dari infrared. Ada empat jenis sensor api, yaitu UV Flame Detector, UV/IR Flame Detector, Multi-Spectrum IR Flame Detector (MSIR) dan Visual Imaging Detector. Berikut ini penjelasan masing-masing dari jenis dan cara kerja sensor api :

    1. UV Flame Detector

    Sensor api menggunakan teknologi ultraviolet sehingga bisa menanggapi radiasi spectral antara 180 nm hingga 260 nm. Tingkat sensitivitas dan respon ultraviolet termasuk baik dan cepat dalam kisaran 0 hingga 50 kaki. Sensor ini sangat sensitif terhadap hal-hal yang bermuatan listrik seperti lampu halogen, busur pengelasan dan petir.

    2. UV/IR Flame Detektor

    Sensor api merupakan sensor yang menggabungkan atau mengintegrasikan sensor optik ultraviolet ke dalam sensor infrared. Pengintegrasian dual band ini diharapkan bisa membuat detektor ini jauh lebih sensitif terhadap radiasi yang bersifat ultraviolet maupun infrared yang dipancarkan oleh percikan api. Selain itu, teknologi ini juga memiliki tingkat kekebalan yang lebih tinggi dengan respon yang jauh lebih baik dari teknologi sebelumnya. Oleh karena itu, selain cocok diletakkan di dalam ruangan, sensor ini juga cocok digunakan di luar ruangan yang bersifat terbuka.

    3. Multi-Spectrum IR Flame Detektor (MSIR)

    Sensor api ini dibuat lebih canggih dari jenis sebelumnya karena bisa memanfaatkan daerah spectral infrared secara maksimal untuk mendeteksi radiasi sumber api. Sensor jni nemiliki sensitivitas yang tinggi karena bisa menjangkau radiasi sumber api hingga 200 kaki dari sumber percikan api, baik indoor atau pun outdoor. Selain itu, teknologi ini juga memiliki kekebalan yang tinggi terhadap radiasi yang berasal dari infrared. Radiasi ini dapat muncul karena adanya sengatan listrik, adanya percikan api, muatan listrik dan juga pemicu kebakaran yang lainnya seperti material yang bersifat panas.

    4. Visual Flame Imaging Detektor

    Sensor api ini tergolong lebih canggih jika dibandingkan dengan tiga teknologi sebelumnya. Hal ini dikarenakan oleh tiga faktor berikut :

    Pertama, teknologi ini menggunakan beberapa perangkat CCD. Biasanya perangkat CCD ini digunakan dalam kamera sirkuit tertutup.

    Kedua, teknologi ini menggunakan algoritma sebagai pendeteksi dini untuk menentukan letak percikan api sebagai penyebab kebakaran. Fungsi dari algoritma yaitu menganalisis bentuk dan perkembangan api berdasarkan video yang diperoleh dari komponen CCD. Hasil analisis inilah yang akan menentukan betul tidaknya sebuah kebakaran.

    Ketiga, teknologi ini tidak mendeteksi adanya kebakaran melalui muatan listrik, radiasi panas, cahaya api atau sejenisnya seperti pada ketiga teknologi sebelumnya. Oleh karena itu, sensor api visual flame imaging detector sangat cocok digunakan pada ruangan yang di dalamnya terdapat aktivitas pembakaran agar tidak terjadi alarm palsu.                                                                                                                            Grafik Respon :

  • Sensor PH


pH atau derajat keasaman digunakan untuk menyatakan tingkat keasaaman atau basa yang dimiliki oleh suatu zat, larutan atau benda. pH normal memiliki nilai 7 sementara bila nilai pH > 7 menunjukkan zat tersebut memiliki sifat basa sedangkan nilai pH< 7 menunjukkan keasaman. pH 0 menunjukkan derajat keasaman yang tinggi, dan pH 14 menunjukkan derajat kebasaan tertinggi.

Pada prinsipnya pengukuran suatu pH adalah didasarkan pada potensial elektro kimia yang terjadi antara larutan yang terdapat didalam elektroda gelas (membran gelas) yang telah diketahui dengan larutan yang terdapat diluar elektroda gelas yang tidak diketahui. Hal ini dikarenakan lapisan tipis dari gelembung kaca akan berinteraksi dengan ion hidrogen yang ukurannya relatif kecil dan aktif, elektroda gelas tersebut akan mengukur potensial elektro kimia dari ion hidrogen. Untuk melengkapi sirkuit elektrik dibutuhkan elektroda pembanding. Sebagai catatan alat tersebut tidak mengukur arus tetapi hanya mengukur tegangan.

Grafik respon PH sensor:


  • Touch Sensor


             Digital Touch Sensor inilah salah satu saklar modern. Digital Touch Sensor merupakan sebuah modul sensor yang berfungsi seperti tombol/saklar, namun cara penggunaanya hanya perlu dengan menyentuhnya menggunakan jari kita. Pada saat disentuh oleh jari, sensor akan mendeteksi aliran arus listrik pada tubuh manusia karena tubuh manusia dapat mengalirkan listrik. Data akan berlogika 1 (HIGH) saat disentuh oleh jari dan akan berlogika 0 (LOW) saat tidak disentuh.

         Digital touch sensor dapat digunakan untuk switching suatu alat atau sistem. Seperti untuk menghidupkan lampu, menghidupkan motor, menyalakan sistem keamanan, dan lain-lain.

        Grafik respon sensor :



    Digital touch sensor dapat digunakan untuk switching suatu alat atau sistem. Seperti untuk menghidupkan lampu, menghidupkan motor, menyalakan sistem keamanan, dan lain-lain.


  • Baterai
Baterai (Battery) adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat Elektronik. Hampir semua perangkat elektronik yang portabel seperti Handphone, Laptop, Senter, ataupun Remote Control menggunakan Baterai sebagai sumber listriknya. Dengan adanya Baterai, kita tidak perlu menyambungkan kabel listrik untuk dapat mengaktifkan perangkat elektronik kita sehingga dapat dengan mudah dibawa kemana-mana. Dalam kehidupan kita sehari-hari, kita dapat menemui dua jenis Baterai yaitu Baterai yang hanya dapat dipakai sekali saja (Single Use) dan Baterai yang dapat di isi ulang (Rechargeable). Baterai simbol seperti gambar di bawah ini:

Gambar Baterai pada Proteus

  • LCD 20x4
LCD (Liquid Crystal Display) merupakan komponen elektronika yang berfungsi untuk menampilkan suatu data dapat berupa karakter, huruf, symbol maupun grafik. Karena ukurannya yang kecil maka LCD banyak dipasangkan dengan Mikrokontroller. LCD tersedia dalam bentuk modul yang mempunyai pin data, control catu daya, dan pengatur kontras tampilan.
gambar LCD 20x4
spesifikasi LCD 20x4

  • Modul PCF8574

    Merupakan modul expansion board untuk mengatur hingga 8 pin I/O. menggunakan komunikasi secara I2C, artinya dengan 2 pin (SDA/SCL) maka kita dapat mengatur hingga 8 pin yg dapat dijadikan input output. modul ini juga dapat di cascade, hingga 8 modul atau hingga 64 pin input output.
  • Ground
Ground Berfungsi sebagai untuk meniadakan beda potensial dengan mengalirkan arus sisa dari kebocoran tegangan atau arus pada rangkaian.

  • Mengendalikan Motor DC

Untuk memiliki kendali penuh atas motor DC kita harus mengontrol kecepatan dan arah putarannya. Hal ini dapat dicapai dengan menggabungkan kedua teknik ini.

  • PWM – untuk mengontrol kecepatan
  • H-Bridge – untuk mengontrol arah putaran

PWM – untuk mengontrol kecepatan

Kecepatan motor DC dapat dikontrol dengan mengubah tegangan inputnya. Teknik umum untuk melakukan ini adalah dengan menggunakan PWM (Pulse Wide Modulation).

PWM adalah suatu teknik dimana nilai rata-rata tegangan input diatur dengan mengirimkan serangkaian pulsa ON-OFF.

Tegangan rata-rata sebanding dengan lebar pulsa yang dikenal sebagai Duty Cycle .

Gambar di bawah menunjukkan teknik PWM dengan siklus kerja dan tegangan rata-rata yang berbeda.

Teknik PWM Modulasi Lebar Pulsa dengan Duty Cycle
Teknik Modulasi Lebar Pulsa (PWM).

H-Bridge – untuk mengontrol arah putaran

Arah putaran motor DC dapat dikontrol dengan mengubah polaritas tegangan masukannya. Teknik umum untuk melakukan hal ini adalah dengan menggunakan jembatan-H.Rangkaian H-bridge terdiri dari empat saklar dengan motor di tengahnya membentuk susunan seperti H.

L293D paling sering digunakan untuk menggerakkan motor, tetapi juga dapat digunakan untuk menggerakkan beban induktif apa pun seperti solenoid relai atau transistor daya switching besar.Ia mampu menggerakkan empat solenoid, empat motor DC satu arah, dua motor DC dua arah, atau satu motor stepper.IC L293D memiliki rentang suplai 4,5V hingga 36V dan mampu menghasilkan arus keluaran puncak 1,2A per saluran, sehingga bekerja sangat baik dengan sebagian besar motor kami.

Referensi :

Hasil analisis kimia yang meliputi kadar air, abu, protein, lemak dan karbohidrat menunjukan bahwa perlakuan H1 (hari pertama) memiliki kadar air tertinggi sedangkan perlakuan H3 (hari ketiga) memiliki kadar abu, protein, lemak, dan karbohidrat tertinggi. Dengan kisaran suhu dalam ruang 42,38 °C - 42,89 °C dan kelembaban udara (RH) 40%.


5. Percobaan [Kembali]

A. Prosedur [Kembali]

1) Download library yang diperlukan (dapat dilihat pada bagian download dalam blog)     
2) Buka proteus yang sudah diinstal untuk membuat rangkaian.
3) Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
4) Buka Arduino IDE yang sudah diinstal.
5) Di Arduino IDE, pergi ke menu "File" > "Preferences".
6) Pastikan opsi "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
7) Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
8) Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
9) Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
10) Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
11) Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
l2) Jalankan simulasi di Proteus

B. Hardware dan Diagram Blok [Kembali]





C. Rangkaian Simulasi dan Prinsip Kerja [Kembali]



Prinsip Kerja

Program ini terdiri dari dua bagian: pengirim dan penerima, yang berkomunikasi melalui serial UART untuk memantau dan mengendalikan kondisi lingkungan. Pada bagian pengirim, berbagai sensor seperti pH, kelembapan tanah, UV, sentuhan, dan api diinisialisasi dan dibaca nilainya. Nilai pH diolah dengan membaca beberapa kali untuk mendapatkan rata-rata yang lebih stabil. Nilai ini kemudian ditampilkan pada layar LCD dan dikirim melalui komunikasi serial. Jika pH di bawah 6, pengirim mengirimkan sinyal '1', jika di atas 7 mengirimkan sinyal '2', dan jika di antara 6 dan 7 mengirimkan sinyal '3'. Kelembapan tanah diukur dan dikategorikan sebagai kering, basah, atau normal, dengan pengirim mengirimkan sinyal '4', '5', atau '6' berdasarkan kondisi ini. Sensor UV mengukur intensitas cahaya ultraviolet dan mengirimkan sinyal '7' jika melebihi batas tertentu, atau '8' jika tidak. Sensor sentuhan dan api mengirimkan sinyal '9' dan 'a' jika terdeteksi adanya sentuhan atau api.

Pada bagian penerima, perangkat seperti pompa air, atap otomatis, LED indikator, dan buzzer diinisialisasi. Penerima membaca data yang dikirim dari pengirim melalui komunikasi serial. Berdasarkan data ini, penerima mengendalikan perangkat yang sesuai: menyalakan atau mematikan LED indikator untuk menunjukkan kondisi kelembapan tanah dan pH, mengaktifkan pompa air jika ada sentuhan, membuka atau menutup atap otomatis berdasarkan intensitas UV, dan menyalakan buzzer jika terdeteksi adanya api. Dengan demikian, sistem ini dapat secara otomatis memantau dan mengendalikan kondisi lingkungan untuk memastikan kondisi optimal.

D. Flowchart dan Listing Program [Kembali]

a). Flowchart

PENGIRIM



PENERIMA




b). Listing Program

PENGIRIM

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);


#define SOIL A0

#define UV A1

#define PH A2

#define FLAME 12

#define TOUCH 13


float calibration_value = 21.34;

unsigned long int avgval;

int buffer_arr[10];

int temp;


void setup() {

  lcd.init();

  lcd.backlight();

  pinMode(SOIL, INPUT);

  pinMode(UV, INPUT);

  pinMode(PH, INPUT);

  pinMode(FLAME, INPUT);

  pinMode(TOUCH, INPUT);

  lcd.begin(16, 2);

  Serial.begin(9600);

}


void loop() {

  int nilaiSOIL;

  int nilaiUV;

  int nilaiPH;

  int nilaiFLAME;

  int nilaiTOUCH;

  float kelembapanTANAH;


  // PH

  for (int i = 0; i < 10; i++) {

    buffer_arr[i] = analogRead(PH);

    delay(30);

  }


  for (int i = 0; i < 9; i++) {

    for (int j = i + 1; j < 10; j++) {

      if (buffer_arr[i] > buffer_arr[j]) {

        temp = buffer_arr[i];

        buffer_arr[i] = buffer_arr[j];

        buffer_arr[j] = temp;

      }

    }

  }


  avgval = 0;

  for (int i = 2; i < 8; i++) avgval += buffer_arr[i];

  float volt = (float)avgval * 5.0 / 1024 / 6;

  float phval = -5.70 * volt + calibration_value;


  lcd.setCursor(0, 0);

  lcd.print("PH Tanah = ");

  lcd.setCursor(11, 0);

  lcd.print(phval);


  if (phval < 6) {

    Serial.write("1");

    delay(100);

  }

  else if (phval > 7) {

    Serial.write("2");

    delay(100);

  }

  else {

    Serial.write("3");

    delay(100);

  }


  // SOIL

  nilaiSOIL = analogRead(SOIL);

  kelembapanTANAH = (100 - ((nilaiSOIL / 1023.00) * 100));

  if (kelembapanTANAH < 50) {

    Serial.write("4");

    delay(100);

    lcd.setCursor(0, 1);

    lcd.print("Tanah : Kering");

  }

  else if (kelembapanTANAH > 70) {

    Serial.write("5");

    delay(100);

    lcd.setCursor(0, 1);

    lcd.print("Tanah : Basah");

  }

  else {

    Serial.write("6");

    delay(100);

    lcd.setCursor(0, 1);

    lcd.print("Tanah : Normal");

  }


  delay(100);


  // UV

  nilaiUV = analogRead(UV) * (5.0 / 1023.0);

  if (nilaiUV > 1.6) {

    Serial.write("7");

    delay(100);

  }

  else {

    Serial.write("8");

    delay(100);

  }


  // TOUCH

  nilaiTOUCH = digitalRead(TOUCH);

  if (nilaiTOUCH == HIGH) {

    Serial.write("9");

    delay(100);

  }


  // FLAME

  nilaiFLAME = digitalRead(FLAME);

  if (nilaiFLAME == HIGH) {

    Serial.write("a");

    delay(100);

  }

  delay(100);

}


PENERIMA

#define pompaAIR 2

#define in2 3

#define ATAP 4

#define in4 5


#define BUZZER 11

#define ledlembab 9

#define ledkering 8

#define ledphbetul 6

#define ledphsalah 7

#define duration 2000


int data;


void setup() {

  pinMode(pompaAIR, OUTPUT);

  pinMode(ATAP, OUTPUT);

  pinMode(in2, OUTPUT);

  pinMode(in4, OUTPUT);

  pinMode(BUZZER, OUTPUT);

  pinMode(ledlembab, OUTPUT);

  pinMode(ledkering, OUTPUT);

  pinMode(ledphbetul, OUTPUT);

  pinMode(ledphsalah, OUTPUT);

  Serial.begin(9600);

}


void loop() {

  if (Serial.available() > 0) {

    data = Serial.read();

    if (data == '4') {

      digitalWrite(ledlembab, LOW);

      digitalWrite(ledkering, HIGH);

    }

    else if (data == '5') {

      digitalWrite(ledlembab, LOW);

      digitalWrite(ledkering, LOW);

      delay(100);

    }

    else if (data == '6') {

      digitalWrite(ledlembab, HIGH);

      digitalWrite(ledkering, LOW);

      delay(100);

    }

    else if (data == '1') {

      digitalWrite(ledphbetul, LOW);

      digitalWrite(ledphsalah, HIGH);

      delay(100);

    }

    else if (data == '2') {

      digitalWrite(ledphbetul, LOW);

      digitalWrite(ledphsalah, HIGH);

      delay(100);

    }

    else if (data == '3') {

      digitalWrite(ledphbetul, HIGH);

      digitalWrite(ledphsalah, LOW);

      delay(100);

    }

    else if (data == '9') {

      digitalWrite(pompaAIR, HIGH);

      digitalWrite(in2, LOW);

      delay(100);

    }

    else if (data == '7') {

      digitalWrite(ATAP, HIGH);

      digitalWrite(in4, LOW);

      delay(100);

    }

    else if (data == '8') {

      digitalWrite(ATAP, LOW);

      digitalWrite(in4, LOW);

      delay(100);

    }

    else if (data == 'a') {

      digitalWrite(BUZZER, HIGH);

      delay(100);

    }

  }

}


PENJELASAN PROGRAM

PENGIRIM

Inisialisasi dan Deklarasi: Program dimulai dengan mengimpor library yang dibutuhkan dan mendeklarasikan pin untuk sensor dan perangkat lain.

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 4);


#define SOIL A0

#define UV A1

#define PH A2

#define FLAME 12

#define TOUCH 13


float calibration_value = 21.34;

unsigned long int avgval;

int buffer_arr[10];

int temp;


Setup: Menginisialisasi LCD, menetapkan pin mode, dan memulai komunikasi serial

void setup() {

  lcd.init();

  lcd.backlight();

  pinMode(SOIL, INPUT);

  pinMode(UV, INPUT);

  pinMode(PH, INPUT);

  pinMode(FLAME, INPUT);

  pinMode(TOUCH, INPUT);

  lcd.begin(16, 2);

  Serial.begin(9600);

}


Loop: Membaca nilai dari berbagai sensor, memproses data, menampilkan hasil di LCD, dan mengirim data melalui serial berdasarkan kondisi yang terbaca.

void loop() {

  int nilaiSOIL;

  int nilaiUV;

  int nilaiPH;

  int nilaiFLAME;

  int nilaiTOUCH;

  float kelembapanTANAH;


  // PH

  for (int i = 0; i < 10; i++) {

    buffer_arr[i] = analogRead(PH);

    delay(30);

  }


  for (int i = 0; i < 9; i++) {

    for (int j = i + 1; j < 10; j++) {

      if (buffer_arr[i] > buffer_arr[j]) {

        temp = buffer_arr[i];

        buffer_arr[i] = buffer_arr[j];

        buffer_arr[j] = temp;

      }

    }

  }


  avgval = 0;

  for (int i = 2; i < 8; i++) avgval += buffer_arr[i];

  float volt = (float)avgval * 5.0 / 1024 / 6;

  float phval = -5.70 * volt + calibration_value;


  lcd.setCursor(0, 0);

  lcd.print("PH Tanah = ");

  lcd.setCursor(11, 0);

  lcd.print(phval);


  if (phval < 6) {

    Serial.write("1");

    delay(100);

  }

  else if (phval > 7) {

    Serial.write("2");

    delay(100);

  }

  else {

    Serial.write("3");

    delay(100);

  }


  // SOIL

  nilaiSOIL = analogRead(SOIL);

  kelembapanTANAH = (100 - ((nilaiSOIL / 1023.00) * 100));

  if (kelembapanTANAH < 50) {

    Serial.write("4");

    delay(100);

    lcd.setCursor(0, 1);

    lcd.print("Tanah : Kering");

  }

  else if (kelembapanTANAH > 70) {

    Serial.write("5");

    delay(100);

    lcd.setCursor(0, 1);

    lcd.print("Tanah : Basah");

  }

  else {

    Serial.write("6");

    delay(100);

    lcd.setCursor(0, 1);

    lcd.print("Tanah : Normal");

  }


  delay(100);


  // UV

  nilaiUV = analogRead(UV) * (5.0 / 1023.0);

  if (nilaiUV > 1.6) {

    Serial.write("7");

    delay(100);

  }

  else {

    Serial.write("8");

    delay(100);

  }


  // TOUCH

  nilaiTOUCH = digitalRead(TOUCH);

  if (nilaiTOUCH == HIGH) {

    Serial.write("9");

    delay(100);

  }


  // FLAME

  nilaiFLAME = digitalRead(FLAME);

  if (nilaiFLAME == HIGH) {

    Serial.write("a");

    delay(100);

  }


  delay(100);

}


PENERIMA

Inisialisasi dan Deklarasi: Mendeklarasikan pin untuk perangkat yang akan dikendalikan.

#define pompaAIR 2

#define in2 3

#define ATAP 4

#define in4 5


#define BUZZER 11

#define ledlembab 9

#define ledkering 8

#define ledphbetul 6

#define ledphsalah 7

#define duration 2000


int data;

Setup: Menginisialisasi pin mode dan memulai komunikasi serial.

void setup() {

  pinMode(pompaAIR, OUTPUT);

  pinMode(ATAP, OUTPUT);

  pinMode(in2, OUTPUT);

  pinMode(in4, OUTPUT);

  pinMode(BUZZER, OUTPUT);

  pinMode(ledlembab, OUTPUT);

  pinMode(ledkering, OUTPUT);

  pinMode(ledphbetul, OUTPUT);

  pinMode(ledphsalah, OUTPUT);

  Serial.begin(9600);

}


Loop: Membaca data yang diterima melalui serial dan mengendalikan perangkat berdasarkan data tersebut

void loop() {

  if (Serial.available() > 0) {

    data = Serial.read();

    if (data == '4') {

      digitalWrite(ledlembab, LOW);

      digitalWrite(ledkering, HIGH);

    }

    else if (data == '5') {

      digitalWrite(ledlembab, LOW);

      digitalWrite(ledkering, LOW);

      delay(100);

    }

    else if (data == '6') {

      digitalWrite(ledlembab, HIGH);

      digitalWrite(ledkering, LOW);

      delay(100);

    }

    else if (data == '1') {

      digitalWrite(ledphbetul, LOW);

      digitalWrite(ledphsalah, HIGH);

      delay(100);

    }

    else if (data == '2') {

      digitalWrite(ledphbetul, LOW);

      digitalWrite(ledphsalah, HIGH);

      delay(100);

    }

    else if (data == '3') {

      digitalWrite(ledphbetul, HIGH);

      digitalWrite(ledphsalah, LOW);

      delay(100);

    }

    else if (data == '9') {

      digitalWrite(pompaAIR, HIGH);

      digitalWrite(in2, LOW);

      delay(100);

    }

    else if (data == '7') {

      digitalWrite(ATAP, HIGH);

      digitalWrite(in4, LOW);

      delay(100);

    }

    else if (data == '8') {

      digitalWrite(ATAP, LOW);

      digitalWrite(in4, LOW);

      delay(100);

    }

    else if (data == 'a') {

      digitalWrite(BUZZER, HIGH);

      delay(100);

    }

  }

}

E. Kondisi [Kembali]

Program ini mengimplementasikan sistem monitoring dan kontrol berbasis sensor yang terhubung melalui komunikasi Serial. Pengirim berfungsi sebagai pusat pengumpulan data dari berbagai sensor yang dipasang di lingkungan, seperti sensor kelembapan tanah, pH tanah, UV, sentuhan, dan api. Sensor-sensor ini mengirimkan data secara berkala. Program kemudian memproses data tersebut untuk menentukan nilai kelembapan tanah, pH tanah, serta kondisi UV, sentuhan, dan api. Nilai pH dan kelembapan tanah ditampilkan pada layar LCD untuk informasi langsung kepada pengguna, sementara nilai-nilai lainnya dikirim melalui komunikasi Serial.

Penerima, di sisi lain, menerima data yang dikirim oleh pengirim dan bertindak berdasarkan informasi tersebut. Berdasarkan data yang diterima, penerima mengontrol berbagai perangkat seperti LED, pompa air, atap otomatis, dan buzzer. Misalnya, jika data menunjukkan tanah kering, LED khusus menyala dan pompa air diaktifkan untuk menyiram tanaman. Jika pH tanah tidak sesuai, LED indikasi pH akan menyala untuk memberi tahu kondisi tersebut. Buzzer akan berbunyi jika terdeteksi adanya api, memberikan peringatan penting untuk potensi bahaya. 

Program ini memiliki berbagai kondisi yang terkait dengan pembacaan sensor dan respons yang sesuai dari perangkat penerima. Berikut adalah macam-macam kondisi yang dihasilkan dari program tersebut:

1. Kondisi pH Tanah:

    - pH Rendah (pH < 6):

        - Pada pengirim: LCD menampilkan "PH Tanah = [nilai pH]" dan mengirimkan sinyal '1' melalui serial.

        - Pada penerima: LED indikator pH rendah (`ledphsalah`) menyala, LED pH normal (`ledphbetul`) mati.

    - pH Tinggi (pH > 7):

        - Pada pengirim: LCD menampilkan "PH Tanah = [nilai pH]" dan mengirimkan sinyal '2' melalui serial.

        - Pada penerima: LED indikator pH tinggi (`ledphsalah`) menyala, LED pH normal (`ledphbetul`) mati.

    - pH Normal (6 ≤ pH ≤ 7):

        - Pada pengirim: LCD menampilkan "PH Tanah = [nilai pH]" dan mengirimkan sinyal '3' melalui serial.

        - Pada penerima: LED pH normal (`ledphbetul`) menyala, LED pH salah (`ledphsalah`) mati.

2. Kondisi Kelembapan Tanah:

    - Tanah Kering (kelembapan < 50%):

        - Pada pengirim: LCD menampilkan "Tanah: Kering" dan mengirimkan sinyal '4' melalui serial.

        - Pada penerima: LED indikator tanah kering (`ledkering`) menyala, LED tanah lembab (`ledlembab`) mati.

    - Tanah Basah (kelembapan > 70%):

        - Pada pengirim: LCD menampilkan "Tanah: Basah" dan mengirimkan sinyal '5' melalui serial.

        - Pada penerima: LED indikator tanah basah (`ledlembab`) mati, LED tanah kering (`ledkering`) mati.

    - Tanah Normal (50% ≤ kelembapan ≤ 70%):

        - Pada pengirim: LCD menampilkan "Tanah: Normal" dan mengirimkan sinyal '6' melalui serial.

        - Pada penerima: LED tanah lembab (`ledlembab`) menyala, LED tanah kering (`ledkering`) mati.

3. Kondisi Intensitas UV:

    - Intensitas UV Tinggi (nilaiUV > 1.6V):

        - Pada pengirim: Mengirimkan sinyal '7' melalui serial.

        - Pada penerima: Atap otomatis (`ATAP`) terbuka.

    - Intensitas UV Normal (nilaiUV ≤ 1.6V):

        - Pada pengirim: Mengirimkan sinyal '8' melalui serial.

        - Pada penerima: Atap otomatis (`ATAP`) tertutup.

4. Kondisi Sentuhan:

    - Sentuhan Terdeteksi:

        - Pada pengirim: Mengirimkan sinyal '9' melalui serial.

        - Pada penerima: Pompa air (`pompaAIR`) menyala.

5. Kondisi Kebakaran:

    - Api Terdeteksi:

        - Pada pengirim: Mengirimkan sinyal 'a' melalui serial.

        - Pada penerima: Buzzer (`BUZZER`) menyala sebagai alarm.

 

F. Video Simulasi [Kembali]

                   


  • Cara Menanam Sawi Yang Baik dan Benar

  • Sistem Cara Menyiram Sawi dengan Benar


G. Download File [Kembali]
































































BAHAN PRESENTASI MATA KULIAH JURUSAN TEKNIK ELEKTRO