LAPORAN M4 uP & uC



MODUL 4

Sistem Cerdas Monitoring Kandang Ayam Otomatis


     Peternakan ayam merupakan salah satu sektor penting dalam industri agrikultur yang berperan besar dalam memenuhi kebutuhan protein masyarakat Indonesia. Untuk menjaga produktivitas dan kesehatan ayam, lingkungan kandang harus tetap berada dalam kondisi optimal. Faktor-faktor seperti suhu, kelembapan, pencahayaan, kualitas udara, dan ketersediaan pakan memiliki pengaruh signifikan terhadap pertumbuhan dan kesejahteraan ayam. Sayangnya, pemantauan kondisi kandang secara manual masih banyak dilakukan oleh peternak, yang tidak hanya memakan waktu dan tenaga, tetapi juga rawan terhadap keterlambatan respons terhadap perubahan lingkungan yang berpotensi merugikan.

    Permasalahan tersebut mendorong perlunya sistem pemantauan otomatis yang dapat bekerja secara real-time, akurat, dan responsif terhadap perubahan kondisi di dalam kandang. Teknologi mikrokontroler menjadi solusi ideal karena mampu menjalankan fungsi monitoring dan kontrol secara terus-menerus dengan intervensi minimal dari manusia. Oleh karena itu, dirancanglah sebuah sistem cerdas berbasis Raspberry Pi Pico yang mampu memantau kondisi kandang ayam secara otomatis untuk meningkatkan efisiensi dan efektivitas manajemen peternakan.

    Sistem ini terdiri dari dua Raspberry Pi Pico yang berfungsi secara terintegrasi. Raspberry Pi Pico pertama bertugas membaca data dari sensor LDR untuk pencahayaan, sensor MQ-2 untuk kualitas udara (gas berbahaya), serta menampilkan informasi pada LCD I2C. Data yang diperoleh kemudian dikirim melalui komunikasi UART ke Raspberry Pi Pico kedua. Raspberry Pi Pico kedua menerima data dari sensor DHT22 (untuk suhu dan kelembapan) serta load cell (untuk mendeteksi berat pakan), sekaligus mengontrol berbagai aktuator berupa kipas, pemanas, atau dispenser pakan berdasarkan parameter yang diterima.

    Dengan hadirnya sistem ini, manajemen kandang ayam menjadi lebih efisien dan terotomatisasi. Lingkungan kandang dapat dijaga tetap ideal tanpa perlu pengawasan manual yang terus-menerus. Inovasi ini merupakan wujud nyata penerapan konsep Internet of Things (IoT) dan otomatisasi dalam sektor peternakan, yang tidak hanya mendukung peningkatan produktivitas dan kesejahteraan hewan, tetapi juga mempersiapkan industri peternakan untuk bersaing di era revolusi industri 4.0.


2. Tujuan [Kembali]

Tujuan dari rancangan yang dilakukan yaitu:

a. Memenuhi syarat untuk modul 4 Praktikum Mikroprosesor & Mikrokontroler.

b. Membuat sistem monitoring kandang ayam berbasis Raspberry Pi Pico secara otomatis.

c. Mengurangi pengerjaan secara manual terhadap pemantauan kondisi ternak ayam.



a. Alat

1.    Raspberry pi pico

Raspberry Pi Pico - Seeed Studio | Mouser

2.     Bread board


 

3.     Solder


 

4.     Sensor DHT22


 

5.     Sensor MQ2

 

6.     Sensor Loadcell


 

7.     Sensor LDR



8.     LCD 16x2 I2C

 

9.     Motor DC

10.  Baterai 1500 mAh


 

11.  Kotak Baterai 18650 x 3


12.  Jumper

 


13.  LED 

uxcell 40pcs 5mm Lampu Dioda LED Merah Hijau 

14.  Resistor

 Resistor: Pengertian, Rumus dan Jenis-jenis Resistor

15.  Servo motor


 

b. Bahan

1.     Double Tip

2.     Kardus

1. ADC (Analog to Digital Converter)

 ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi. 

 Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang diawali dengan kode A (A0- A5 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);.  

2. Mikrokontroler 

