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:
Memenuhi syarat untuk modul 4 Praktikum Mikroprosesor & Mikrokontroler
Untuk mendesain Sistem Monitoring Suhu Mesin Pengolahan Karet untuk Mencegah Kebakaran Pada Pabrik Karet
Mengimplementasikan rangkaian Sistem Monitoring Suhu Mesin Pengolahan Karet ke bentuk prototipe
- Alat
- Komponen
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.
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.
- 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) |
Tidak ada komentar:
Posting Komentar