LA M4 mP uP



MODUL 4

Sistem Cerdas Monitoring Kandang Ayam Otomatis


    



  1. Download library yang diperlukan pada bagian download dalam blog.     
  2. Buka WOKWI yang untuk membuat rangkaian simulasi.
  3. Tambahkan komponen seperti Dev Board (Raspberry Pi Pico 2 buah), sensor (DHT22, MQ2, Loadcell, LDR,), dan perangkat lain/output (Van, Kipas, Motor Servo, LCD, LED) lalu susun menjadi rangkaian yang sesuai.
  4. Buat dan masukan kodingan yang sudah sesuai dengan semua sensor yang ada pada rangkaian.
  5. Buka Thony yang sudah diinstal dan hubungkan ke raspberry pi pico.
  6. Di Thony, pilih port yang sudah di pilih dan kemudian Thony akan mendeteksi dev board yang ada.
  7. Setelah Dev Board terdeteksi, pilih dan salin atau masukkan kodingan yang sudah di buat.
  8. Kemudian salinkan kodingan untuk di inputkan ke dalam dev board.
  9. Salin kode program Thony kemudian tempelkan program tadi ke Raspberry pi pico
  10. Jalankan Rangkaian



  • Rangkaian Simulasi

1. DHT22 (Sensor Suhu dan Kelembapan)

📌 Fungsi:

Mengukur suhu dan kelembapan udara di lingkungan sekitar.

⚙️ Cara Kerja:

  • DHT22 membaca suhu dan kelembapan melalui sensor resistif internal.

  • Menghasilkan output digital yang dikirim melalui satu pin data ke Raspberry Pi Pico 1.

  • Pico 1 membaca nilai suhu dan kelembapan dengan library khusus (seperti dht di MicroPython).

  • Data suhu dan kelembapan dikirim ke Pico 2 melalui komunikasi UART.

🎯 Dampak terhadap Output:

  • Jika suhu lebih dari ambang batas (misalnya 35°C), Fan (kipas) diaktifkan oleh Raspberry Pi Pico 2 untuk mendinginkan ruangan atau alat.

2. MQ2 (Sensor Gas/Asap)

📌 Fungsi:

Mendeteksi keberadaan gas berbahaya seperti Amonia CO, dan asap.

⚙️ Cara Kerja:

  • Sensor MQ2 memiliki elemen pemanas dan elektroda kimia yang berubah resistansi ketika mendeteksi gas.

  • Outputnya berupa van yang menghisap dan mengeluarkan gas berbahaya ke luar kandang.

  • Raspberry Pi Pico 1 membaca nilai ini yang berfungsi sebagai input dari sensor ini.

  • Jika gas terdeteksi, data dikirim ke Pico 2.

🎯 Dampak terhadap Output:

  • Ketika Pico 2 menerima sinyal adanya gas berbahaya, Motor DC 1 (Van) diaktifkan.
    Motor (Van) ini bisa berfungsi sebagai sistem penghisap udara atau alarm mekanis (pengganti LED indikator merah).

3. Load Cell (Sensor Berat)

📌 Fungsi:

Mengukur berat pada pakan ayam, untuk mengisi kembali lumbung pakan ketika sensor mendeteksi berat pakan sudah berkurang dari yang di setting.

⚙️ Cara Kerja:

  • Load Cell menghasilkan sinyal listrik sangat kecil saat tekanan diberikan.

  • Ketika loadcell mendeteksi kurangnya berta pakan ayam yang artinya pakan ayam tinggal sedikit di tempat pakan ayam, maka sensor akan aktif.

  • Raspberry Pi Pico 1 membaca data berat pakan yang berkurang dan mengirimkan sinyal ke Pico 2 

  • Berat dikirim ke Pico 2 melalui komunikasi UART.

🎯 Dampak terhadap Output:

  • Jika berat sudah kurang dari nilai tertentu (misalnya 100 g), maka Servo Motor akan bergerak untuk membuka pintu pada stok pakan ayam untuk dapat mengisi pakan ayam yang sudah berkurang, sampai pada berat tertentu (misalnya 120 g) maka servo akan kembali menutup pintu stok pakan ayam agarpakan ayam tidak terbuang atau melimpah.

4. LDR (Sensor Cahaya)

📌 Fungsi:

Mendeteksi intensitas cahaya di lingkungan.

⚙️ Cara Kerja:

  • LDR memiliki hambatan yang berkurang saat cahaya terang, dan meningkat saat gelap.

  • Pico 1 membaca tegangan analog (via ADC) dari rangkaian pembagi tegangan dengan LDR.

  • Semakin gelap, nilai ADC meningkat → dikirim ke Pico 2.

🎯 Dampak terhadap Output:

  • Jika intensitas cahaya rendah (misalnya < 100 lux), maka LED akan menyala untuk dapat menghangatkan kandang ayam.

