LAPORAN AKHIR 2




Laporan Akhir 2 Modul 2
(Percobaan 5)

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.  Motor Servo




3. Buzzer




4. Sensor DHT22

5. Potensiometer



Diagram Blok  :



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]




Prinsip Kerja : 

Prinsip kerja rangkaian ini dimulai dengan inisialisasi seluruh perangkat keras, yaitu sensor suhu dan kelembapan DHT22, potensiometer, motor servo, dan buzzer, yang semuanya dikendalikan oleh mikrokontroler Raspberry Pi Pico. Dalam loop utama, sistem pertama-tama membaca nilai dari potensiometer yang kemudian digunakan untuk mengatur posisi motor servo sesuai nilai tersebut. Setelah itu, mikrokontroler membaca data suhu dan kelembapan dari sensor DHT22. Jika sensor gagal mengirimkan data, maka sistem akan mencetak pesan kesalahan (print error). Namun, jika data berhasil dibaca, maka nilai suhu dan kelembapan akan ditampilkan. Selanjutnya, sistem melakukan evaluasi terhadap nilai suhu dan kelembapan tersebut. Jika suhu lebih dari 35°C dan kelembapan lebih dari 50%, maka sistem akan menampilkan peringatan dan mengaktifkan buzzer dengan melodi gabungan. Jika hanya suhu yang melebihi 35°C, maka sistem akan memberikan peringatan dan membunyikan buzzer dengan melodi suhu tinggi. Jika hanya kelembapan yang melebihi 50%, maka buzzer berbunyi dengan melodi kelembapan tinggi. Jika kedua parameter berada dalam batas normal, maka buzzer tidak akan menyala. Seluruh proses ini diulang setiap 0.5 detik dalam loop utama sistem.


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 buzzer sebagai PWM pada GPIO 14

buzzer = PWM(Pin(14))

buzzer.duty_u16(0)  # Tidak ada suara saat awal

 

# Inisialisasi sensor DHT22 pada GPIO 16

dht_sensor = dht.DHT22(Pin(16))

 

# 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

 

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. Analisa [Kembali]








6. Video Demo [Kembali]






7. Download File [Kembali]

Download HTML download
Download Video Demo download
Download Listing Program download
Datasheet Raspberry Pi Pico [Download]


 

Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI UNTUK MATA KULIAH  MIKROPROSESOR DAN MIKROKONTROLER 2024 OLEH: RAHMIDA 2210952005 Dosen Pengampu: Darwison, M.T Referensi...