Raspberry Pi Pico adalah papan rangkaian elektronik yang di dalamnya terdapat komponen utama chip mikrokontroler RP2040, yang dirancang dan diproduksi oleh Raspberry Pi Foundatio. Tidak seperti komputer mini raspberry Pi lainnya yang menjalankan sistem operasi seperti Linux, Pico dirancang untuk tugas-tugas yang lebih sederhana dan langsung (embedded system), seperti membaca sensor, mengontrol perangkat, atau melakukan pengolahan data pada tingkat hardware. Adapun spesifikasi dari Raspberry Pi Pico adalah sebagai berikut:


Gambar 1. Arduino Uno



Microcontroller

RP2040

Operating Voltage

3.3 V

Input Voltage (recommended)

5 V via USB

Input Voltage (limit)

1.8–5.5 V

Digital I/O Pins

26 GPIO pins

PWM Digital I/O Pins  

16

Analog Input Pins

3

DC Current per I/O Pin

16 mA

DC Current for 3.3V Pin

300mA

Flash Memory                              

2 MB on-board QSPI Flash

SRAM

264 KB

Clock Speed

Hingga 133 MHz       

 

3. Komunikasi

3.1. Universal Asynchronous Receiver Transmitter (UART)

 UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.

Cara Kerja Komunikasi UART :

 Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudian ditransfer secara parallel ke data bus penerima.

3.2. Serial Peripheral Interface (SPI)

 Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroler maupun antara mikrokontroler dengan peripheral lain di luar mikrokontroler.

        MOSI : Master Output Slave Input artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.

        MISO : Master Input Slave Output artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.

        SCLK : Clock jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.

        SS/CS : Slave Select / Chip Select adalah jalur master memilih slave mana yang akan dikirimkan data.


Cara Kerja Komunikasi SPI :

 Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO.

3.3. Inter-Integrated Circuit (I2C)

 Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.

Cara Kerja Komunikasi I2C :

 Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2,  dan kondisi Stop.

        Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.

        Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL.

        R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave)

        ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telah diterima receiver.

 

4. Sensor

4.1. Sensor LDR

Sensor LDR (Light Dependent Resistor) adalah sensor yang mengubah intensitas cahaya menjadi resistansi listrik. Artinya, resistansi sensor akan berubah-ubah tergantung pada seberapa banyak cahaya yang diterimanya. Saat cahaya redup, resistansi LDR tinggi, sedangkan saat cahaya terang, resistansi LDR rendah. Sensor LDR disini digunakan untuk mendeteksi cahaya yang terdapat pada kandang ayam, LDR juga dihubungkan dengan LCD agar status suhu kandang dapat ditampilkan. Jika cahaya yang terdeteksi kurang dari 100 lux  maka  LED kuning hidup dan LCD menampilkan "cahaya matahari kurang", kemudian jika mendeteksi cahaya matahari lebih dari 100 lux maka LED kuning  mati dan LCD menampilkan "cahaya cukup".

Spesifikasinya meliputi

- Tegangan Operasi: 3.3 - 5V DC 

- Waktu Respons: 20ms (rise) dan 30ms (down)

- Metode output: 

Output analog: 0-4.5V 

- Suhu Operasional: 30 ~ 70 

- Berat: 5g 


Kurva karakteristik: Cahaya dan resistansi

 

4.2. Sensor MQ2

Sensor MQ2 adalah sensor gas yang dirancang untuk mendeteksi keberadaan gas yang mudah terbakar dan asap di udara. Sensor ini sering digunakan dalam berbagai aplikasi seperti deteksi kebocoran gas, sistem peringatan kebakaran, dan pemantauan kualitas udara. MQ2 termasuk dalam keluarga sensor MQ yang menggunakan prinsip chemiresistor, dimana resistansi sensor berubah ketika terpapar gas tertentu.

Cara Kerja Sensor MQ2

    Sensor MQ2 bekerja dengan mendeteksi perubahan resistansi pada elemen sensornya ketika terpapar gas, terutama gas yang mudah terbakar dan asap. Ketika gas terdeteksi, terjadi reaksi kimia pada permukaan sensor yang menyebabkan perubahan resistansi. Perubahan resistansi ini kemudian diubah menjadi sinyal analog yang dapat dibaca oleh mikrokontroler untuk memberikan informasi tentang keberadaan dan konsentrasi gas.

        Sensor gas dan asap ini mendeteksi konsentrasi gas yang mudah terbakar di udara serta asap dan output membaca sebagai tegangan analog. Sensor dapat mengukur konsentrasi gas mudah terbakar dari 300 sampai 10.000 sensor ppm. Dapat beroperasi pada suhu dari -20 sampai 50 ° C dan mengkonsumsi kurang dari 150 mA pada 5V. Dibawah ini merupakan gambar bentuk, internal sensor MQ-2.

