Modul 4 Mikroprosesor & Mikrokontroler




Sistem Monitoring Suhu Mesin Pengolahan Karet untuk Mencegah Kebakaran Pada Pabrik Karet


Pabrik pengolahan karet merupakan lingkungan kerja yang memiliki risiko tinggi terhadap kebakaran, terutama akibat suhu mesin yang beroperasi secara intensif dan terus-menerus. Proses pemanasan dan pengolahan karet pada suhu tinggi sangat rentan terhadap peningkatan suhu yang tidak terkontrol, yang dapat memicu percikan api atau reaksi kimia berbahaya. Dalam banyak kasus, kurangnya sistem pemantauan suhu secara real-time menyebabkan keterlambatan dalam penanganan kondisi darurat, sehingga memperbesar potensi kerugian material dan keselamatan pekerja.

Untuk mengatasi permasalahan tersebut, diperlukan sistem monitoring suhu yang dapat bekerja secara otomatis dan terus menerus, guna mendeteksi suhu berlebih serta gejala awal kebakaran seperti percikan api atau kebocoran gas. Proyek ini bertujuan untuk mengembangkan sebuah sistem monitoring suhu mesin pengolahan karet berbasis mikrokontroler Raspberry Pi Pico, yang mampu memantau suhu secara real-time menggunakan sensor suhu analog. Jika suhu terdeteksi melebihi ambang batas yang telah ditentukan, sistem akan secara otomatis mengaktifkan kipas pendingin melalui motor DC yang dikendalikan oleh sinyal PWM, menyalakan LED merah sebagai indikator bahaya, serta membunyikan buzzer sebagai alarm peringatan dini.

Lebih lanjut, sistem juga dilengkapi dengan sensor api (flame sensor) dan sensor gas (MQ-2) untuk mendeteksi keberadaan percikan api atau gas mudah terbakar. Jika terdeteksi kondisi kritis, sistem akan memperkuat alarm dan mengirimkan data suhu serta status keselamatan melalui komunikasi UART ke Raspberry Pi Pico kedua. Pico kedua akan menampilkan informasi suhu dan kondisi mesin pada LCD 16x2 agar mudah dipantau oleh operator. Untuk memastikan sistem bekerja dengan efisien tanpa gangguan, metode pembacaan data menggunakan millis() diterapkan agar tidak menghambat proses lain, serta interrupt digunakan untuk merespons kondisi kritis secara cepat.

Dengan adanya sistem ini, diharapkan potensi kebakaran akibat suhu berlebih atau percikan api dapat diminimalisir sedini mungkin, sehingga mendukung terciptanya lingkungan kerja yang lebih aman dan terkontrol di pabrik pengolahan karet.


Tujuan dari rancangan yang dilakukan yaitu:

  1. Memenuhi syarat untuk modul 4 Praktikum Mikroprosesor & Mikrokontroler

  2. Untuk mendesain Sistem Monitoring Suhu Mesin Pengolahan Karet untuk Mencegah Kebakaran Pada Pabrik Karet

  3. Mengimplementasikan rangkaian Sistem Monitoring Suhu Mesin Pengolahan Karet ke bentuk prototipe


 
  • Alat
      1.   Solder
  • Komponen

1.     Raspberry Pi Pico

2.     Sensor MQ-2 

3.     Sensor Flame

4.     Sensor LM-35

5.     LED Hijau

6.     LED Merah

7.     Relay 5V

8.     LCD 2×16

9.     Water Pump

10.  Motor DC

11.  Baterai

12.  Jumper

13.  Selang air

14.  Resistor

15.  Buzzer

16.  Motor Servo

17.  Kotak baterai

18.  Fan

19.  DC to DC Step Down

1. PWM (Pulse Width Modulation)

PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (Duty Cycle) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi. Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).

        Duty Cycle = tON / ttotal

        tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1) 

        tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0) 

        ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut juga dengan “periode satu gelombang” 

