Gas or MQ-2 Sensor

📟 Micro:bit Project: MQ Or Gas sensor Alert



ដើម្បីធ្វើឱ្យកូដនេះដំណើរការ សូមអនុវត្តតាមតក្កវិជ្ជាភ្ជាប់ខ្សែភ្លើងនេះ៖

  • VCC៖ ភ្ជាប់ទៅ 3V ឬប្រភព 5V ខាងក្រៅ (ឧបករណ៍ចាប់សញ្ញា MQ ជាធម្មតាចូលចិត្ត 5V ដើម្បីកំដៅធាតុឱ្យបានត្រឹមត្រូវ ប៉ុន្តែត្រូវប្រយ័ត្នកុំឱ្យបញ្ជូន 5V ត្រឡប់ទៅម្ជុល micro:bit វិញ)។

  • GND: ភ្ជាប់ទៅ GND

  • AO (Analog Out): ភ្ជាប់ទៅ Pin 1

  • LED/Buzzer: ភ្ជាប់ទៅ Pin 2 និង Pin 8 រៀងៗខ្លួន។

គន្លឹះសំខាន់ៗសម្រាប់ឧបករណ៍ចាប់សញ្ញាឧស្ម័ន

  1. ដំណាក់កាល "កំដៅមុន"៖ ឧបករណ៍ចាប់សញ្ញា MQ មានឧបករណ៍កម្តៅដែលភ្ជាប់មកជាមួយ។ នៅពេលអ្នកបើកវាជាលើកដំបូង ការអាននឹងមាននៅគ្រប់ទីកន្លែង។ ទុកឱ្យឧបករណ៍ចាប់សញ្ញានៅដំណើរការប្រហែល 60 វិនាទី មុនពេលអ្នកទុកចិត្តទិន្នន័យ។

  2. ការក្រិតតាមខ្នាត៖ ឧបករណ៍ចាប់សញ្ញា MQ នីមួយៗគឺខុសគ្នាបន្តិចបន្តួច។ ប្រសិនបើលេខកូដរបស់អ្នកកំពុងបង្កឱ្យមានសំឡេងរោទិ៍ងាយពេក (ឬមិនបង្កទាល់តែសោះ) សូមផ្លាស់ប្តូរ 400នៅក្នុង ifសេចក្តីថ្លែងការណ៍ទៅជាលេខខ្ពស់ជាង ឬទាបជាងដោយផ្អែកលើអ្វីដែលអ្នកឃើញនៅក្នុងកុងសូល។

  3. ការប្រើប្រាស់ LCD៖ ប្រសិនបើអ្នកចង់ប្រើ LCD I2C ដូចនៅក្នុងកូដ Arduino ដើមរបស់អ្នក អ្នក ត្រូវតែ ចុចប៊ូតុង "ផ្នែកបន្ថែម" នៅក្នុង MakeCode ហើយស្វែងរក "LCD1602" ។ នេះនឹងបន្ថែមមុខងារថ្មីៗ (ដូចជា LCD1602.showString()) ទៅក្នុងបណ្ណាល័យ JavaScript របស់អ្នក។

💻 JavaScript Code


let gasValue = 0
// Setup: LCD initialization usually depends on the specific extension you add
// For this example, we will use the serial monitor and the micro:bit screen
basic.forever(function () {
    // Read the MQ2 sensor from Analog Pin 1
    gasValue = pins.analogReadPin(AnalogPin.P1)
    // Display the value on the micro:bit's LED matrix (optional)
    // basic.showNumber(gasValue)
    // Threshold check (400 is common, but you may need to calibrate)
    if (gasValue > 400) {
        // Show a warning icon
        basic.showIcon(IconNames.No)
        for (let index = 0; index <= 10; index++) {
            // GAS DETECTED
            // Turn on LED on Pin 2
            pins.digitalWritePin(DigitalPin.P2, 1)
            basic.pause(100)
            // GAS DETECTED
            // Turn on LED on Pin 2
            pins.digitalWritePin(DigitalPin.P2, 0)
            basic.pause(100)
            // Turn on Buzzer on Pin 8
            pins.digitalWritePin(DigitalPin.P8, 1)
            basic.pause(100)
            // Turn on Buzzer on Pin 8
            pins.digitalWritePin(DigitalPin.P8, 0)
            basic.pause(100)
        }
    } else {
        // CLEAR
        // Turn off LED
        pins.digitalWritePin(DigitalPin.P2, 0)
        // Turn off Buzzer
        pins.digitalWritePin(DigitalPin.P8, 0)
        // Show a happy face or clear screen
        basic.showIcon(IconNames.Yes)
    }
    // A small pause to prevent the micro:bit from over-processing
    basic.pause(500)
})

  

Post a Comment

Previous Post Next Post