Tugas Pendahuluan 2 M2




Tugas Pendahuluan 2 Modul 2
(Percobaan 5 Kondisi 1)

1. Prosedur
[Kembali]

1. Rangkai rangkaian sesuai gambar di wokwi.
2. Tulis program untuk Raspberry Pi Pico.
3. Jalankan sistem.
4. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :
1. Raspberry Pi Pico 

2. Servo

3. Buzzer

4. DHT22


5. Potensiometer



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]


Rangkaian Simulasi :



Prinsip Kerja : 

  Rangkaian pada percobaan 5 ini terdiri dari Raspberry Pi Pico sebagai pusat kendali, yang terhubung dengan beberapa komponen: sensor suhu dan kelembapan DHT22, potensiometer, servo motor, dan buzzer. Potensiometer berfungsi sebagai input analog untuk mengatur sudut putaran servo motor—jika potensiometer diputar searah jarum jam, maka nilai ADC meningkat dan Raspberry Pi Pico akan mengatur sinyal PWM agar servo juga berputar searah jarum jam sesuai derajat yang diinginkan. Sensor DHT22 mengukur suhu dan kelembapan lingkungan. Raspberry Pi Pico memproses data dari DHT22, dan akan mengaktifkan buzzer jika salah satu atau dua kondisi terpenuhi: suhu di bawah 35°C atau kelembapan di atas 50%. Setiap kondisi menghasilkan bunyi buzzer yang berbeda (misalnya dengan frekuensi atau pola nyala yang berbeda), sehingga pengguna dapat membedakan kondisi lingkungan hanya dari suara yang dihasilkan. Prinsip kerja ini menggabungkan pengendalian motor, pembacaan sensor digital, input analog, serta respons suara dalam satu sistem monitoring berbasis mikrokontroler.


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 tinggi
def play_high_temp_melody():
    play_buzzer_note(880, 200)   # A5
    play_buzzer_note(988, 200)   # B5
    play_buzzer_note(1047, 200)  # C6

# 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 dan 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)
    servo_duty = map_value(servo_angle, 0, 180, 1638, 8192)
    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}%")

        # Cek kondisi dan mainkan melodi sesuai kondisi
        if temperature < 35 and humidity > 50:
            print("🔥💧 Buzzer ON: Suhu & Kelembapan tinggi!")
            play_combined_alert_melody()
        elif temperature < 35:
            print("🔥 Buzzer ON: Suhu tinggi!")
            play_high_temp_melody()
        elif humidity > 50:
            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]

Percobaan 5 Kondisi 1
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]

HTML Download
File Rangkaian Download
Video Percobaan Download
Datasheet Raspberry Pi Pico  Download
Datasheet Push Button Download
Datasheet LED RGB Download
Datasheet Resistor Download
Datasheet Buzzer Download








Tidak ada komentar:

Posting Komentar

Kelebihan dan Kekurangan Seorang Pemimpin 

Kelebihan dan Kekurangan Seorang Pemimpin  Seorang pemimpin memainkan peran penting dalam keberhasilan sebuah organisasi, komunitas, atau ne...