Gambar konstruksi sensor MQ2

  Sensor MQ-2 terdapat 2 masukan tegangan yakni VH dan VC. VH digunakan untuk tegangan pada pemanas (Heater) internal dan Vc merupakan tegangan sumber serta memiliki keluaran yang menghasilkan tegangan berupa tegangan analog. Berikut konfigurasi dari sensor MQ-S :
1. Pin 1 merupakan heater internal yang terhubung dengan ground. 
2. Pin 2 merupakan tegangan sumber (VC) dimana Vc < 24 VDC.
3. Pin 3 (VH) digunakan untuk tegangan pada pemanas (heater internal) dimana VH     = 5VDC.
4. Pin 4 merupakan output yang akan menghasilkan tegangan analog.

4.3. Sensor DHT22



Sensor DHT22 merupakan sensor yang digunakan untuk mengukur suhu dan kelembaban udara. Sensor DHT22 memiliki tingkat stabilitas dan keandalan tinggi dalam jangka panjang. Sensor DHT22 menggunakan sensor kelembaban bersifat resistif dan sensor suhu berbasis NTC yang terhubung pada mikrokontroler 8 bit. Sehingga sensor DHT22 memiliki kualitas yang sangat baik, kemampuan antri-gangguan, respon yang cepat serta biaya yang terjangkau.

Interface serial kawat tunggal membuat integrasi sistem cepat dan mudah. Ukurannya yang kecil, konsumsi daya yang rendah dan up-to-20 meteran transmisi sinyal menjadikannya pilihan terbaik untuk berbagai aplikasi. Komponen ini memiliki 4-pin baris tunggal pin paket sehingga akan lebih mudah untuk dihubungkan. Sensor DHT22 memberi nilai kelembaban dan suhu yang sangat tepat dan memastikan keandalan tinggi dan stabilitas jangka panjang. Sensor ini memiliki komponen pengukuran kelembaban tipe resistif dan komponen pengukuran suhu tipe NTC dengan inbuilt mikrokontroler 8-bit yang memiliki respons cepat dan hemat biaya

5. LCD

 LCD (Liquid-Crystal Display) atau Penampil Kristal Cair adalah layar panel datar atau perangkat optik elektronik termodulasi yang menggunakan sifat modulasi cahaya dari kristal cair (liquid crystal) yang dikombinasikan dengan polarizer. Kristal cair tidak memancarkan cahaya secara langsung, melainkan menggunakan lampu latar atau reflektor untuk menghasilkan gambar berwarna atau monokrom.

Spesifikasi :

        Format tampilan : 16 x 2 karakter 

        Pengontrol bawaan : ST 7066 (atau setara)

        Siklus kerja : 1/16

        5 x 8 titik termasuk kursor

        Supply + 5 V (juga tersedia untuk + 3 V)

        LED dapat digerakkan oleh pin 1, pin 2, pin 15, pin 16 atau A dan K

        N.V. opsional untuk supply + 3 V 

6. Breadboard

    Breadboard Arduino adalah sejenis papan roti yang biasanya digunakan untuk membuat prototype rangkaian elektronik. Beberapa orang kadang menyebutnya project board atau bahkan  protoboard (prototype board). Pada dasarnya breadboard adalah board yang digunakan untuk membuat rangkaian elektronik tanpa harus merepotkan pengguna untuk menyolder. Biasanya papan breadboard ini digunakan untuk membuat rangkaian elektronik sementara untuk tujuan uji coba atau prototype.

Fungsi Breadboard :

    Kegunaan breadboard yaitu sebagai media penghantar (konduktor listrik) sekaligus tempat kabel jumper dilekatkan. Sehingga arus dari satu komponen bisa terdistribusi dengan baik sesuai keinginan ke komponen lain tanpa harus merepotkan pengguna untuk melakukan penyolderan atau melakukan bongkar pasang.

    Salah satu kelebihan tersendiri dari penggunaan breadboard adalah komponen-komponen yang telah dirakit tak akan rusak dan mudah untuk dibongkar pasang. Ini karena papan breadboard merupakan papan tanpa solder (solderless).
gambar breadboard

