
Smart protection with EzloPi
Methane and smoke detection system with visual and audible alarm
The EzloPi smart devices provide automation through simple, customizable use with our open-source EzloPi platform, making daily life easier and improving human-machine interactions.
Before moving into this example, it is very important to know about the device registration, provisioning and converting the ESP32 device into an EzloPi device along with knowledge of Web Flasher, MiOS Mobile Application for Android/iOS and the MiOS Web Application.
1. About this example
The following project is a safety solution designed to monitor and alert users to the presence of hazardous gases. Utilizing the MQ4 methane gas sensor and MQ2 LPG gas sensor, the system detects methane, LPG and smoke in the environment. When dangerous gas levels are identified, a buzzer provides an audible alarm, and an LED offers a visual indication, ensuring timely alerts. The sensors and components are seamlessly interfaced with the EzloPi device for real-time monitoring and control. This system is ideal for homes, industrial spaces, and enclosed areas, enhancing safety by preventing potential gas-related hazards.
3. Circuit Diagram & Interface
The following components are required for interfacing with the EzloPi device:
- ESP32 as an EzloPi smart device.
- MQ4 Methane gas sensor with two 1K Ohms resistors.
- MQ2 LPG gas sensor with two 1K Ohms resistors.
- LED with 100 Ohms resistor.
- MH-FMD buzzer
The wiring diagram of ESP32 30 pin is represented as follows:


The following connections are made in order to complete the circuit setup.
From ESP32 to the MQ4 gas sensor:
ESP32 | MQ4 | Resistor 1 | Resistor 2 |
VCC | VIN | - | - |
GND | GND | - | - |
D13 | D0 | - | - |
- | A0 | Terminal 1 | - |
D33 | - | Terminal 2 | Terminal 1 |
GND | - | - | Terminal 2 |
From ESP32 to the MQ2 gas sensor:
ESP32 | MQ4 | Resistor 1 | Resistor 2 |
VCC | VIN | - | - |
GND | GND | - | - |
D12 | D0 | - | - |
- | A0 | Terminal 1 | - |
D32 | - | Terminal 2 | Terminal 1 |
GND | - | - | Terminal 2 |
From ESP32 to the Buzzer::
ESP32 | LED2 |
3V3 | VCC |
GND | GND |
D15 | I/O |
From ESP32 to the LED & Resistor:
ESP32 | LED | Resistor |
D4 | - | Terminal 1 |
GND | Cathode | - |
- | Anode | Terminal 2 |
4. Interfacing the Methane, LPG gas sensor and buzzer using the EzloPi Web Flasher::
1. Set up your device/hardware by visiting config.ezlopi.com

- Log in using the credentials which you just set earlier while signing up.

- Now, click on the Connect Device button and a pop-up window will appear.

- Now, select COM Port to which your ESP32 device is connected. In our case, the COM3 port is used.
Click Connect

- If you are new to this and it's your first time configuring, select Create new Device ID. Enter Wifi SSID and Wifi Password.
- In the Device Configuration, tab click on Other.

- Other window will be opened for inputting the following parameters:
- Set a Device name of your choosing. In our case, we set it to MQ4.
- Set Device subtype to MQ4 Methane Gas Sensor.
- Tick mark the boxes of GPIO 1 & GPIO 2.
- Set the GPIO 1 to 13.
- Set the GPIO 2 to 33.
- Then Click Apply Button.
- Again, In the Device Configuration, tab click on Other

- Other window will be opened for inputting the following parameters:
- Set a Device name of your choosing. In our case, we set it to MQ2.
- Set Device subtype to MQ2 LPG Gas Sensor.
- Check mark the boxes of GPIO 1 & GPIO 2.
- Set the GPIO 1 to 12.
- Set the GPIO 2 to 32.
- Then Click Apply Button.
- Again, In the Device Configuration, tab click on Digital Output.

- A Digital Output window will be opened for inputting the following parameters:
- Set a Device name of your choosing. In our case, we set it to the Buzzer.
- Set Device Subtype to LED.
- Set the OUT GPIO to 15.
- Set the Resistor to PULL UP.
- Then Click Apply Button.
- Again, In the Device Configuration, tab click on Digital Output.

- A Digital Output window will be opened for inputting the following parameters:
- Set a Device name of your choosing. In our case, we set it to the LED.
- Set Device Subtype to LED.
- Set the OUT GPIO to 4.
- Set the Resistor to PULL UP.
- Then Click Apply Button.
- After clicking the apply button you can see a table of your setting in the device configuration tab.
- Now press the Flash Device Button.
- A window will appear on the bottom right side of the screen displaying “Please press BOOT button while flashing begins.”