Alur Kerja LCD dalam Sistem:

  1. Sensor dibaca oleh Pico 1.

  2. Pico 1 kirim data ke Pico 2.

  3. Pico 2 olah dan tampilkan ke LCD:

    • Data suhu & kelembapan (DHT22).

    • Status gas (MQ2).

    • Berat beban (Load Cell).

    • Cahaya (LDR, jika diperlukan).

  4. Tampilan diperbarui terus-menerus.

                        Suhu: 29.5C            RH: 60%
                          Berat: 1.25kg          Gas: Aman

  • Flowchart
            Flowchart LDR sensor
            

               Flowchart sensor DHT22

         Flowchart Loadcell


         Flowchart MQ2


  • Listing Program

A.    Pico 1

from machine import Pin, ADC, I2C, UART

from time import sleep

import lcd_api

import pico_i2c_lcd


# === Inisialisasi UART ===

uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))


# === Inisialisasi Sensor ===

ldr = ADC(26)  # GP26

mq2 = ADC(27)  # GP27


# === Inisialisasi Output ===

led_kuning = Pin(9, Pin.OUT)  # LED untuk LDR

led_merah = Pin(8, Pin.OUT)   # LED untuk MQ2


# === Inisialisasi LCD ===

i2c = I2C(1, scl=Pin(7), sda=Pin(6), freq=400000)

lcd = pico_i2c_lcd.I2cLcd(i2c, 0x27, 2, 16)


def adc_to_lux(adc_value):

    return (65535 - adc_value) / 65535 * 1000


def adc_to_ppm(adc_value):

    return (adc_value / 65535) * 10000


while True:

    # --- Sensor LDR ---

    lux = adc_to_lux(ldr.read_u16())

    print(f"LUX: {lux:.2f}")

    lcd.clear()

    if lux < 100:

        led_kuning.value(1)

        lcd.putstr("Cahaya: Kurang")

    else:

        led_kuning.value(0)

        lcd.putstr("Cahaya: Cukup")

    sleep(2)


    # --- Sensor MQ2 ---

    ppm = adc_to_ppm(mq2.read_u16())

    print(f"MQ2: {ppm:.2f} ppm")

    lcd.clear()

    if ppm >= 200:

        led_merah.value(1)

        lcd.putstr("Amonia Berbahaya")

    else:

        led_merah.value(0)

        lcd.putstr("Amonia Rendah")

    sleep(2)


    # --- Kirim sinyal ke Pico 2 jika ingin koordinasi (opsional) ---

    # uart.write("PING\n")

 

B.    Pico 2

from machine import Pin, PWM, UART

from time import sleep

import dht

import hx711


# === Inisialisasi UART ===

uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))


# === Inisialisasi Sensor ===

dht22 = dht.DHT22(Pin(2))  # GP2

hx = hx711.HX711(d_out=Pin(3), pd_sck=Pin(4))  # GP3 dan GP4

hx.set_scale(2280)

hx.tare()


# === Inisialisasi Output ===

led_hijau = Pin(15, Pin.OUT)  # GP15

servo = PWM(Pin(16))  # GP16

servo.freq(50)


def gerakkan_servo(derajat):

    min_us = 500

    max_us = 2500

    us = min_us + (max_us - min_us) * derajat / 180

    duty = int(us * 65535 / 20000)

    servo.duty_u16(duty)


while True:

    # --- Sensor DHT22 ---

    try:

        dht22.measure()

        suhu = dht22.temperature()

        print("Suhu:", suhu)

        if suhu > 35:

            led_hijau.value(1)

        else:

            led_hijau.value(0)

    except:

        print("Gagal baca DHT22")

    sleep(2)


    # --- Sensor Loadcell & Servo ---

    try:

        berat = hx.get_units(5)

        print("Berat:", berat)

        if berat < 100:

            gerakkan_servo(90)  # Tuas buka

        elif berat > 120:

            gerakkan_servo(0)  # Tuas tutup

    except:

        print("HX711 error")

    sleep(2)


    # --- Terima data dari Pico 1 jika diperlukan ---

    # if uart.any():

    #     data = uart.readline()

    #     print("Dari Pico 1:", data)


Link File Rangkaian Wokwi [Link]
Link Download Video Percobaan [Unduh]
Link Download HTML [Unduh]
Link Download Pdf Laporan [Unduh]
Link Download Datasheet Raspberry Pi Pico [Unduh]
Link Download Datasheet MQ2 Sensor  [Unduh]
Link Download Datasheet Sensor LDR [Unduh]
Link Download Datasheet Sensor DHT22 [Unduh]
Link Download Datasheet Sensor Loadcell [Unduh]
Link Download Datasheet Motor DC [Unduh]
Link Download Datasheet Motor Servo [Unduh]
Link Download Datasheet LED [Unduh]
Link Download DataSheet Resistor [Unduh]
Link Download DataSheet LCD [Unduh]
Link Download DataSheet Van [Unduh]












Komentar

Postingan populer dari blog ini