Cara Kerja Breadboard :

    Breadboard bisa dideskripsikan sebagai papan yang memiliki lubang koneksi berdasarkan pola tertentu. Untuk menghubungkan antara satu lubang dengan lubang yang lain, maka di bagian bawah lubang tersebut terdapat logam konduktor listrik yang diposisikan secara khusus. Ini berguna untuk memudahkan pengguna dalam membuat rangkaian. Logam konduktor yang ada di dalam breadboard umumnya seperti ini:

Cara Kerja Breadboard

Kira-kira posisi logam jalur breadboard bisa digambarkan sebagai berikut:

prinsip kerja breadboard

Berdasarkan gambar di atas, fungsi dari masing-masing jalur koneksi pada breadboard dengan keterangan warnanya yaitu sebagai berikut:
  • Jalur warna merah, digunakan untuk menempatkan pin 5V atau kutub positif dari arduino untuk dihubungkan ke kutub positif komponen lain.
  • Jalur warna biru, digunakan untuk menempatkan pin GND atau kutub negatif dari arduino untuk dihubungkan ke kutub negatif komponen lain.
  • Jalur warna hijau, digunakan untuk menempatkan pin digital dari Arduino untuk dihubungkan ke komponen lain.
Selain itu, di bagian tengah papan breadboard terdapat ruang kosong yang masing-masing pinggirannya terdapat ujung jalur vertikal. Fungsi dari ruang kosong ini adalah untuk menancapkan langsung ic component.

Jenis-jenis Breadboard

Beberapa ukuran breadboard yang tersedia di pasaran antara lain:
  • Mini Breadboard, yaitu jenis yang paling kecil diantara semua breadboard dan memiliki sekitar 170 titik koneksi.
mini breadboard
  • Medium Breadboard, yaitu jenis breadboard ukuran sedang yang kadang juga disebut half breadboard karena memiliki ukuran dan jumlah titik koneksinya setengah dari jumlah titik koneksi breadboard ukuran besar. Yaitu 400 titik koneksi.
medium breadboard
  • Large Breadboard, yaitu jenis yang ukurannya paling besar diantara semua jenis breadboard dan memiliki sekitar 830 titik koneksi.
large breadboard

8. Baterai

 Baterai merupakan alat listrik-kimiawi yang menyimpan energi serta mengeluarkan tenaganya dalam bentuk listrik. Baterai ialah perangkat yang mampu menghasilkan tegangan DC, yaitu dengan cara mengubah energi kimia yang terkandung di dalamnya menjadi energi listrik melalui suatu reaksi elektrokimia, Redoks (Reduksi – Oksidasi). Baterai yang biasa dijual (disposable/sekali pakai) ini mempunyai tegangan listrik 1,5 volt. Baterai ada yang berbentuk tabung ataupun kotak.


9. Motor DC 3V



Motor DC 3V adalah motor listrik yang beroperasi pada tegangan 3 volt dan menggunakan arus searah (DC) untuk menghasilkan gerakan mekanis. Motor ini mengubah energi listrik menjadi energi kinetik, yang memungkinkan perputaran poros. Motor DC 3V sering digunakan dalam berbagai aplikasi, termasuk proyek-proyek sains, mainan, dan perangkat elektronik kecil.

Spesifikasi:

Tegangan Kerja1.5V – 6V
Tegangan Nominal3V
Arus Tanpa Beban~70 – 250 mA
Arus Saat Beban~300 – 1.000 mA
Kecepatan Tanpa Beban~6.000 – 12.000 RPM @3V
Torsi Output~10 – 30 g·cm @3V
Daya Output~0.3 – 1.5 Watt
Arah PutaranCW / CCW (tergantung polaritas)
Dimensi MotorSekitar 25 x 20 x 15 mm
Berat±15 gram
Diameter Shaft (poros)2 mm
Panjang Shaft±8 – 10 mm
Tipe KonstruksiBrushed DC Motor


10. Servo motor

        Motor servo adalah motor elektrik yang dirancang untuk kontrol posisi yang presisi dalam sistem mekanis, baik posisi sudut maupun linier. Motor ini digunakan dalam berbagai aplikasi yang memerlukan gerakan terkontrol dengan akurasi tinggi, seperti robotika, sistem kendali otomatis, dan peralatan industri.

Motor servo bekerja berdasarkan sistem kontrol loop tertutup, yang berarti mereka menggunakan umpan balik posisi untuk memastikan gerakan sesuai dengan perintah yang diberikan. Motor servo menerima sinyal kontrol (biasanya berupa sinyal PWM) yang menentukan posisi target, kemudian motor akan bergerak dan mempertahankan posisinya sesuai dengan sinyal tersebut.

