TP M2 - P5K1






1. Prosedur [kembali]
  • Rangkai semua komponen 
  • Buat program di website wokwi
  • Jalankan program dan cobakan sesuai kondisi
2. Hardware dan Diagram Blok [kembali]

Hardware :

1. Raspberry Pi Pico






2. DHT22




3. POTENSIOMETER




4. MOTOR SERVO





5. BUZZER











3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]





Rangkaian ini menggunakan rasberry pi sebagai mikrokontroler dengan inputnya adalah DHT22 sebagai sensor suhu dan kelembapan, dan potensiometer sebagai input analog. Output dari rangkaian ini adalah buzzer dan motor servo. DHT22 dihubungkan ke pin, lalu diinisialisasi sebagai input pada program. Potensiometer sebagai input analog, hanya bisa dihubungkan ke pin 26,27, dan 28 pada raspberry pi pico karena pin tersebut bisa sebagai adc ataupun gpio digital. Selanjutnya, salah satu kaki buzzer dan motor servo dihubungkan ke pin gpio dan diinisialisasi sebagai ouput. Jika potensio diputar searah jarum jam, maka servo akan begerak searah jarum jam. Pada buzzer, buzzer akan berbunyi jika dht22 mendeteksi suhu < 35 C dan atau kelembapan > 50 %. Bunyi buzzer akan berbeda untuk setiap kondisinya.


4. Flowchart dan Listing Program[Kembali]

 Flowchart:








Listing Program:

from machine import Pin, ADC, PWM
import time
import dht

# Inisialisasi potensiometer pada GPIO 26 (ADC0)
pot = ADC(26)

# Inisialisasi motor servo pada GPIO 15 (PWM)
servo = PWM(Pin(15))
servo.freq(50)  # Frekuensi PWM untuk servo

# Inisialisasi sensor DHT22 pada GPIO 16
dht_sensor = dht.DHT22(Pin(16))

# Inisialisasi buzzer sebagai PWM pada GPIO 14
buzzer = PWM(Pin(14))
buzzer.duty_u16(0)  # Tidak ada suara saat awal

# Fungsi mapping nilai
def map_value(value, in_min, in_max, out_min, out_max):
    return int((value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min)

# Fungsi untuk membunyikan buzzer dengan nada tertentu
def play_buzzer_note(frequency, duration_ms):
    buzzer.freq(frequency)
    buzzer.duty_u16(32768)  # Volume setengah
    time.sleep_ms(duration_ms)
    buzzer.duty_u16(0)
    time.sleep_ms(50)  # Jeda antar nada

# Fungsi melodi untuk suhu rendah
def play_low_temp_melody():
    play_buzzer_note(440, 200)   # A4
    play_buzzer_note(494, 200)   # B4
    play_buzzer_note(523, 200)   # C5

# Fungsi melodi untuk kelembapan tinggi
def play_high_humidity_melody():
    play_buzzer_note(659, 200)   # E5
    play_buzzer_note(698, 200)   # F5
    play_buzzer_note(784, 200)   # G5

# Fungsi melodi kombinasi suhu rendah & kelembapan tinggi
def play_combined_alert_melody():
    play_buzzer_note(1047, 200)  # C6
    play_buzzer_note(1175, 200)  # D6
    play_buzzer_note(1319, 200)  # E6

# Loop utama
while True:
    # Baca potensiometer
    pot_value = pot.read_u16()
    servo_angle = map_value(pot_value, 0, 65535, 0, 180)  # 0 - 180 derajat
    servo_duty = map_value(servo_angle, 0, 180, 1638, 8192)  # Duty PWM
    servo.duty_u16(servo_duty)

    # Baca suhu dan kelembapan dari DHT22
    try:
        dht_sensor.measure()
        temperature = dht_sensor.temperature()
        humidity = dht_sensor.humidity()

        print(f"Suhu: {temperature}°C | Kelembapan: {humidity:.1f}%")

        # Kondisi buzzer
        suhu_rendah = temperature < 35
        kelembapan_tinggi = humidity > 50

        if suhu_rendah and kelembapan_tinggi:
            print("🔔 Buzzer ON: Suhu rendah & Kelembapan tinggi!")
            play_combined_alert_melody()
        elif suhu_rendah:
            print("❄️ Buzzer ON: Suhu rendah!")
            play_low_temp_melody()
        elif kelembapan_tinggi:
            print("💧 Buzzer ON: Kelembapan tinggi!")
            play_high_humidity_melody()
        else:
            buzzer.duty_u16(0)  # Matikan suara jika normal

    except OSError:
        print("⚠️ Gagal membaca sensor DHT22.")

    time.sleep(0.5)




5. Kondisi[Kembali]


Buatlah rangkaian seperti gambar pada percobaan 5. Jika potensiometer diputar searah jarum jam, servo bergerak searah jarum jam. Jika suhu < 35°C buzzer berbunyi, jika kelembapan >50% buzzer berbunyi, jika kedua kondisi tadi memnuhi buzzer jugaberbunyi. Dimana masing masing keadaan tadi memiliki bunyi yang berbeda.



6. Video Simulasi[Kembali]









7. Download File[Kembali]

Rangkaian [disini]
Datasheet Raspberry Pi Pico [Download]


Tidak ada komentar:

Posting Komentar

    BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA 2022 Nama: Adnan Fauzan    NIM: 2210953001 Elektronika B Dosen Pengampu ; Darwison,M.T R...