- Memahami prinsip dasar input dan output pada mikrokontroler
- Mengetahui komponen yang digunakan dalam membuat rangkaian kontrol pemadam kebakaran di dapur
- Mampu menangkap dan memproses input dari sensor flame, sensor mq2, mq6, sensor lm35, dan sensor ldr
- Mampu mengonfigurasi dan mengendalikan motor AC (pompa air), buzzer, led dan dotmatrix sebagai output pada mikrokontroler
1. Pendahuluan [Kembali]
Kebakaran merupakan salah satu bencana yang dapat mengancam keselamatan dan keamanan manusia serta harta benda. Kecelakaan ini seringkali terjadi secara tiba-tiba dan dapat menyebabkan kerusakan yang sangat besar jika tidak segera ditangani dengan cepat dan tepat. Dalam menghadapi ancaman kebakaran, pengembangan teknologi untuk mengontrol dan memadamkan kebakaran menjadi sangat penting. Salah satu solusi yang terus dikembangkan adalah aplikasi kontrol pemadam kebakaran, yang memanfaatkan inovasi teknologi untuk mendeteksi, memantau, dan mengatasi kebakaran dengan lebih efisien.
Aplikasi kontrol pemadam kebakaran merupakan solusi teknologi yang mengintegrasikan sensor-sensor canggih dan sistem cerdas untuk mendeteksi, memantau, dan merespons kebakaran secara efisien. Dengan kemampuan deteksi dini dan pemantauan real-time, aplikasi ini memungkinkan respons yang cepat dan tepat dalam situasi darurat kebakaran. Melalui integrasi sistem pemadaman otomatis dan teknologi canggih seperti drone serta algoritma kecerdasan buatan, aplikasi ini tidak hanya berfokus pada deteksi, tetapi juga pada penanganan aktif kebakaran, mengurangi risiko dan kerusakan yang dapat ditimbulkan oleh bencana tersebut. Dengan terus mengembangkan teknologi ini, diharapkan dapat meningkatkan kesiapan dan memberikan perlindungan yang lebih baik bagi masyarakat serta lingkungan dari ancaman kebakaran.
2. Tujuan [Kembali]
3. Alat dan Bahan [Kembali]
Alat :
1. Power Supply
2. Logic Probe
3. Ground
- Jangkauan spektrum : 760 - 1100 (nm)- Sudut yang terdeteksi : 0° - 60°- Catu Daya : 3,3V - 5,3V- Temperatur Kerja : -25°C sampai 85°C- Dimensi : 27,3 x 15,4 (mm)
1. Supply : 3.3 V – 5 V (arduino available)2. Output Type: Digital Output (0 and 1)3. Inverse output4. Include IC LM393 voltage comparator5. Sensitivitasnya dapat diatur6. Dimensi PCB size: 3.2 cm x 1.4 cm
• Dikalibrasi Langsung dalam Celcius (Celcius)
• Faktor Skala Linear + 10-mV / ° C
• 0,5 ° C Pastikan Akurasi (pada 25 ° C)
• Dinilai untuk Rentang Penuh −55 ° C hingga 150 ° C
• Cocok untuk Aplikasi Jarak Jauh
• Biaya Rendah Karena Pemangkasan Tingkat Wafer
• Beroperasi Dari 4 V hingga 30 V
• Pembuangan Arus Kurang dari 60-μA
• Pemanasan Mandiri Rendah, 0,08 ° C di Udara Diam
• Hanya Non-Linearitas ± ¼ ° C Tipikal
• Output Impedansi Rendah, 0,1 Ω untuk Beban 1-mA
Spesifikasi tipe relay: 5VDC-SL-CTegangan coil: DC 5VStruktur: Sealed typeSensitivitas coil: 0.36WTahanan coil: 60-70 ohmKapasitas contact: 10A/250VAC, 10A/125VAC, 10A/30VDC, 10A/28VDCUkuran: 196154155 mmJumlah pin: 5Pin Relay:
Feature | Input 1A Input 2A output A Input lB Input 2B output B . . B I u I vc~ Input ID Input 2D output . |
- DIN VDE 0295, IEC 60228, BS 6360
- DIN EN 50290‐2‐22, DIN VDE 0207‐363‐4‐1
- IEC 60227‐5, EN 50525‐2‐51, VDE 0281‐13
- DIN VDE 0482‐332‐1‐2, DIN EN 60332‐1‐2, IEC 60332‐1‐2
- RoHS, REACH & CE Direct13. Buzzer
Buzzer Features and Specifications
- Rated Voltage: 6V DC
- Operating Voltage: 4-8V DC
- Rated current: <30mA
- Sound Type: Continuous Beep
- Resonant Frequency: ~2300 Hz
- Small and neat sealed package
- Breadboard and Perf board friendly
14. LED15. Motor
4. Dasar Teori [Kembali]
1. Resistor
Resistor merupakan komponen penting dan sering dijumpai dalam sirkuit Elektronik. Boleh dikatakan hampir setiap sirkuit Elektronik pasti ada Resistor. Tetapi banyak diantara kita yang bekerja di perusahaan perakitan Elektronik maupun yang menggunakan peralatan Elektronik tersebut tidak mengetahui cara membaca kode warna ataupun kode angka yang ada ditubuh Resistor itu sendiri.
Seperti yang dikatakan sebelumnya, nilai Resistor yang berbentuk Axial adalah diwakili oleh Warna-warna yang terdapat di tubuh (body) Resistor itu sendiri dalam bentuk Gelang. Umumnya terdapat 4 Gelang di tubuh Resistor, tetapi ada juga yang 5 Gelang.
Gelang warna Emas dan Perak biasanya terletak agak jauh dari gelang warna lainnya sebagai tanda gelang terakhir. Gelang Terakhirnya ini juga merupakan nilai toleransi pada nilai Resistor yang bersangkutan.
Tabel dibawah ini adalah warna-warna yang terdapat di Tubuh Resistor :
2. Arduino uno
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.
Summary:
Microcontroller ATmega328
Operasi dengan daya 5V Voltage
Input Tegangan (disarankan) 7-12V
Input Tegangan (batas) 6-20V
Digital I / O Pins 14 (dimana 6 memberikan output PWM)
Analog Input Pin 6
DC Lancar per I / O Pin 40 mA
Saat 3.3V Pin 50 mA DC
Flash Memory 32 KB (ATmega328) yang 0,5 KB digunakan oleh bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed ?16 MHz
3. Sumber DC
Sumber arus listrik DC kependekan dari Direct Current, dikenal dengan arus searah karena merupakan sumber arus yang dihasilkan hanya memiliki satu polaritas. Dikatakan satu polaritas karena arus yang mengalir tetap dalam satu arah yaitu dari positif ke negatif atau dari negatif ke positif. Arus listriD AC akan membentuk suatu gelombang yang dinamakan dengan gelombang sinus atau lebih lengkapnya sinusoida dengan hanya membentuk setengah gelombang. Disini menggunakan sumber DC baterai kotak dengan kapasitas 9 Volt
4. Optocoupler
Optocoupler juga dikenal dengan sebutan Opto-isolator, Photocoupler atau Optical Isolator. Optocoupler adalah komponen elektronika yang berfungsi sebagai penghubung berdasarkan cahaya optik. Pada dasarnya Optocoupler terdiri dari 2 bagian utama yaitu Transmitter yang berfungsi sebagai pengirim cahaya optik dan Receiver yang berfungsi sebagai pendeteksi sumber cahaya. Masing-masing bagian Optocoupler (Transmitter dan Receiver) tidak memiliki hubungan konduktif rangkaian secara langsung tetapi dibuat sedemikian rupa dalam satu kemasan komponen.5. Motor DC
Secara teori, Motor DC adalah Motor listrik yang membutuhkan suplai tegangan arus searah atau arus DC (Direct Current) pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor tersebut disebut stator, dan kumparan jangkar disebut rotor. Pada percobaan ini menggunakan motor DC dengan tipe pompa air.6. Flame Sensor
Spesifikasi :
- Jangkauan spektrum : 760 - 1100 (nm)
- Sudut yang terdeteksi : 0° - 60°
- Catu Daya : 3,3V - 5,3V
- Temperatur Kerja : -25°C sampai 85°C
- Dimensi : 27,3 x 15,4 (mm)Sensor api adalah sensor yang dirancang untuk mendeteksi dan menanggapi keberadaan api dan memungkinkan mendeteksi api. Respons terhadap nyala api yang terdeteksi bergantung pada pemasangan, tetapi dapat mencakup membunyikan alarm, menonaktifkan saluran bahan bakar (seperti propana atau saluran gas alam), dan mengaktifkan sistem pencegah kebakaran. Ketika digunakan dalam aplikasi seperti tungku industri, perannya adalah untuk memberikan konfirmasi bahwa tungku bekerja dengan benar; dalam hal ini mereka tidak melakukan tindakan langsung di luar memberi tahu operator atau sistem kontrol. Detektor api seringkali dapat merespon lebih cepat dan lebih akurat daripada detektor asap atau panas karena mekanisme yang digunakan untuk mendeteksi nyala api
Grafik :
7. Sensor MQ-2Sensor yang berguna untuk mendeteksi kebocoran gas baik pada rumah maupun industri. Sensor ini sangat cocok untuk mendeteksi H2, LPG, CH4, CO, Alkohol, Asap atau Propane. Karena sensitivitasnya yang tinggi dan waktu respon yang cepat, pengukuran dapat dilakukan dengan cepat. Sensitivitas sensor dapat disesuaikan dengan potensiometer.
Grafik MQ2
Spesifikasi :
Spesifikasi :
Grafik MQ-6 :
9. Buzzer
Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).10. IC Max 7219NGMAX7219 / MAX7221 adalah input / output serial yang ringkas driver layar common-cathode yang antarmuka mikroprosesor (ÁPs) ke tampilan LED numerik 7-segmen hingga 8 digit, tampilan grafik batang, atau 64 individu LED. Termasuk on-chip adalah kode BCD-B decoder, sirkuit pemindaian multipleks, segmen dan digit driver, dan 8x8 RAM statis yang menyimpan setiap digit. Hanya satu resistor eksternal diperlukan untuk mengatur segmen saat ini untuk semua LED. MAX7221 kompatibel dengan SPI Ö, QSPI Ö, dan MICROWIRE Ö, dan memiliki slewrate-limited driver segmen untuk mengurangi EMI. Antarmuka seri 4-kawat yang nyaman terhubung ke semua ÁPs umum. Angka individu dapat diatasi dan diperbarui tanpa menulis ulang seluruh tampilan. Itu MAX7219 / MAX7221 juga memungkinkan pengguna untuk memilih kodeB decoding atau no-decode untuk setiap digit. Perangkat termasuk shutdown daya rendah 150ÁA mode, kontrol kecerahan analog dan digital, scanlimit daftar yang memungkinkan pengguna untuk menampilkan dari 1 hingga 8 digit, dan mode tes yang memaksa semua LED menyala. Untuk aplikasi yang membutuhkan operasi atau segmen 3V berkedip.
11. DotmatrixDot matrix adalah susunan titik-titik dua dimensi yang digunakan untuk menampilkan karakter-karakter, simbol atau gambar. Dahulu dot matrix digunakan pada printer-printer tua dan banyak perangkat tampilan digital. Pada printer, titik-titik tersebut adalah daerah yang diredupkan. Sedangkan pada display, titik-titik tersebut adalah daerah yang bercahaya. Sebagaimana pada LED atau CRT display cara kerjanya titik-titik yang sebelumnya mati, bercahaya sesuai sesuai obyek yang diinginkan.12. RelaySpesifikasi tipe relay: 5VDC-SL-C
Tegangan coil: DC 5V
Struktur: Sealed type
Sensitivitas coil: 0.36W
Tahanan coil: 60-70 ohm
Kapasitas contact: 10A/250VAC, 10A/125VAC, 10A/30VDC, 10A/28VDC
Ukuran: 196154155 mm
Jumlah pin: 5Pin Relay:13. Logic state
Feature Input 1A Input 2A output A Input lB Input 2B output B . . B I u I vc~ Input ID Input 2D output . 14. Dioda (1N4001)15. KabelGeneral Reference Standards
- DIN VDE 0295, IEC 60228, BS 6360
- DIN EN 50290‐2‐22, DIN VDE 0207‐363‐4‐1
- IEC 60227‐5, EN 50525‐2‐51, VDE 0281‐13
- DIN VDE 0482‐332‐1‐2, DIN EN 60332‐1‐2, IEC 60332‐1‐2
- RoHS, REACH & CE Directives
16. BuzzerBuzzer Features and Specifications
- Rated Voltage: 6V DC
- Operating Voltage: 4-8V DC
- Rated current: <30mA
- Sound Type: Continuous Beep
- Resonant Frequency: ~2300 Hz
- Small and neat sealed package
- Breadboard and Perf board friendly
17. LED18. MotorFeatures of brushed DC motorsAdvantagesNo need for a drive circuit when running at constant speedHigh-efficiency designAble to operate at high speedsHigh startup torqueResponsive and easy to use as speed and torque can be controlled by voltageDisadvantagesMotor life is shortened by the need for brushes and a commutator, which are subject to wear.The brushes generate both electrical and acoustic noise.
19. Sensor LM35
- Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
- Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu25ºC
- Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
- Bekerja pada tegangan 4 sampai 30 volt. Memiliki arus rendah yaitu kurang dari 60 µA.
- Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
- Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan.
Sensor suhu ini terkalibrasi dalam satuan celcius dan mampu membaca nilai suhu dari 0˚C100˚C dan memiliki paraeter bahwa setiap kenaikan 1˚C tegangan keluaran naik sebesar 10mV dengan batas maksimal keluaran sensor adalah 1,5V pada suhu 150˚C. Pada perancangan menggunakan mikrokontroler ATmega8535, ADC yang digunakan adalah 10 bit, artinya data yang dihasilkan dari konversi adalah 0-1023. Untuk mengeluarkan output ADC dari mikrokontroler menggnakan rumus sebagai berikut : Hasil konversi ADC = (Vin*1024)/Vref Hasil output sensor kemudian akan diolah oleh mikrokontroler ATmega8535 yang kemudian nilainya akan ditampilkan pada layar lcd. Pada perancangan kakikakinya, kaki 1 terhubung power (0-5V), pin 2 sebagai output sensor yang akan terhubung dengan mikrokontroller ATmega8535, sedangkan pin 3 terhubung dengan ground.
Spesifikasi LM35 :
• Dikalibrasi Langsung dalam Celcius (Celcius)
• Faktor Skala Linear + 10-mV / ° C
• 0,5 ° C Pastikan Akurasi (pada 25 ° C)
• Dinilai untuk Rentang Penuh −55 ° C hingga 150 ° C
• Cocok untuk Aplikasi Jarak Jauh
• Biaya Rendah Karena Pemangkasan Tingkat Wafer
• Beroperasi Dari 4 V hingga 30 V
• Pembuangan Arus Kurang dari 60-μA
• Pemanasan Mandiri Rendah, 0,08 ° C di Udara Diam
• Hanya Non-Linearitas ± ¼ ° C Tipikal
• Output Impedansi Rendah, 0,1 Ω untuk Beban 1-mA
Cara Kerja Sensor Suhu LM35Dalam praktiknya proses antarmuka sensor LM35 dapat dikatakan sangat mudah. Pada IC sensor LM35 ini terdapat tiga buah pin kaki yakni Vs, Vout dan pin ground. Dalam pengoperasiannya pin Vs dihubungkan dengan tegangan sumber sebesar antara 4 – 20 volt sementara pin Ground dihubungkan dengan ground dan pin Vout merupakan keluaran yang akan mengalirkan tegangan yang besarnya akan sesuai dengan suhu yang diterimanya dari sekitar.Prinsip kerja alat pengukur suhu ini, adalah sensor suhu difungsikan untuk mengubah besaran suhu menjadi tegangan, dengan kata lain panas yang ditangkap oleh LM35 sebagai sensor suhu akan diubah menjadi tegangan.
Source: Diagram sirkuit ditunjukkan di atas. Secara singkat, ada dua transistor di tengah gambar. Yang satu memiliki sepuluh kali luas emitor yang lain. Ini berarti ia memiliki sepersepuluh dari kerapatan arus, karena arus yang sama mengalir melalui kedua transistor. Ini menyebabkan tegangan melintasi resistor R1 yang sebanding dengan suhu absolut, dan hampir linier melintasi rentang yang kita pedulikan. Bagian "hampir" ditangani oleh sirkuit khusus yang meluruskan grafik tegangan versus suhu yang sedikit melengkung.
Penguat di bagian atas memastikan bahwa tegangan di dasar transistor kiri (Q1) sebanding dengan suhu absolut (PTAT) dengan membandingkan keluaran kedua transistor. Amplifier di sebelah kanan mengubah suhu absolut (diukur dalam Kelvin) menjadi Fahrenheit atau Celsius, tergantung pada bagiannya (LM34 atau LM35). Lingkaran kecil dengan "i" di dalamnya adalah rangkaian sumber arus konstan. Kedua resistor dikalibrasi di pabrik untuk menghasilkan sensor suhu yang sangat akurat.
Alat pendeteksi kebakaran mendeteksi terjadinya kebakaran pada suatu ruangan. Ketika suhu pada ruangan terdeteksi pada rentang suhu berikut :
Sensor Cahaya LDR (Light Dependent Resistor) adalah salah satu jenis resistor yang dapat mengalami perubahan resistansinya apabila mengalami perubahan penerimaan cahaya. Modul sensor cahaya bekerja manghasilkan output yang mendeteksi nilai intensitas cahaya. Perangkat ini sangat cocok digunakan untuk project yang berhubungan dengan cahaya seperti nyala mati lampu.
Spesifikasi
1. Supply : 3.3 V – 5 V (arduino available)
2. Output Type: Digital Output (0 and 1)
3. Inverse output
4. Include IC LM393 voltage comparator
5. Sensitivitasnya dapat diatur
6. Dimensi PCB size: 3.2 cm x 1.4 cm
Modul sensor cahaya ini memudahkan Anda dalam menggunakan sensor LDR (Light Dependent Resistor) untuk mengukur intensitas cahaya. Modul LDR ini memiliki pin output analog dan pin output digital dengan label AO dan DO pada PCB. Nilai resistansi LDR pada pin analog akan meningkat apabila intensitas cahaya meningkat dan menurun ketika intensitas cahaya semakin gelap. Pada pin digital, pada batas tertentu DO akan high atau low, yang dikendalikan sensitivitas nya menggunakan on-board potensiometer.
Tegangan divider : pembagi tegangan adalah rangkaian sederhana yang mengubah tegangan besar menjadi tegangan lebih kecil.
jika makin besar R ldr, maka makin kecil V out maka cahaya yang terdeteksi makin sedikit,
jika makin kecil R ldr, maka makin besar V out maka cahaya yang terdeteksi makin banyak (terang)
Mikrokontroler menggunakan rangkaian reset. Rangkaian power on reset terdiri dari resistor 4,7KΩ dan tombol untuk penekanan reset secara manual yang diparalel dengan capasitor 10nF.
Rangkain Reset low |
Rangkaian reset Low aktif ketika berlogika 0 , jika kondisi seperti gambar diatas maka arus akan mengalir langsung kepin reset pada arduino. dikarnakan ada arus yang mengalir maka pin reset arduino berlogika 1, karna arduino aktif low maka pin reset tidak aktif ,karna arduino tidak aktif maka arus mengalir ke capasitor terjadi pengisian dan dibutton tidak terhubung sehingga arus langsung keground.
Jika kondisi Button terhubung maka arus akan mengalir langsung keground karna kecendrungan arus melewati resistansi yang kecil yang mengakibatkan arus mengalir keground capasitor terjadi pengosongan sehingga arus mengalir keground dikarenakan tidak ada arus menuju pin reset maka pin reset berlogika 0 (aktif).
Rangkaian reset berguna bagi mengembalikan program sistem mikrokontroler ke nilai awalnya (Address Memory = 0). Dengan demikian, jika terdapat kesalahan atau gangguan pada saat menjalankan program, dapat diulang kembali dengan menekan saklar reset ini.
Prosedur percobaan:
1. Siapakan komponen yang dibutuhkan
2. Susun rangkaian sebagaimana yang dibutuhkan
3. Inputkan codingan Arduino
4. Jalankan rangkaian
5. Lakukan koreksi jika terjadi error, jika tidak terjadi error maka rangkaian berhasil dan selesai.
b. Hardware dan Diagram Blok [Kembali]
- Hardware
1. Arduino Uno
2. Sensor Flame
3. Sensor MQ-24. Sensor MQ-65. Sensor LDR6. Sensor LM35
7. Sumber DC 9 volt
8. Optocoupler-NPN
9. Motor DC (Pompa Air)10. Buzzer11. Blue LED
12. Red LED
13. Jumper
14. Ic MAX721915. Dotmatrix
- Diagram Blok
c. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Rangkaian menggunakan 5 buah buah sensor, yaitu sensor flame, sensor MQ-2, MQ-6, sensor LM35, dan sensor LDR. Sensor flame diletakkan pada plafon ruangan dan ketika sensor flame mendeteksi adanya api dalam ruangan maka, sensor akan berlogika 1 kemudian dot matrix akan menampilkan peringatan “WARNING”. selain itu, buzzer yang berfungsi sebagai alarm kebakaran akan menyala dan juga pompa air akan menyala untuk memadamkan api, LED biru akan berubah berwarna merah yang mana menandakan adanya kebakaran. Sensor MQ-2 diletakkan pada plafon ruangan dan berguna untuk mendeteksi adanya kebocoran gas pada ruangan dan akan memberikan logika 1 sehingga menyebabkan buzzer yang berfungsi sebagai alarm kebakaran akan menyala dan juga pompa air akan menyala untuk memadamkan api, LED biru akan berubah berwarna merah yang mana menandakan adanya kebakaran. Sensor MQ-6 diletakkan pada plafon ruangan dan ketika sensor MQ-6 mendeteksi adanya kebocoran gas LPG di dalam ruangan, maka sensor akan berlogika 1 sehingga menyebabkan buzzer yang berfungsi sebagai alarm kebakaran akan menyala dan juga pompa air akan menyala untuk memadamkan api, LED biru akan berubah berwarna merah yang mana menandakan adanya kebakaran. Sensor LM35 diletakkan pada dinding ruangan untuk mendeteksi kenaikan suhu ketika terjadi kebakaran dimana ketika suhu <50 C maka buzzer akan mati dan ketika suhu >= 50 C maka buzzer akan hidup sehingga menyebabkan buzzer yang berfungsi sebagai alarm kebakaran akan menyala dan juga pompa air akan menyala untuk memadamkan api, LED biru akan berubah berwarna merah yang mana menandakan adanya kebakaran. Sensor LDR diletakkan pada atap ruangan untuk mendeteksi adanya api melalui cahaya api dimana ketika cahaya api terdeteksi maka buzzer akan menyala dan pompa air juga akan menyala untuk meadamkan api ketika terindikasi terjadi kebakaran yang juga ditandai dengan berubahnya LED biru menjadi LED merah.
d. Flowchart dan Listing Program [Kembali]
- Flowchart
- Listing Program
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define gas 2
#define flame 7
int redLed = 6;
int blueLed = 5;
int buzzer = 4;
int motor = 3;
int EXTINGUISHER_PIN = 9; // Define your extinguisher control pin
int MQ6_PIN = 9; // Define your MQ6 sensor pin
#define TempPin A0
#define LdrPin A1
int thresholdTemp = 50; // Set the threshold temperature in degrees Celsius
float thresholdLdrVoltage = 0.80; // Set the threshold LDR voltage in volts
#define USE_UI_CONTROL 0
#if USE_UI_CONTROL
#include <MD_UISwitch.h>
#endif
#define DEBUG 0
#if DEBUG
#define PRINT(s, x) { Serial.print(F(s)); Serial.print(x); }
#define PRINTS(x) Serial.print(F(x))
#define PRINTX(x) Serial.println(x, HEX)
#else
#define PRINT(s, x)
#define PRINTS(x)
#define PRINTX(x)
#endif
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 4
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
#if USE_UI_CONTROL
const uint8_t SPEED_IN = A5;
const uint8_t DIRECTION_SET = 8;
const uint8_t INVERT_SET = 9;
const uint8_t SPEED_DEADBAND = 50;
#endif
uint8_t scrollSpeed = 10;
textEffect_t scrollEffect = PA_SCROLL_LEFT;
textPosition_t scrollAlign = PA_LEFT;
uint16_t scrollPause = 500;
#define BUF_SIZE 75
char curMessage[BUF_SIZE] = { "" };
char newMessage[BUF_SIZE] = { "WARNING!" };
bool newMessageAvailable = true;
#if USE_UI_CONTROL
MD_UISwitch_Digital uiDirection(DIRECTION_SET);
MD_UISwitch_Digital uiInvert(INVERT_SET);
void doUI(void)
{
{
int16_t speed = map(analogRead(SPEED_IN), 0, 1023, 0, 250);
if ((speed >= ((int16_t)P.getSpeed() + SPEED_DEADBAND)) ||
(speed <= ((int16_t)P.getSpeed() - SPEED_DEADBAND)))
{
P.setSpeed(speed);
scrollSpeed = speed;
PRINT("\nChanged speed to ", P.getSpeed());
}
}
if (uiDirection.read() == MD_UISwitch::KEY_PRESS)
{
PRINTS("\nChanging scroll direction");
scrollEffect = (scrollEffect == PA_SCROLL_LEFT ? PA_SCROLL_RIGHT : PA_SCROLL_LEFT);
P.setTextEffect(scrollEffect, scrollEffect);
P.displayClear();
P.displayReset();
}
if (uiInvert.read() == MD_UISwitch::KEY_PRESS)
{
PRINTS("\nChanging invert mode");
P.setInvert(!P.getInvert());
}
}
#endif
void readSerial(void)
{
static char *cp = newMessage;
while (Serial.available())
{
*cp = (char)Serial.read();
if ((*cp == '\n') || (cp - newMessage >= BUF_SIZE - 2))
{
*cp = '\0';
cp = newMessage;
newMessageAvailable = true;
}
else
cp++;
}
}
void setup()
{
pinMode(gas, INPUT);
pinMode(flame, INPUT);
pinMode(redLed, OUTPUT);
pinMode(blueLed, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(motor, OUTPUT);
pinMode(EXTINGUISHER_PIN, OUTPUT);
pinMode(MQ6_PIN, INPUT); // Set MQ6 sensor pin as INPUT
Serial.begin(9600);
Serial.print("\n[Parola Scrolling Display]\nType a message for the scrolling display\nEnd message line with a newline");
#if USE_UI_CONTROL
uiDirection.begin();
uiInvert.begin();
pinMode(SPEED_IN, INPUT);
doUI();
#endif
P.begin();
P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
}
void loop()
{
int varie = digitalRead(gas);
int varia = digitalRead(flame);
Serial.print(varie);
Serial.print(" ");
Serial.println(varia);
// Sensor LM35
int tempValue = analogRead(TempPin);
float tempCel = (tempValue / 1024.0) * 500;
// Sensor LDR
float ldrVoltage = analogRead(LdrPin) * (5.0 / 1023.0);
// Check if temperature is 50 degrees Celsius or more
if (tempCel >= thresholdTemp)
{
digitalWrite(redLed, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(motor, HIGH);
digitalWrite(blueLed, LOW);
}
else
{
digitalWrite(redLed, LOW);
digitalWrite(buzzer, LOW);
digitalWrite(motor, LOW);
}
// Check if LDR voltage is 0.80 V or more
if (ldrVoltage >= thresholdLdrVoltage)
{
digitalWrite(redLed, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(motor, HIGH);
digitalWrite(blueLed, LOW);
}
else
{
digitalWrite(blueLed, HIGH); // Set blue LED to HIGH when red LED is LOW
}
// Check if both gas sensor and flame sensor are HIGH
if (varie == HIGH && varia == HIGH)
{
digitalWrite(redLed, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(motor, HIGH);
digitalWrite(blueLed, LOW);
}
else
{
digitalWrite(blueLed, HIGH); // Set blue LED to HIGH when red LED is LOW
}
if (varie == HIGH && varia == HIGH)
{
digitalWrite(blueLed, LOW);
digitalWrite(EXTINGUISHER_PIN, HIGH); // Activate fire extinguishing system
}
// Check if MQ6 sensor pin is HIGH
if (digitalRead(MQ6_PIN) == HIGH)
{
digitalWrite(redLed, HIGH);
digitalWrite(buzzer, HIGH);
digitalWrite(blueLed, LOW);
}
#if USE_UI_CONTROL
doUI();
#endif
if (P.displayAnimate())
{
if (newMessageAvailable)
{
strcpy(curMessage, newMessage);
newMessageAvailable = false;
}
P.displayReset();
}
readSerial();
delay(50); // Reduce delay for faster response
}
- Mengatur library yang akan digunakan. MD_Parola dan MD_MAX72xx digunakan untuk mengendalikan display LED dot matrix Parola. SPI digunakan untuk komunikasi serial peripheral interface.
- Mendefinisikan pin untuk beberapa perangkat, seperti sensor gas (gas), sensor api (flame), LED merah (redLed), LED biru (blueLed), buzzer, motor, dan pin untuk kontrol pemadam api (EXTINGUISHER_PIN dan MQ6_PIN).
- Mendefinisikan pin untuk sensor suhu (TempPin) dan sensor LDR (LdrPin). Selain itu, juga didefinisikan batas ambang suhu (thresholdTemp) dan tegangan LDR (thresholdLdrVoltage) untuk kondisi tertentu.
- Mendefinisikan apakah pengaturan UI (user interface) akan digunakan atau tidak.
- Menggabungkan library MD_UISwitch jika pengaturan UI digunakan.
- Mendefinisikan opsi debugging. Jika DEBUG diatur sebagai 1, maka fungsi-fungsi PRINT akan aktif.
- Mendefinisikan tipe hardware dan pin untuk display Parola. Objek P dari kelas MD_Parola juga dibuat menggunakan konstruktor dengan parameter tipe hardware, pin CS, dan jumlah perangkat maksimum.
- Mendefinisikan pin untuk kontrol UI jika pengaturan UI digunakan.
- Mendefinisikan zona mati (deadband) untuk kontrol kecepatan jika pengaturan UI digunakan.
- Mendefinisikan beberapa parameter untuk efek pengguliran teks pada display Parola, seperti kecepatan pengguliran (scrollSpeed), jenis efek (scrollEffect), posisi teks (scrollAlign), dan jeda antara pengguliran (scrollPause).
- Mendefinisikan ukuran buffer (BUF_SIZE) untuk menyimpan pesan yang akan ditampilkan pada display. curMessage adalah pesan yang sedang ditampilkan, dan newMessage adalah pesan baru yang akan diupdate. Variabel newMessageAvailable menandakan ketersediaan pesan baru.
- Membuat objek kontrol UI (uiDirection dan uiInvert) jika pengaturan UI diaktifkan. Fungsi doUI() digunakan untuk membaca dan menanggapi input UI.
- Mendefinisikan fungsi readSerial() yang digunakan untuk membaca data dari port serial.
- Mmendefinisikan fungsi setup() yang digunakan untuk melakukan inisialisasi pada awal program.
- Mendefinisikan fungsi loop() yang merupakan bagian utama dari program yang akan dijalankan secara berulang.
- Membaca nilai digital dari pin sensor gas (gas) dan sensor api (flame). Nilai tersebut kemudian ditampilkan pada port serial.
- Membaca nilai analog dari sensor suhu (TempPin) dan sensor LDR (LdrPin). Nilai tersebut kemudian diubah menjadi suhu dalam derajat Celsius dan tegangan LDR.
- Logika kontrol dan kondisi lainnya untuk mengendalikan LED, buzzer, motor, dan sebagainya.
- Memanggil fungsi doUI() jika pengaturan UI diaktifkan. Selanjutnya, terdapat logika untuk menganimasikan pesan pada display Parola, membaca input dari port serial, dan memberikan jeda sebanyak 50 milidetik.
- Video Penjelasan Rangkaian Proteus
- Video Penjelasan Rangkaian Visual Designer
- Video Merangkai Rangkaian Visual Designer
- Video Merangkai Flowchart pada Visual Designer
- File HTML [klik]
- File Rangkaian Proteus [klik]
- File Rangkaian Visual Designer dan Flowchart [klik]
- File Rangkaian Running Text "WARNING" [klik]
- Code Arduino [klik]
- Video Simulasi Rangkaian Proteus [klik]
- Video Simulasi Visual Designer [klik]
- Video Merangkai Visual Designer [klik]
- Video Merangkai Flowchart [klik]
- Datasheet Arduino Uno [klik]
- Datasheet LED [klik]
- Datasheet Dotmatriks [klik]
- Datasheet Resistor [klik]
- Datasheet Sensor Flame [klik]
- Datasheet MQ-2 Sensor [klik]
- Datasheet MQ-6 Sensor [klik]
- Datasheet Sensor LM35 [klik]
- Datasheet Sensor LDR [klik]
- Datasheet Motor DC [klik]
- Library Sensor Flame [klik]
- Library Gas Sensor [klik]