Spesifikasi:

Tipe:Micro Servo Motor (SG90)
Tegangan Operasional:4.8V – 6V (umumnya bisa dari 3V berjalan tapi lemah)
Tegangan Minimum:3V (tidak direkomendasikan untuk beban berat)
Torsi Maksimal:~1.8 kg·cm @ 4.8V
Sudut Putaran:0° – 180° (kontrol PWM)
Waktu Respons:~0.1 s/60° @ 4.8V
Arus Tanpa Beban: ~100 – 250 mA
Arus Saat Beban:~300 – 500 mA
Tipe: KendaliSinyal PWM 50Hz (1 – 2 ms pulse)
Berat:±9 gram
Ukuran:±22.8 x 12.2 x 28.5 mm
Gearbox:Plastik (untuk SG90), Metal (versi MG90S)
Kabel:3 kabel: VCC (Merah), GND (Coklat), Sinyal (Oranye)

  1. Download library yang diperlukan 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".Pastikan opsi
  6. "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.
  12. Jalankan simulasi di Proteus.

  • Rangkaian Simulasi




  • Prinsip Kerja

Rangkaian ini terdiri dari beberapa sensor yang masing-masing memiliki fungsi spesifik untuk mengontrol dan memonitor kondisi lingkungan dan tanaman mangga. Sensor DHT11, yang terhubung ke pin digital 4 pada Arduino Master, mengukur suhu dan kelembaban udara dengan membaca data setiap 2 detik, yang kemudian ditampilkan pada LCD I2C dan dikirimkan ke Arduino Slave. Sensor kelembaban tanah yang terhubung ke pin analog A3 pada Arduino Master mengukur kadar air dalam tanah dengan mendeteksi perubahan resistansi. Sensor hujan, terhubung ke pin digital 3, mendeteksi keberadaan air hujan berdasarkan perubahan resistansi ketika air mengenai sensor. Sensor LDR, terhubung ke pin analog A0, mengukur intensitas cahaya dengan mengubah resistansi sesuai jumlah cahaya yang diterima. Sensor Infrared, terhubung ke pin digital 8, mendeteksi keberadaan hama atau predator dan mengirimkan sinyal ke Arduino Master. Arduino Master menampilkan nilai suhu dalam derajat Celsius dan kelembaban dalam persen pada LCD, serta mengirimkan data dari semua sensor ke Arduino Slave melalui komunikasi serial. Arduino Slave, yang menerima data ini, mengontrol buzzer pada pin 5, Motor DC 1 pada pin 4, Motor DC 2 pada pin 3, dan LED pada pin 2. Buzzer dan Motor DC 1 diaktifkan ketika sensor Infrared mendeteksi hama atau predator. Motor DC 2 diaktifkan untuk menyiram tanaman jika nilai kelembaban tanah kurang dari 1000 dan sensor hujan tidak mendeteksi hujan. LED menyala ketika intensitas cahaya tinggi (nilai dari sensor LDR lebih dari 600). Secara keseluruhan, sistem ini berfungsi untuk memonitor dan mengontrol kondisi lingkungan secara otomatis, memastikan tanaman mangga mendapatkan perawatan optimal.

  • Flowchart
            Flowchart LDR sensor
            Flowchart sensor InfraRed
            Flowchart sensor DHT 11




            Flowchart soil moisture sensor





            Flowchart Rainsensor


  • Listing Program

A.    Sender

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#include <DHT.h>

 

#define DHTPIN 4      // Pin untuk sensor DHT11

#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

 

// Ganti 0x27 dengan alamat I2C yang ditemukan dari I2C scanner

LiquidCrystal_I2C lcd(0x27, 16, 2);

 

unsigned long previousMillis = 0;

const long interval = 2000; // Interval waktu untuk bergantian (2 detik)

 

void setup() {

  Serial.begin(9600); // Inisialisasi komunikasi serial

  dht.begin();

  lcd.init();        // Menggunakan init() untuk menginisialisasi LCD

  lcd.backlight();

}

 

