Menggunakan Sensor Gas MQ7 pada Sistem STM32

3 min read 22-08-2024
Menggunakan Sensor Gas MQ7 pada Sistem STM32

Sistem embedded saat ini sangat populer dalam berbagai aplikasi, terutama dalam sektor otomasi dan monitoring. Salah satu sensor yang bermanfaat dalam pengukuran gas adalah sensor gas MQ7. Sensor ini dirancang khusus untuk mendeteksi kadar karbon monoksida (CO) di udara. Dalam artikel ini, kita akan membahas cara menggunakan sensor gas MQ7 dengan mikrokontroler STM32 untuk membuat sistem pemantauan kualitas udara yang sederhana.

Apa itu Sensor Gas MQ7?

Sensor gas MQ7 adalah jenis sensor yang sensitif terhadap gas karbon monoksida. Sensor ini sering digunakan dalam aplikasi pemantauan kualitas udara, deteksi kebocoran gas, dan sistem keamanan. MQ7 dapat mendeteksi konsentrasi CO dengan rentang antara 20 hingga 2000 ppm (parts per million).

Fitur Utama Sensor MQ7

  • Rentang deteksi: 20 ppm hingga 2000 ppm
  • Tegangan kerja: Antara 5V hingga 12V
  • Resistansi pemanasan: Memiliki resistor heater yang berfungsi untuk memanaskan sensor dan mendeteksi gas
  • Keuntungan biaya: Sensor ini relatif murah dan mudah didapat

Persiapan Hardware

Komponen yang Dibutuhkan

Untuk menggunakan sensor MQ7 dengan mikrokontroler STM32, Anda memerlukan beberapa komponen berikut:

  1. Mikrokontroler STM32 (seperti STM32F4 atau STM32F1)
  2. Sensor Gas MQ7
  3. Resistor (10 kΩ)
  4. Breadboard dan jumper wire
  5. Power supply (5V)
  6. Kabel USB untuk pemrograman STM32

Skema Koneksi

Langkah pertama adalah menghubungkan sensor MQ7 dengan STM32. Berikut adalah cara umum untuk menghubungkannya:

  • Hubungkan pin VCC sensor MQ7 ke sumber daya 5V.
  • Hubungkan pin GND sensor ke ground STM32.
  • Hubungkan pin A0 (atau pin ADC lain) pada STM32 ke pin output sensor MQ7. Anda perlu menggunakan resistor pull-down (sekitar 10 kΩ) untuk membantu dalam pembacaan data.

Berikut adalah diagram skematik sederhana:

         +------------------+
         |   Sensor MQ7     |
         |                  |
         |  VCC ------ 5V   |
         |  GND ------ GND  |
         |  AOUT ---- A0    |
         +------------------+

Pemrograman Mikrokontroler STM32

Setelah koneksi hardware selesai, langkah selanjutnya adalah memprogram mikrokontroler STM32 untuk membaca sinyal dari sensor MQ7. Anda dapat menggunakan IDE seperti STM32CubeIDE atau Keil.

Instalasi Library

Pastikan untuk menginstal library yang diperlukan agar kita bisa menggunakan ADC dan GPIO STM32. Dalam STM32, Anda bisa menggunakan HAL (Hardware Abstraction Layer) atau LL (Low Layer) untuk manajemen hardware.

Contoh Kode

Berikut adalah contoh kode sederhana dalam bahasa C untuk membaca data dari sensor MQ7:

#include "stm32f4xx_hal.h"

ADC_HandleTypeDef hadc1;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ADC1_Init(void);

int main(void) {
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_ADC1_Init();

    while (1)
    {
        // Mengambil nilai ADC
        HAL_ADC_Start(&hadc1);
        if (HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY) == HAL_OK) {
            uint32_t adcValue = HAL_ADC_GetValue(&hadc1);
            // Lakukan sesuatu dengan adcValue, seperti konversi ke ppm
        }
        HAL_ADC_Stop(&hadc1);
        HAL_Delay(1000); // Tunggu 1 detik sebelum melakukan pembacaan berikutnya
    }
}

static void MX_ADC1_Init(void) {
    ADC_ChannelConfTypeDef sConfig = {0};

    hadc1.Instance = ADC1;
    hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;
    hadc1.Init.Resolution = ADC_RESOLUTION_12B;
    hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
    hadc1.Init.ContinuousConvMode = DISABLE;
    hadc1.Init.DiscontinuousConvMode = DISABLE;
    hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
    hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
    hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
    hadc1.Init.NbrOfConversion = 1;
    HAL_ADC_Init(&hadc1);
    
    sConfig.Channel = ADC_CHANNEL_0; // Pastikan ini sesuai dengan pin yang digunakan
    sConfig.Rank = 1;
    sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
    HAL_ADC_ConfigChannel(&hadc1, &sConfig);
}

// Konfigurasi sistem dan GPIO di sini

Mengolah Data dari Sensor MQ7

Konversi ADC ke PPM

Setelah Anda berhasil membaca nilai dari sensor, langkah selanjutnya adalah mengkonversi nilai ADC menjadi konsentrasi gas dalam ppm. Pengolahan data ini bisa dilakukan dengan rumus sederhana yang bergantung pada karakteristik sensor.

Namun, Anda juga dapat menggunakan model kalibrasi yang lebih kompleks untuk mendapatkan hasil yang lebih akurat. Kalibrasi ini dapat dilakukan dengan menggunakan gas yang memiliki konsentrasi diketahui.

Menampilkan Data

Setelah Anda mendapatkan nilai ppm, Anda mungkin ingin menampilkan informasi ini pada LCD, OLED, atau melalui koneksi serial ke komputer atau perangkat lain. Dengan menggunakan modul komunikasi seperti ESP8266, Anda juga bisa mengirimkan data ke server berbasis web untuk pemantauan jarak jauh.

Kesimpulan

Sensor gas MQ7 adalah alat yang berguna dan efisien untuk mendeteksi karbondioksida. Dengan memanfaatkan STM32, Anda dapat dengan mudah membuat sistem pemantauan gas yang dapat memperingatkan pengguna akan peningkatan kadar gas berbahaya dalam udara.

Metode serta contoh kode yang telah dibahas memberikan pemahaman dasar dalam penggunaan sensor MQ7 dengan mikrokontroler STM32. Tentu saja, Anda bisa memperdalam dan mengembangkan proyek ini lebih lanjut dengan menambahkan fungsi dan fitur lain sesuai kebutuhan. Selamat mencoba dan semoga sukses dalam proyek Anda!