Pada board Raspberry Pi Pico, hampir semua pin digital dapat digunakan untuk PWM (Pulse Width Modulation) karena tersedia 16 saluran PWM yang dapat dikonfigurasi sesuai kebutuhan. Dalam pemrograman menggunakan MicroPython, PWM diakses melalui modul machine dengan membuat objek PWM dari pin tertentu, misalnya PWM(Pin(15)). Frekuensi PWM default adalah sekitar 1.000 Hz, tetapi dapat diubah menggunakan metode freq(), sedangkan lebar pulsa atau duty cycle diatur dengan metode duty_u16() yang menerima nilai dari 0 hingga 65.535. Nilai 0 berarti output pin selalu berada pada tegangan rendah (0 volt), sedangkan nilai 65.535 berarti pin selalu berada pada tegangan tinggi (3,3 volt). Jika diberi nilai tengah seperti 32.768, maka selama satu siklus, pin akan bernilai tinggi selama 50% waktu dan rendah selama 50% sisanya, menghasilkan duty cycle 50%. Nilai duty cycle lain seperti 16.384 (sekitar 25%) akan menghasilkan pulsa bernilai tinggi selama seperempat siklus dan rendah selama tiga perempatnya. Dengan pengaturan ini, Raspberry Pi Pico memungkinkan pengendalian sinyal analog semu (pseudo-analog) melalui sinyal digital yang dikendalikan waktunya, yang sangat berguna dalam aplikasi seperti pengaturan kecepatan motor, kecerahan LED, atau kontrol posisi servo.

2. 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. 

Pada Raspberry Pi Pico, konversi sinyal analog ke digital dilakukan melalui ADC (Analog to Digital Converter) internal yang tersedia pada beberapa pin, yaitu pin GP26, GP27, dan GP28. Kecepatan sampling menyatakan seberapa sering sinyal analog dibaca dan dikonversi ke sinyal digital dalam satu detik, dan biasanya dinyatakan dalam satuan sample per second (SPS). Resolusi ADC pada Raspberry Pi Pico adalah 12 bit, yang berarti nilai digital yang dihasilkan berkisar antara 0 hingga 4095, memberikan tingkat ketelitian yang lebih tinggi dibandingkan dengan Arduino Uno yang hanya memiliki resolusi 10 bit (0–1023). Tegangan referensi ADC pada Raspberry Pi Pico adalah 3,3 volt, sehingga ADC mampu membaca tegangan analog dari 0 hingga 3,3 volt. Untuk membaca nilai analog, digunakan perintah ADC(Pin(x)).read_u16() dalam MicroPython, di mana nilai yang dihasilkan berupa 16-bit (0 hingga 65.535), meskipun secara fisik hanya menggunakan 12 bit efektif. Nilai ini dapat dikonversi kembali ke bentuk tegangan dengan mengalikan hasil pembacaan dengan 3,3 dan membaginya dengan 65.535. Dengan kemampuan ini, Raspberry Pi Pico dapat membaca sinyal analog dengan lebih presisi dan kecepatan tinggi sesuai kebutuhan aplikasi.

3. 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       

 

4. Komunikasi

4.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.

4.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.

4.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.

5. Sensor

5.1. Sensor Flame


Flame sensor adalah sebuah sensor yang digunakan untuk mendeteksi adanya nyala api atau sumber cahaya inframerah yang berasal dari api. Sensor ini umumnya digunakan dalam sistem keamanan kebakaran, alat pemadam otomatis, atau sistem monitoring suhu tinggi. Flame sensor dapat bekerja dengan berbagai prinsip, salah satunya dengan mendeteksi cahaya pada panjang gelombang tertentu yang dihasilkan oleh api, seperti cahaya ultraviolet (UV) atau inframerah (IR). Sensor ini biasanya memiliki bentuk kompak dan menggunakan fotodioda atau fototransistor sebagai elemen utamanya. Dalam aplikasi mikrokontroler seperti Raspberry Pi Pico atau Arduino, flame sensor yang umum digunakan adalah sensor digital berbasis fototransistor IR, yang memberikan output HIGH atau LOW tergantung ada tidaknya nyala api.

Cara kerja Sensor Flame