- Hold the BOOT button down until the next window appears on the bottom right side of the screen which says “Installation prepared. Please release the boot button now.”

- Release the BOOT button from your ESP32 when this pop-up on the bottom right window appears.

- After some time, a popup will appear saying Device Flashed Successfully! This means that your device has been set up successfully.
5. MiOS Web Dashboard
- After configuring the controller with the EzloPi web flasher, head to ezlogic.mios.com

- Use the same credential to log in that you used for configuring the controller with the web flasher.

- On the MiOS web dashboard, you will be able to see the tiles of connected devices. In our case, we have MQ4 and MQ2 gas sensors for gas detection in the mines whereas buzzer and LEDs are used for alert or indication.
MeshBots:

- On the left side of the screen under Automation, click on MeshBots.
- On meshbot screen, click on Create new MeshBot button present on the top right corner of the screen.
- After clicking on Create new MeshBot, you will see this now under Automation MeshBot click on EzloPi.

- On the next screen you will see that we can create a name of our choosing, in this case we write it as Test016.

- In the trigger tab you can set the TRIGGER for your device and in the ACTION tab you can set the action to be performed based on the trigger which you have created.

- Set these things in TRIGGER section:
- Set Node Type to Device.
- Set the Node to MQ4_digi.
- Set the Capability to Gas alarm.
- Set the Armed State to any.
- Set the value to combustible_gas_detected.
- Set these values in the TRUE part of the ACTION section:
- Set Controllable Type to Device.
- Set the Controllable to Buzzer.
- Set the Capability to switch.
- Set the Value to true.

- Set these values in the FALSE part of the ACTION section:
- Set Controllable Type to Device.
- Set the Controllable to Buzzer.
- Set the Capability to switch.
- Set the Value to false.
- Now Click the Save button.

- After clicking the save button you can see this screen on the top right corner of the screen.

- Again Click on Create new Meshbot and under Automation MeshBot click on Cloud.
- On the next screen you will see that we can create a name of our choosing, in this case we write it as Test017.

- In the trigger tab you can set the TRIGGER for your device and in the ACTION tab you can set the action to be performed based on the trigger which you have created.

- Set these things in TRIGGER section:
- Set Node Type to Device.
- Set the Node to MQ2_digi.
- Set the Capability to Gas alarm.
- Set the Armed State to any.
- Set the value to combustible_gas_detected.
- Set these values in the TRUE part of the ACTION section.
- Set Controllable Type to Device.
- Set the Controllable to LED.
- Set the Capability to switch.
- Set the Value to true.

- Set these values in the FALSE part of the ACTION section.
- Set Controllable Type to Device.
- Set the Controllable to LED.
- Set the Capability to switch.
- Set the Value to false.
- Now Click the Save button.

- After clicking the save button you can see this screen on the top right corner of the screen.

- Here, you can see your saved MeshBot. Now click on Dashboard.

- Now in the MiOS web dashboard, we can see that when there is a small amount of gas detection by both of our gas sensors, there is no triggering for the buzzer and LED. These logics are set in the meshbot.

- Here in the above picture, it shows that when the gas concentration detected becomes very high for both gas sensors then both the buzzer and LED turns ON because of our meshbot settings. We have set the buzzer alert for MQ4 whereas LED alert is for MQ2 gas sensor as you can see in the meshbot above.
6. MiOS App
You can download the MIOS Android app from the Google Play Store and Apple App Store.
- After downloading the app, proceed to install the application and open it.

- Using the MIOS mobile application, create a new Ezlo Cloud account using the sign-up option. If you already have an account, you may proceed to log in.

- After successfully logging in, you will be able to see the number of controllers connected such as a lamp, fan, or any other device in the MiOS app. Tap on any controller of your desired ID:

- You will be able to see the status of your controller whether it is online or offline. Access the device dashboard, and tap the device. The following view of the dashboard will appear:

- On the MiOS mobile dashboard, we can see that when there is a small amount of gas detection by both of our gas sensors, there is no triggering for the buzzer and LED. These logics are set in the meshbot.

- Here in the above picture, it shows that when the gas concentration detected becomes very high for both gas sensors then both the buzzer and LED turns ON because of our meshbot settings. We have set the buzzer alert for MQ4 whereas LED alert is for MQ2 gas sensor as you can see in the meshbot above.

eZlopie Products A single-channel 5V relay module $00.00

eZlopie Products Momentary switch $00.00

eZlopie Products Level Shifter Module (BSS138) $00.00

eZlopie Products ESP32
$00.00

eZlopie Products AC Lamp and Holder
$00.00