-
1Gather Components and Install Libraries
Components needed: ESP32 DevKit V1, ESP32-CAM AI Thinker, 2x MQ9 Gas Sensor, 2x HC-SR04, 2x IR Sensor, L298N Motor Driver, 2x DC Gear Motor, Active Buzzer, MPU6050, 2x 2S LiPo, Breadboard PSU Module, Acrylic 2WD Chassis.
Install in Arduino IDE: ESP32 Board Package (Espressif), MPU6050 by Electronic Cats. WiFi.h, WebServer.h, Wire.h are built-in.
-
2Wire the Circuit
Critical power rules — MQ9 CO → 3.3V only (GPIO36/VP). MQ9 LPG → 5V only (GPIO32). Swapping these voltages causes wrong readings.
Key pin mapping: Buzzer→GPIO4, HC-SR04 Front TRIG/ECHO→GPIO5/18, Rear→GPIO19/21, IR Left→GPIO34, IR Right→GPIO35, L298N: ENA→GPIO12, IN1→GPIO14, IN2→GPIO27, IN3→GPIO26, IN4→GPIO25, ENB→GPIO33, MPU6050 SDA/SCL→GPIO23/22.
ESP-CAM: dedicated 5V supply only — never from ESP32 3.3V pin.
Remove ENA/ENB jumper caps on L298N before connecting PWM pins. -
3Flash ESP-CAM Then Main ESP32
Flash ESP-CAM first using FTDI programmer: FTDI TX→U0R, RX→U0T, IO0→GND before powering. Board: AI Thinker ESP32-CAM, Partition: Huge APP 3MB.
After flash: disconnect IO0 from GND, press RESET. Serial should show IP 192.168.4.2.Flash main ESP32 via USB-C. Board: ESP32 Dev Module, Partition: Default 4MB spiffs.
After flash: connect phone to ESP32_BOT WiFi → open 192.168.4.1 → dashboard loads. -
4Calibrate Gas Sensors
Allow 3–5 minutes warm-up before use. First time only: 24–48 hours burn-in.
Power on in clean air → watch Serial Monitor for 5 minutes → note highest ADC value → set GAS_THRESHOLD = that value + 200.
Typical clean-air baselines: MQ9 CO (3.3V): 200–600 counts. MQ9 LPG (5V): 400–900 counts.
Test without real gas: hold lighter (no flame) 10cm from LPG sensor — should trigger in 2–3 seconds.
blinknbuild
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.