Flame sensor bekerja dengan mendeteksi radiasi cahaya inframerah yang dipancarkan oleh nyala api. Sensor ini memiliki elemen sensitif berupa fototransistor atau fotodioda IR yang akan merespons cahaya pada panjang gelombang tertentu, umumnya sekitar 760 nm hingga 1100 nm. Ketika tidak ada api, jumlah cahaya inframerah yang diterima sangat kecil sehingga output sensor berada dalam kondisi HIGH (logika 1). Namun, ketika ada api di dekat sensor, cahaya inframerah dari api akan terdeteksi dan menyebabkan output sensor berubah menjadi LOW (logika 0). Dalam sistem digital, perubahan ini dapat dengan mudah dibaca oleh pin input mikrokontroler, sehingga sistem dapat mengetahui adanya nyala api secara otomatis. Sensor ini bekerja secara real-time dan cukup sensitif, namun tetap dipengaruhi oleh cahaya sekitar, sehingga perlu penyesuaian sensitivitas menggunakan potensiometer yang biasanya tersedia di modul sensor.

Grafik respon sensor flame:

5.2. Sensor MQ-2



MQ-2 adalah sensor gas yang dirancang untuk mendeteksi keberadaan berbagai jenis gas mudah terbakar, seperti LPG, asap, metana, butana, dan hidrogen. Sensor ini sering digunakan dalam sistem pendeteksi kebocoran gas atau sistem keamanan rumah dan laboratorium. MQ-2 memiliki sensitivitas yang tinggi dan waktu respon yang cepat terhadap konsentrasi gas di lingkungan sekitarnya. Sensor ini terdiri dari elemen pemanas (heater) dan sensor resistif (SnO₂) yang resistansinya berubah seiring dengan konsentrasi gas yang terdeteksi. Sensor MQ-2 tersedia dalam bentuk modul yang sudah dilengkapi pembagi tegangan serta dua jenis output, yaitu analog (berupa tegangan yang proporsional terhadap konsentrasi gas) dan digital (HIGH atau LOW tergantung ambang batas yang disetel melalui potensiometer).

Cara kerja sensor MQ-2:

Sensor MQ-2 bekerja dengan prinsip perubahan resistansi pada material semikonduktor akibat paparan gas. Saat sensor dinyalakan, elemen pemanas dalam sensor akan memanaskan permukaan semikonduktor SnO₂. Ketika tidak ada gas, resistansi sensor cukup tinggi. Namun, saat ada gas mudah terbakar di sekitarnya, gas akan bereaksi dengan oksigen yang diserap pada permukaan semikonduktor dan menyebabkan penurunan resistansi. Penurunan resistansi ini menghasilkan peningkatan tegangan pada output analog. Output ini kemudian dapat dibaca oleh ADC (Analog-to-Digital Converter) pada mikrokontroler seperti Raspberry Pi Pico. Jika menggunakan output digital, maka sensor akan memberikan sinyal LOW ketika konsentrasi gas melebihi batas yang telah ditentukan oleh pengguna melalui potensiometer di modul sensor.

Grafik respon sensor MQ-2:

5.3. Sensor LM35



LM35 adalah sensor suhu analog yang dirancang untuk mengukur suhu lingkungan secara linear dengan presisi tinggi. Sensor ini menghasilkan tegangan keluaran yang proporsional terhadap suhu dalam derajat Celcius, di mana setiap kenaikan 1°C menghasilkan kenaikan tegangan sebesar 10 mV. LM35 memiliki keunggulan dibandingkan sensor suhu lainnya karena tidak memerlukan kalibrasi eksternal dan konsumsi dayanya rendah. Sensor ini cocok digunakan dalam berbagai aplikasi, seperti pemantauan suhu ruangan, sistem pendingin, dan perangkat berbasis mikrokontroler.

Cara kerja sensor LM35:

