LA MODUL 4
DAFTAR ISI
1. Prosedur [Kembali ke Daftar Isi]
Prosedur (Langkah-Langkah Simulasi Rangkaian)
- Membuka software Proteus dan membuat project baru.
- Menambahkan komponen STM32 Blue Pill ke dalam workspace.
- Menambahkan sensor SW-420 sebagai sensor getaran tanah.
- Menambahkan sensor SW-520D sebagai sensor kemiringan tanah.
- Menambahkan Capacitive Soil Moisture Sensor sebagai sensor kelembaban tanah.
- Menambahkan Flame Sensor sebagai sensor pendeteksi api.
- Menambahkan Sensor Gas MQ-2 sebagai sensor pendeteksi asap dan gas mudah terbakar.
- Menambahkan LCD I2C 16×2 sebagai media tampilan data.
- Menambahkan Buzzer sebagai alarm peringatan.
- Menghubungkan seluruh sensor ke pin input STM32 Blue Pill sesuai perancangan.
- Menulis program pada STM32CubeIDE menggunakan bahasa C.
- Mengompilasi program dan menghasilkan file .hex.
- Memasukkan file .hex ke mikrokontroler pada Proteus.
- Menjalankan simulasi.
- Mengubah nilai sensor untuk mensimulasikan kondisi normal, longsor, kebakaran, dan kondisi gabungan.
- Mengamati respon LCD dan buzzer terhadap perubahan kondisi sensor.
2. Hardware dan Diagram Blok [Kembali ke Daftar Isi]
INPUT :
1. Sensor SW-420 (Sensor Getar)
Kegunaan:
• Mendeteksi getaran atau pergerakan tanah.
• Digunakan sebagai indikator awal terjadinya tanah longsor.
• Jika lereng mulai bergerak atau bergetar, sensor akan mengirim sinyal ke STM32 Blue Pill.
2. Tilt Sensor SW-520D
Kegunaan:
• Mendeteksi perubahan sudut atau kemiringan tanah/tiang.
• Digunakan untuk mengetahui apakah lereng mulai berubah posisi.
3. Capacitive Soil Moisture Sensor
Kegunaan:
• Mengukur kelembaban tanah.
• Tanah yang terlalu basah memiliki risiko longsor lebih tinggi.
4. Flame Sensor
Kegunaan:
• Mendeteksi adanya api atau nyala kebakaran.
• Sensor bekerja dengan mendeteksi cahaya inframerah dari api.
5. Sensor Gas MQ-2
Kegunaan:
• Mendeteksi asap, gas LPG, dan gas mudah terbakar.
• Digunakan untuk mengetahui adanya kebocoran gas atau asap kebakaran.
OUTPUT :
1. Buzzer
Fungsi:
• Mengeluarkan alarm suara saat kondisi bahaya terdeteksi.
2. Relay + Exhaust Fan
Fungsi:
• Mengaktifkan kipas otomatis saat terdeteksi asap/gas.
3. Relay + Mini Water Pump
Fungsi:
• Menyalakan pompa air otomatis saat flame sensor mendeteksi api.
4. LCD 16x2 I2C
Fungsi:
• Menampilkan informasi kondisi sistem:
Aman
Waspada
Bahaya Longsor
Kebakaran Terdeteksi
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali ke Daftar Isi]
Prinsip kerja sistem dimulai ketika STM32 Blue Pill mengaktifkan seluruh sensor. Sensor SW-420 membaca adanya getaran yang dapat mengindikasikan pergerakan tanah. Sensor SW-520D membaca perubahan sudut kemiringan lereng. Sensor Soil Moisture mengukur kadar air tanah yang menjadi salah satu indikator potensi longsor.
Apabila kelembaban tanah tinggi, disertai getaran dan perubahan kemiringan melebihi batas yang ditentukan, STM32 akan mengidentifikasi kondisi tersebut sebagai potensi tanah longsor.
Untuk deteksi kebakaran, Flame Sensor digunakan untuk mendeteksi nyala api secara langsung. Sensor MQ-2 digunakan untuk mendeteksi asap dan gas hasil pembakaran. Jika salah satu atau kedua sensor mendeteksi indikasi kebakaran, STM32 akan mengaktifkan alarm.
Selanjutnya data kondisi yang diperoleh akan ditampilkan pada LCD. Buzzer akan aktif sebagai peringatan dini apabila kondisi bahaya terdeteksi.
Output sistem terdiri dari:
- Tampilan status pada LCD
- Bunyi alarm buzzer
- Informasi kondisi normal atau bahaya
4. Flowchart dan Listing Program [Kembali ke Daftar Isi]
Listing Program:
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.c
* @brief : Main program body
******************************************************************************
* @attention
*
* Copyright (c) 2026 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "liquidcrystal_i2c.h" // Driver LCD I2C
#include <stdio.h> // Diperlukan untuk fungsi sprintf
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
/* USER CODE END PTD */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc1;
I2C_HandleTypeDef hi2c1;
/* USER CODE BEGIN PV */
uint8_t status_terakhir = 99; // Variabel penanda agar LCD tidak berkedip (flicker)
/* Variabel Sensor Gas (PA0) */
uint32_t adc_gas_raw = 0;
uint8_t gas_persen = 0;
/* Variabel Sensor Soil (PA1) */
uint32_t adc_soil_raw = 0;
uint8_t soil_persen = 0;
char lcd_buffer[20]; // Buffer string untuk LCD (aman dari format-overflow)
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ADC1_Init(void);
static void MX_I2C1_Init(void);
/* USER CODE BEGIN PFP */
uint32_t ADC_Read_Channel(uint32_t channel); // Fungsi kustom untuk ganti channel ADC secara manual
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/**
* @brief Fungsi untuk membaca spesifik channel ADC secara bergantian
* @param channel: ADC_CHANNEL_0, ADC_CHANNEL_1, dll.
* @retval Nilai mentah ADC (0 - 4095)
*/
uint32_t ADC_Read_Channel(uint32_t channel)
{
ADC_ChannelConfTypeDef sConfig = {0};
uint32_t adc_val = 0;
sConfig.Channel = channel;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_7CYCLES_5;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
Error_Handler();
}
HAL_ADC_Start(&hadc1);
if (HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK)
{
adc_val = HAL_ADC_GetValue(&hadc1);
}
HAL_ADC_Stop(&hadc1);
return adc_val;
}
/* USER CODE END 0 */
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_ADC1_Init();
MX_I2C1_Init();
/* USER CODE BEGIN 2 */
/* Inisialisasi awal LCD I2C */
HD44780_Init(2);
HD44780_Clear();
HD44780_Backlight();
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* =======================================================
PROSES MEMBACA MULTI-CHANNEL ADC SENSOR (GAS & SOIL)
======================================================= */
// 1. Baca Sensor Gas di PA0 (Channel 0)
adc_gas_raw = ADC_Read_Channel(ADC_CHANNEL_0);
gas_persen = (uint8_t)((adc_gas_raw * 100) / 4095);
// 2. Baca Sensor Soil di PA1 (Channel 1)
adc_soil_raw = ADC_Read_Channel(ADC_CHANNEL_1);
soil_persen = (uint8_t)(((4095 - adc_soil_raw) * 100) / 4095);
/* --- Membaca Logika Digital Sensor Bencana --- */
uint8_t flame_terdeteksi = (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_2) == GPIO_PIN_RESET); // PA2 Aktif LOW
uint8_t getaran_terdeteksi = (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_3) == GPIO_PIN_SET); // PA3 Aktif HIGH
/* =======================================================
LOGIKA KONTROL PIN OUTPUT BERDASARKAN KONDISI SENSOR
======================================================= */
// 1. Kontrol Pin PB11 (Buzzer) -> Aktif jika Kebakaran OR Longsor OR Gas >= 70% OR Soil > 50%
if (flame_terdeteksi || getaran_terdeteksi || (gas_persen >= 70) || (soil_persen > 50)) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, GPIO_PIN_SET);
} else {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_11, GPIO_PIN_RESET);
}
// 2. Kontrol Pin PB1 -> Aktif HANYA jika terdeteksi Kebakaran
if (flame_terdeteksi) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);
} else {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);
}
// 3. Kontrol Pin PB10 -> MATI jika PA3 Aktif, sebaliknya aktif jika Gas >= 70%
if (getaran_terdeteksi) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); // Jika PA3 aktif (Longsor), matikan PB10
} else if (gas_persen >= 70) {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_SET); // Jika PA3 aman, PB10 menyala jika gas pekat
} else {
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10, GPIO_PIN_RESET); // Jika semua aman, matikan PB10
}
/* =======================================================
LOGIKA MANAJEMEN TAMPILAN LCD (PRIORITAS BENCANA)
======================================================= */
// JIKA TERDETEKSI KEBAKARAN (Prioritas Utama)
if (flame_terdeteksi)
{
if (status_terakhir != 1)
{
HD44780_Clear();
HD44780_SetCursor(0, 0);
HD44780_PrintStr("EWS BENCANA");
HD44780_SetCursor(0, 1);
HD44780_PrintStr("!!! KEBAKARAN !!!");
status_terakhir = 1;
}
}
// JIKA TERDETEKSI TANAH LONGSOR (Prioritas Kedua)
else if (getaran_terdeteksi)
{
if (status_terakhir != 2)
{
HD44780_Clear();
HD44780_SetCursor(0, 0);
HD44780_PrintStr("EWS BENCANA");
HD44780_SetCursor(0, 1);
HD44780_PrintStr("!TANAH LONGSOR!");
status_terakhir = 2;
}
}
// KONDISI AMAN (Tampilkan Persentase Gas dan Soil secara berdampingan)
else
{
if (status_terakhir != 0)
{
HD44780_Clear();
HD44780_SetCursor(0, 0);
HD44780_PrintStr("EWS BENCANA");
status_terakhir = 0;
}
/* Tampilkan nilai G:XX% dan S:XX% di baris kedua secara real-time */
HD44780_SetCursor(0, 1);
sprintf(lcd_buffer, "G:%3d%% S:%3d%% ", gas_persen, soil_persen);
HD44780_PrintStr(lcd_buffer);
}
HAL_Delay(250); // Jeda refresh rate
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
/**
* @brief System Clock Configuration
* @retval None
*/
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
/** Initializes the RCC Oscillators according to the specified parameters
* in the RCC_OscInitTypeDef structure.
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
/** Initializes the CPU, AHB and APB buses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
{
Error_Handler();
}
PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;
PeriphClkInit.AdcClockSelection = RCC_ADCPCLK2_DIV2;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
{
Error_Handler();
}
}
/**
* @brief ADC1 Initialization Function
* @param None
* @retval None
*/
static void MX_ADC1_Init(void)
{
/* USER CODE BEGIN ADC1_Init 0 */
/* USER CODE END ADC1_Init 0 */
ADC_ChannelConfTypeDef sConfig = {0};
/* USER CODE BEGIN ADC1_Init 1 */
/* USER CODE END ADC1_Init 1 */
/** Common config
*/
hadc1.Instance = ADC1;
hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc1.Init.ContinuousConvMode = DISABLE;
hadc1.Init.DiscontinuousConvMode = DISABLE;
hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc1.Init.NbrOfConversion = 1;
if (HAL_ADC_Init(&hadc1) != HAL_OK)
{
Error_Handler();
}
/** Configure Regular Channel
*/
sConfig.Channel = ADC_CHANNEL_0;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN ADC1_Init 2 */
/* USER CODE END ADC1_Init 2 */
}
/**
* @brief I2C1 Initialization Function
* @param None
* @retval None
*/
static void MX_I2C1_Init(void)
{
/* USER CODE BEGIN I2C1_Init 0 */
/* USER CODE END I2C1_Init 0 */
/* USER CODE BEGIN I2C1_Init 1 */
/* USER CODE END I2C1_Init 1 */
hi2c1.Instance = I2C1;
hi2c1.Init.ClockSpeed = 100000;
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c1.Init.OwnAddress1 = 0;
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c1.Init.OwnAddress2 = 0;
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN I2C1_Init 2 */
/* USER CODE END I2C1_Init 2 */
}
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1|GPIO_PIN_10|GPIO_PIN_11, GPIO_PIN_RESET);
/*Configure GPIO pins : PA2 PA3 */
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PB1 PB10 PB11 */
GPIO_InitStruct.Pin = GPIO_PIN_1|GPIO_PIN_10|GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
}
/* USER CODE BEGIN 4 */
/* USER CODE END 4 */
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
while (1)
{
}
/* USER CODE END Error_Handler_Debug */
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
main.h
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file : main.h
* @brief : Header for main.c file.
* This file contains the common defines of the application.
******************************************************************************
* @attention
*
* Copyright (c) 2026 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __MAIN_H
#define __MAIN_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f1xx_hal.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
/* USER CODE BEGIN ET */
/* USER CODE END ET */
/* Exported constants --------------------------------------------------------*/
/* USER CODE BEGIN EC */
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
/* USER CODE END EM */
/* Exported functions prototypes ---------------------------------------------*/
void Error_Handler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
#ifdef __cplusplus
}
#endif
#endif /* __MAIN_H */
5. Landasan Teori [Kembali ke Daftar Isi]
Mitigasi bencana merupakan serangkaian upaya yang dilakukan untuk mengurangi risiko dan dampak yang ditimbulkan oleh suatu bencana, baik melalui pembangunan fisik maupun peningkatan kesadaran dan kemampuan masyarakat dalam menghadapi ancaman bencana. Menurut Undang-Undang Republik Indonesia Nomor 24 Tahun 2007 tentang Penanggulangan Bencana, mitigasi adalah upaya yang dilakukan untuk mengurangi risiko bencana melalui pembangunan fisik, penyadaran, dan peningkatan kemampuan menghadapi ancaman bencana.
Penerapan sistem peringatan dini merupakan salah satu bentuk mitigasi struktural yang bertujuan memberikan informasi kepada masyarakat sebelum bencana terjadi sehingga tindakan pencegahan dan evakuasi dapat dilakukan lebih cepat. Dalam penelitian ini, sistem peringatan dini digunakan sebagai media edukasi mitigasi bencana tanah longsor dan kebakaran di kawasan Batu Busuak.
Sistem Peringatan Dini atau Early Warning System (EWS) adalah suatu sistem yang dirancang untuk mendeteksi gejala awal terjadinya suatu bencana dan memberikan informasi peringatan kepada masyarakat sebelum bencana tersebut terjadi. Sistem ini berfungsi untuk meningkatkan kesiapsiagaan masyarakat sehingga dapat meminimalkan korban jiwa maupun kerugian material.
Komponen utama dalam sistem peringatan dini meliputi:
- Sensor sebagai alat pendeteksi kondisi lingkungan.
- Pengolah data (mikrokontroler).
- Sistem komunikasi atau penyampaian informasi.
- Perangkat alarm atau indikator peringatan.
Pada penelitian ini, sensor berfungsi untuk mendeteksi perubahan kondisi lingkungan, STM32 Blue Pill bertindak sebagai pengolah data, sedangkan LCD dan buzzer digunakan sebagai media penyampaian informasi dan peringatan.
Tanah longsor merupakan peristiwa perpindahan massa tanah atau batuan dari tempat yang lebih tinggi ke tempat yang lebih rendah akibat gangguan kestabilan lereng. Longsor sering terjadi pada daerah perbukitan yang memiliki kemiringan lereng tinggi dan curah hujan yang besar.
Beberapa faktor yang dapat menyebabkan tanah longsor antara lain:
- Curah hujan yang tinggi.
- Kemiringan lereng yang curam.
- Getaran akibat gempa atau aktivitas manusia.
- Erosi tanah.
- Berkurangnya vegetasi penahan tanah.
Pada penelitian ini, potensi longsor dideteksi berdasarkan tiga parameter utama yaitu getaran tanah, perubahan kemiringan lereng, dan tingkat kelembaban tanah.
Kebakaran adalah suatu peristiwa terjadinya nyala api yang tidak terkendali sehingga dapat menimbulkan kerugian baik terhadap manusia, lingkungan maupun infrastruktur. Kebakaran terjadi karena adanya tiga unsur utama yang dikenal sebagai Segitiga Api (Fire Triangle), yaitu:
- Bahan bakar (Fuel)
- Oksigen (Oxygen)
- Sumber panas (Heat)
Apabila ketiga unsur tersebut bertemu maka akan terjadi proses pembakaran.
Pada penelitian ini, kebakaran dideteksi menggunakan Flame Sensor untuk mendeteksi nyala api dan Sensor MQ-2 untuk mendeteksi asap atau gas hasil pembakaran.
6. Kondisi [Kembali ke Daftar Isi]
Kondisi 1 (Normal)
- Getaran = Tidak ada
- Kemiringan = Normal
- Kelembaban = Rendah
- Api = Tidak ada
- Asap = Tidak ada
Output:
LCD = Normal
BUZZER = Off
Kondisi 2 (Potensi Longsor)
- Getaran = Ada
- Kemiringan = Berubah
- Kelembaban = Tinggi
Output:
LCD = Longsor
BUZZER = On
Kondisi 3 (Potensi Kebakaran)
- Flame Sensor aktif
- MQ-2 mendeteksi asap
Output:
LCD = Kebakaran
BUZZER = On
Kondisi 4 (Longsor dan Kebakaran)
Output:
LCD = Bahaya
BUZZER = On
7. Video Simulasi [Kembali ke Daftar Isi]
8. Download File [Kembali ke Daftar Isi]
Download Video Demo Prototype DISINI
- Download Rangkaian klik disini
Video Simulasi [Download]
- Datasheet Battery [Download]
- Datasheet Transistor [Download]
- Datasheet Load Cell Sensor [Download]
- Datasheet Sound Sensor [Download]
- Datasheet Vibration Sensor [Download]
- Datasheet LDR Sensor [Download]
- Datasheet Rain Sensor [Download]
- Library Proteus LDR Sensor [Download]
- Library Proteus UV Sensor [Download]
Komentar
Posting Komentar