void loop() {

  unsigned long currentMillis = millis();

 

  if (currentMillis - previousMillis >= interval) {

    previousMillis = currentMillis;

   

    // Tampilkan suhu dan kelembaban

    float h = dht.readHumidity();

    float t = dht.readTemperature();

 

    lcd.clear();

    lcd.setCursor(0, 0);

    lcd.print("Temp: ");

    lcd.print(t);

    lcd.print(" C");

 

    lcd.setCursor(0, 1);

    lcd.print("Humidity: ");

    lcd.print(h);

    lcd.print(" %");

 

    // Membaca data sensor lainnya

    int Infrared = digitalRead(8); // Pin 8 untuk sensor Infrared

    int soilMoisture = analogRead(A3); // Pin A0 untuk sensor soil moisture

    int rainSensor = digitalRead(3); // Pin 2 untuk sensor rain

    int ldr = analogRead(A0); // Pin A1 untuk sensor LDR

 

    // Mengirim data ke Arduino 2

    Serial.print(Infrared);

    Serial.print(",");

    Serial.print(soilMoisture);

    Serial.print(",");

    Serial.print(rainSensor);

    Serial.print(",");

    Serial.println(ldr);

  }

 

  delay(5000); // Mengatur frekuensi pembacaan sensor

}

 

B.    Receiver

#define BUZZER_PIN 5 // Pin untuk Buzzer

#define MOTOR1_PIN 4 // Pin untuk Motor DC 1

#define MOTOR2_PIN 3 // Pin untuk Motor DC 2

#define LED_PIN 2 // Pin untuk LED

 

void setup() {

  Serial.begin(9600); // Inisialisasi komunikasi serial

  pinMode(BUZZER_PIN, OUTPUT);

  pinMode(MOTOR1_PIN, OUTPUT);

  pinMode(MOTOR2_PIN, OUTPUT);

  pinMode(LED_PIN, OUTPUT);

}

void loop() {

  if (Serial.available() > 0) {

    String data = Serial.readStringUntil('\n');

    int splitIndex1 = data.indexOf(',');

    int splitIndex2 = data.indexOf(',', splitIndex1 + 1);

    int splitIndex3 = data.indexOf(',', splitIndex2 + 1);

 

    int Infrared = data.substring(0, splitIndex1).toInt();

    int soilMoisture = data.substring(splitIndex1 + 1, splitIndex2).toInt();

    int rainSensor = data.substring(splitIndex2 + 1, splitIndex3).toInt();

    int ldr = data.substring(splitIndex3 + 1).toInt();

 

    // Logika untuk Buzzer dan Motor DC 1

    if (Infrared == HIGH) {

      digitalWrite(BUZZER_PIN, HIGH);

      digitalWrite(MOTOR1_PIN, HIGH);

    } else {

      digitalWrite(BUZZER_PIN, LOW);

      digitalWrite(MOTOR1_PIN, LOW);

    }

 

    // Logika untuk Motor DC 2

    if (soilMoisture > 300 && rainSensor == LOW) {

      digitalWrite(MOTOR2_PIN, HIGH);

    } else {

      digitalWrite(MOTOR2_PIN, LOW);

    }

 

    // Logika untuk LED

    if (ldr > 600) {

      digitalWrite(LED_PIN, HIGH);

    } else {

      digitalWrite(LED_PIN, LOW);

    }

  }

}



Video Simulasi Proteus

Video Percobaan



Link Download File Rangkaian Proteus [Unduh]
Link Download Video Simulasi [Unduh]
Link Download Video Percobaan [Unduh]
Link Download HTML [Unduh]
Link Download Program Arduino [Unduh]
Link Download Pdf Laporan [Unduh]
Link Download Library Arduino [Unduh]
Link Download Library Rain Sensor  [Unduh]
Link Download Library InfraRed Sensor  [Unduh]
Link Download Library Soil Moisture Sensor  [Unduh]
Link Download Datasheet Arduino [Unduh]
Link Download Datasheet Rain Sensor  [Unduh]
Link Download Datasheet Sensor LDR [Unduh]
Link Download Datasheet Sensor DHT11 [Unduh]
Link Download Datasheet Sensor Infrared [Unduh]
Link Download Datasheet Sensor Capacitive Soil Moisture [Unduh]
Link Download Datasheet Pompa DC [Unduh]
Link Download Datasheet Relay [Unduh]
Link Download Datasheet Buzzer [Unduh]
Link Download DataSheet Resistor [Unduh]












Komentar

Postingan populer dari blog ini

MODUL 1 PRAKTIKUM UP & UC

Modul 1 Praktikum Sistem Digital

Modul 3 Praktikum Sistem Digital