LM35 bekerja dengan mengubah suhu lingkungan menjadi sinyal tegangan analog yang proporsional. Sensor ini memiliki karakteristik linier, di mana output tegangan akan meningkat sebesar 10 mV setiap kenaikan suhu 1°C. Misalnya, pada suhu 25°C, sensor akan menghasilkan tegangan sebesar 250 mV. Tegangan ini kemudian dibaca oleh pin ADC pada mikrokontroler seperti Raspberry Pi Pico, yang akan mengkonversinya menjadi nilai digital. Nilai digital ini dapat diolah lebih lanjut untuk ditampilkan atau digunakan dalam sistem pengendalian suhu. Karena output LM35 bersifat analog, diperlukan pembacaan secara periodik menggunakan fungsi pembacaan ADC agar data suhu dapat diperbarui dan dimonitor secara real-time.

Grafik respon sensor LM35:

6. 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

7. Buzzer

Buzzer adalah sebuah komponen elektronika yang dapat menghasilkan getaran suara berupa gelombang bunyi. Buzzer akan menghasilkan getaran suara ketika diberikan sejumlah tegangan listrik dengan taraf tertentu sesuai dengan spesifikasi bentuk dan ukuran buzzer itu sendiri. Pada umumnya, buzzer ini sering digunakan sebagai alarm karena penggunaannya yang cukup mudah yaitu dengan memberikan tegangan input maka buzzer akan menghasilkan getaran suara berupa gelombang bunyi yang dapat didengar.

Spesifikasi :

        Nilai tegangan : 6V DC 

        Tegangan pengoperasian : 4 hingga 8V DC

        Arus : ≤30mA

        Keluaran suara pada 10cm : ≥85dB

        Frekuensi resonansi : 2300 ±300Hz

        Nada : Berkelanjutan

        Suhu operasional : -25°C hingga +80°C

        Suhu penyimpanan : -30°C hingga +85°C

        Berat : 2g

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.

Spesifikasi :

        Kapasitas nominal : 1500mAh 

        Kapasitas minimum : 1400mAh 

        Tegangan nominal : 3.7V

        Metode pengisian : CC – CV (tegangan konstan dengan arus terbatas)

        Tegangan cut-off discharge : 2.75V

        Berat sel : maks. 47.0g

        Dimensi sel :  a. Diameter (maks.) : 18.40mm

                                   b. Tinggi (maks.) : 65.00mm

10. Pompa DC 5V

Motor pump / pompa air adalah alat untuk menggerakan air dari tempat bertekanan rendah ke tempat bertekanan yang lebih tinggi. Pada dasarnya motor pump sama dengan motor DC pada umumnya, hanya saja sudah di-packing sedemikian rupa sehingga dapat digunakan di dalam air. 

Spesifikasi :

  • Panjang kabel USB: 1 Meter
  • Jenis Pompa: Submersible DC
  • Tegangan Kerja: 3 - 5V
  • Batas Tegangan: 2.5 - 6V DC
  • Konsumsi Arus: 120 - 330 mA
  • Konsumsi Daya: 0.4 - 1.5W
  • Kapasitas Pompa: 80 - 120L/H
  • Dimensi Luar: 7.5mm / 0.3"
  • Dimensi Dalam: 4.7mm / 0.18"
  • Diameter Pompa: Kurang lebih 24 mm / 0.95"
  • Panjang Pompa: Kurang lebih 45 mm / 1.8"
  • Tinggi Pompa: Kurang lebih 33 mm / 1.30"
  • Material: Engineering plastic
  • Aktuator: Brushless DC
  • Masa Kerja: 500 jam


11. Relay 5V

Relay adalah komponen elektronik berupa saklar elektronik yang digerakkan oleh arus listrik. Secara prinsip, relay merupakan tuas saklar dengan lilitan kawat pada batang besi (solenoid) di dekatnya, ketika solenoid dialiri arus listrik, tuas akan tertarik karena adanya gaya magnet yang terjadi pada solenoid sehingga kontak saklar akan menutup. Pada saat arus dihentikan, gaya magnet akan hilang, tuas akan kembali keposisi semula dan kontak saklar kembali terbuka. Relay biasanya digunakan untuk menggerakkan arus/tegangan yang besar (misalnya peralatan listrik 4 A/AC 220V) dengan memakai arus/tegangan yang kecil (misalnya 0.1 A/12 volt DC).

Relay adalah komponen listrik yang bekerja berdasarkan prinsip induksi medan elektromagnetis. Jika sebuah penghantar sialiri oleh arus listrik, maka disekitar penghantar tersebut timbul medan magnet. Medan magnet yang dihasilkan oleh arus listrik tersebut selanjutnya diinduksikan ke logam ferromagnetis. Penemu relay pertama kali adalah Joseph Henry pada tahun 1835.



  • Rangkaian Simulasi




  • Prinsip Kerja

Cara kerja sistem ini dimulai saat Raspberry Pi Pico pertama membaca data dari tiga sensor utama, yaitu sensor suhu LM35, sensor gas MQ-2, dan sensor api (flame sensor). Sensor LM35 menghasilkan sinyal analog yang diubah menjadi tegangan oleh ADC, lalu dihitung sebagai suhu dalam derajat Celcius. Sensor MQ-2 juga memberikan sinyal analog untuk mengukur konsentrasi gas, dan nilainya dibandingkan dengan ambang batas tertentu untuk menentukan apakah gas terdeteksi. Sensor flame bekerja secara digital, memberikan sinyal rendah (logika 0) saat mendeteksi adanya api. Hasil pembacaan suhu ditampilkan di LCD I2C bersama status “Aman” atau “Tidak Aman”. Jika suhu di bawah 50°C, LED hijau akan menyala sebagai indikator kondisi aman, dan LCD menampilkan suhu serta status aman. Sebaliknya, jika suhu melebihi 50°C, LED merah menyala, LCD menampilkan suhu serta status tidak aman, fan dinyalakan untuk menurunkan suhu, dan variabel relay_suhu diset ke 1.

Selanjutnya, jika sensor MQ-2 mendeteksi gas berbahaya, maka motor servo bergerak ke sudut 90° untuk membuka ventilasi dan fan akan menyala untuk membantu mengeluarkan gas dari ruangan. Status ini juga dicatat dengan mengatur variabel relay_gas menjadi 1. Apabila flame sensor mendeteksi adanya api, maka motor DC yang sedang dimonitoring secara otomatis akan dimatikan untuk mencegah bahaya lebih lanjut, dan pompa air akan dinyalakan melalui kendali relay guna membantu proses pemadaman awal. Dalam kondisi ini, relay_flame diset ke 1. Semua status dari ketiga sensor ini (suhu, gas, dan api) kemudian dikirimkan dalam bentuk data serial melalui komunikasi UART ke Raspberry Pi Pico kedua.

Raspberry Pi Pico kedua bertugas untuk menerima data dari Pico pertama dan mengendalikan tiga buah modul relay yang terhubung dengan perangkat seperti fan, pompa air, dan motor DC. Selain itu, LED indikator merah yang terhubung pada masing-masing relay juga akan menyala sebagai penanda visual saat terjadi kondisi bahaya. Sistem ini bekerja secara terus menerus dalam loop, sehingga mampu memantau dan merespons kondisi suhu tinggi, gas berbahaya, maupun kebakaran secara real-time dengan memberikan peringatan serta melakukan tindakan otomatis untuk mitigasi awal.

 

  • Flowchart
            Flowchart Flame Sensor


            Flowchart sensor MQ-2

            Flowchart sensor LM35



  • Listing Program

A.    Sender

from machine import ADC, Pin, PWM, I2C, UART

from lcd_api import LcdApi

from i2c_lcd import I2cLcd

from time import sleep

 

# UART

uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))  # TX to RX Pico 2

 

# Sensor

lm35 = ADC(28)       # LM35 analog

mq2 = ADC(26)        # MQ2 analog

flame = Pin(3, Pin.IN)

 

# Output

led_hijau = Pin(4, Pin.OUT)

led_merah = Pin(5, Pin.OUT)

servo = PWM(Pin(19))

servo.freq(50)

 

# LCD I2C

i2c = I2C(0, scl=Pin(21), sda=Pin(20), freq=400000)

I2C_ADDR = i2c.scan()[0]

lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)

 

def baca_suhu():

    adc = lm35.read_u16()

    volt = adc * 3.3 / 65535

    suhu = volt * 100  # LM35: 10mV/°C

    return adc, volt, suhu

 

def gerak_servo(derajat):

    duty = int(2000 + (derajat / 180) * 6000)

    servo.duty_u16(duty)

 

while True:

    # Baca suhu

    adc_lm35, v_lm35, suhu = baca_suhu()

 

    # Baca gas

    adc_mq2 = mq2.read_u16()

    gas_terdeteksi = adc_mq2 >  7000  # ambang bisa disesuaikan

 

    # Baca flame

    flame_terdeteksi = flame.value() == 0

 

    # Tampilkan LCD

    lcd.clear()

    lcd.putstr("Suhu: {:.1f} C".format(suhu))

 

    # LED & relay logika suhu

    if suhu > 50:

        led_hijau.off()

        led_merah.on()

        relay_suhu = 1

        lcd.move_to(0, 1)

        lcd.putstr("Status: Tdk Aman")

    else:

        led_hijau.on()

        led_merah.off()

        relay_suhu = 0

        lcd.move_to(0, 1)

        lcd.putstr("Status: Aman")

 

    # Servo & relay logika gas

    if gas_terdeteksi:

        relay_gas = 1

        gerak_servo(90)

    else:

        relay_gas = 0

        gerak_servo(0)

 

    # Relay logika flame

    relay_flame = 1 if flame_terdeteksi else 0

 

    # Kirim data ke Pico 2

    kirim = "{},{},{}\n".format(relay_suhu, relay_gas, relay_flame)

    uart.write(kirim)

 

    # Tampilkan ke serial monitor

    print("LM35 ADC: {} | Teg: {:.2f}V | Suhu: {:.1f} C".format(adc_lm35, v_lm35, suhu))

    print("MQ2 ADC: {} | {}".format(adc_mq2, "GAS!" if gas_terdeteksi else "AMAN"))

    print("Flame : {}".format("API TERDETEKSI" if flame_terdeteksi else "AMAN"))

    print("---")

 

    sleep(1)

 

B.    Receiver

from machine import Pin, UART, PWM

from time import sleep

 

# UART

uart = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))  # RX from Pico 1

 

# Output

relay_suhu = Pin(17, Pin.OUT)

relay_gas = Pin(27, Pin.OUT)

relay_flame_1 = Pin(16, Pin.OUT)

relay_flame_2 = Pin(18, Pin.OUT)

buzzer = PWM(Pin(22))

buzzer.freq(1000)

buzzer.duty_u16(0)

 

while True:

    if uart.any():

        line = uart.readline()

        try:

            decoded = line.decode().strip()

            parts = decoded.split(",")

            if len(parts) == 3:

                suhu_val = int(parts[0])

                gas_val = int(parts[1])

                flame_val = int(parts[2])

 

                # Atur relay

                relay_suhu.value(suhu_val)

                relay_gas.value(gas_val)

                relay_flame_1.value(flame_val)

                relay_flame_2.value(flame_val)

 

                # Buzzer aktif jika flame terdeteksi

                if flame_val == 1:

                    buzzer.duty_u16(30000)

                else:

                    buzzer.duty_u16(0)

 

                # Serial monitor log

                print(f"RELAY | Suhu: {suhu_val}, Gas: {gas_val}, Api: {flame_val}")

        except Exception as e:

            print("Error decoding:", e)

 

    sleep(0.1)


Link Download File Rangkaian [Unduh]
Link Download Video Percobaan [Unduh]
Link Download HTML [Unduh]
Link Download Program Raspberry [Unduh]
Link Download Pdf Laporan [Unduh]
Link Download Datasheet Raspberry Pi Pico [Unduh]
Link Download Datasheet Flame Sensor  [Unduh]
Link Download Datasheet Sensor MQ-2 [Unduh]
Link Download Datasheet Sensor LM35 [Unduh]
Link Download Datasheet Pompa DC [Unduh]
Link Download Datasheet Relay [Unduh]
Link Download Datasheet Buzzer [Unduh]
Link Download DataSheet Resistor [Unduh]












Tidak ada komentar:

Posting Komentar

   BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA 2023 Nama : Hadi Andhika Jafta NIM : 2210951009 Dosen Pengampu : Dr. Darwison, MT...