Skip to content

aruncs31s/Tunnel-Inspection-Robot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tunnel Inspection Robot

Block Diagram

graph TD
    A[Arduino UNO] --> B[MQ6 LPG Sensor]
    A --> C[MQ7 CO Sensor]
    A --> D[DHT11 Temp/Humidity Sensor]
    A --> E[Touch Sensor]
    A --> F[L298N Motor Driver]
    A --> G[HC05 Bluetooth Module]
    A --> H[ESP32-CAM]
    F --> I[DC Motor]
    J[18650 Battery] --> K[DC Buck Converter] --> A
Loading
graph LR 
    A[Arduino UNO] --> B[MQ6 LPG Sensor]
    A --> C[MQ7 CO Sensor]
    A --> D[DHT11 Temp/Humidity Sensor]
    A --> E[Touch Sensor]
    A --> F[L298N Motor Driver]
    A --> G[HC05 Bluetooth Module]
    A --> H[ESP32-CAM]
    F --> I[DC Motor]
    J[18650 Battery] --> K[DC Buck Converter] --> A
Loading

Components

  1. Arduino UNO

Arduino UNO

Atmega328p is a popular open-source microcontroller board for prototyping and education, based on the ATmega328P

alt text

Specifications
  • Microcontroller: ATmega328P
  • Operating Voltage: 5 V
  • Input Voltage (recommended): 7–12 V
  • Digital I/O Pins: 14 (6 PWM outputs)
  • Analog Input Pins: 6
  • Flash Memory: 32 KB (ATmega328P) of which 0.5 KB used by bootloader
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Clock Speed: 16 MHz
  • LED_BUILTIN: Pin 13

MQ6

MQ6 is a liquefied petroleum gas (LPG) sensor, suitable for sensing LPG (composed of mostly propane and butane) concentrations in the air

  • MQ-6 gas sensor can detect kinds of flammable gases, especially has high sensitivity to LPG (propane). It is a kind of low–cost sensor for many applications.

mq6

Properties
  • Sensor type: MQ-6 (semiconductor tin dioxide, SnO2)
  • Detects: LPG, iso-butane, propane (and other combustible gases)
  • Operating Voltage: 5 V (heater)
  • Output: Analog voltage (sensor resistance changes; read with ADC)
  • Recommended Load Resistor (RL): ~10 kΩ (typical, depends on circuit)
  • Detection Range: Approx. 100–10,000 ppm (application-dependent; requires calibration)
  • Warm-up / Preheat: Initial burn-in 24–48 hours recommended; allow a few minutes for routine stabilization
  • Operating Temperature: ~-10 °C to 50 °C
  • Humidity Range: 20–90% RH (non-condensing)
  • Interface: Simple analog divider; optionally combined with comparator or ADC + MCU
  • Notes: Not highly selective (cross-sensitivity to other gases); requires calibration and periodic baseline checks

MQ7

alt text

MQ7 is a carbon monoxide (CO) gas sensor, designed to detect CO concentrations in the air. It operates on the principle of a change in resistance of a tin dioxide (SnO2) sensing layer when exposed to CO gas.

Features

  • High sensitivity to carbon monoxide
  • Stable and long life

DHT11

DHT11 is a basic, ultra low-cost digital temperature and humidity sensor

alt text

Features

  • Sensor Type: DHT11 (capacitive humidity sensor + thermistor)
  • Measures: Temperature and Humidity
  • Temperature Range: 0–50 °C (±2 °C accuracy)
  • Humidity Range: 20–90% RH (±5% RH accuracy)
  • Operating Voltage: 3.3–5 V
  • Interface: Single-wire digital (requires specific timing)
  • Sampling Rate: 1 Hz (1 reading per second)

Touch Sensor

"A touch sensor is an electronic device designed to detect and record physical contact or proximity, converting tactile interaction into electrical signals"

alt text

Features

  • Main chip: LM393
  • Working voltage: for DC 5V
  • Single-channel signal output
  • Low-level output signal used for human body touch sensor alarm
  • Adjustable sensitivity
  • Pin Connector to board: 4 Pins

L298N

alt text

Features

  • Motor Driver Type: L298N (dual H-bridge motor driver)
  • Channels: 2 (can control 2 DC motors or 1 stepper motor)
  • Operating Voltage: 5–35 V (motor supply), 5 V (logic supply)
  • Current Capacity: Up to 2 A per channel (with proper heat sinking)
  • Max Power Dissipation: 20W
  • Control Inputs: 4 (IN1, IN2 for Motor A; IN3, IN4 for Motor B)
  • Enable Pins: 2 (ENA for Motor A, ENB for Motor B; can be used for speed control via PWM)
  • Direction Control: IN1/IN2 and IN3/IN4 determine motor direction (forward, reverse, stop)
  • Speed Control: PWM signal applied to ENA/ENB allows for speed regulation

HC05 Bluetooth Module

The HC-05 is a popular, low-cost Bluetooth 2.0+EDR module designed for transparent wireless serial communication, enabling Microcontrollers (like Arduino) to connect with phones, laptops, or other modules

alt text

HC-05 6 Pin Wireless Serial Bluetooth Module is a Bluetooth module for use with any microcontroller. It uses the UART protocol to make it easy to send and receive data wirelessly.

  1. Working current: matching for 30 mA, matching the communication for 8 mA.
  2. Dormancy current: no dormancy.
  3. Used for a GPS navigation system, water, and electricity gas meter reading system.
  4. With the computer and Bluetooth adapter, PDA, seamless connection equipment.
  5. Bluetooth module HC-08 Master and slave Two in one module.
  6. Use the CSR mainstream Bluetooth chip, Bluetooth V2.0 protocol standards.
  7. Potter default rate of 9600, the user can be set up.
  8. Bluetooth protocol: Bluetooth Specification v2.0+EDR
  9. Speed: Asynchronous: 2.1Mbps(Max) / 160 kbps, Synchronous: 1Mbps/1Mbps.
  10. Security: Authentication and encryption.
  11. Profiles: Bluetooth serial port.

ESP32Cam

The ESP32-CAM is a small, low-cost, and powerful development board combining the ESP32 chipset with Wi-Fi/Bluetooth, a camera interface (often OV2640), and a microSD card slot. It is widely used for IoT, video streaming, surveillance, and DIY, featuring 2MP resolution capabilities and 240MHz processors

alt text

Features

  • Model Name - ESP32-CAM-MB
  • RAM Memory Installed Size 520 KB
  • Memory Storage Capacity 4 MB
  • CPU Model Cortex A5

DC Buck Converter

A DC buck converter is a type of power supply that steps down voltage from a higher level to a lower level while maintaining efficient power conversion. It uses a switching regulator to control the flow of energy, making it ideal for applications where power efficiency is crucial, such as in battery-powered devices or when powering components that require lower voltages. alt text

Features

  • Input Voltage Range: ~4V to 15V
  • Output Voltage Range: Adjustable, 1.5 , 1.8 , 2.5 , 3.3 , 5 V

18650 Battery

18650 is a type of rechargeable lithium-ion battery commonly used in various electronic devices, including laptops, flashlights, and electric vehicles. The name "18650" refers to its dimensions: 18mm in diameter and 65mm in length. These batteries are known for their high energy density, long cycle life, and relatively low self-discharge rate.

alt text

Features

  • Nominal Voltage: 3.7 V
  • Capacity: 2500mAh
  • Chemistry: Lithium-ion (Li-ion)

DC Motor

A DC motor is an electric motor that converts direct current electrical energy into mechanical energy. It operates on the principle of electromagnetism, where a current-carrying conductor placed in a magnetic field experiences a force that causes it to rotate. DC motors are widely used in various applications, including robotics, automotive systems, and household appliances, due to their simplicity, reliability, and ease of control.

alt text

Features

  • Voltage: 6V
  • Current: 0.2A
  • Speed: 200 RPM

Software

  1. Platform IO
  2. Android Bluetooth Controller App

Platform IO

alt text

PlatformIO is an open-source ecosystem for IoT development, providing a unified interface for building, testing, and deploying embedded applications across various platforms and frameworks. It supports multiple programming languages, including C/C++, Python, and JavaScript, and integrates with popular IDEs like Visual Studio Code and Atom. PlatformIO offers features such as library management, debugging tools, and continuous integration support, making it a powerful tool for developers working on embedded systems and IoT projects.

Android Bluetooth Controller App

alt text

The Android Bluetooth Controller App is a mobile application designed to facilitate communication between an Android device and Bluetooth-enabled hardware, such as microcontrollers or IoT devices. This app allows users to send commands, receive data, and control connected devices wirelessly via Bluetooth. It typically features a user-friendly interface with buttons, sliders, or other controls to interact with the hardware, making it an essential tool for projects that require remote control or data monitoring through Bluetooth connectivity. The app can be customized to suit specific project needs, allowing developers to create tailored interfaces for their Bluetooth-enabled devices.

Circuit Diagram

alt text

Circuit Diagram

Power Supply Unit

We used a 2 18650 battery pack to power the entire system. The batteries are connected in series to provide a total voltage of 7.4V. This voltage is then regulated down to 5V using a DC buck converter, which is necessary to safely power the Arduino UNO and other components.

Also the 7.4V is directly applied to the L298N motor driver, which can handle a higher voltage for driving the DC motors.

To recharge the batteries, we used a boost converter which converts 5V from the USB power source to 8.4V, allowing us to charge the batteries while they are still connected to the circuit.

Sensors

  1. MQ6 LPG Sensor: The MQ6 Sensor draws around 150mA of current which can not be directly provided by the Arduino UNO. Therefore, we used a buck converter to step down the voltage from the battery to 5V allowing the MQ6 to draw the required amount of current without damging the Aruduino UNO. The output of the MQ6 sensor is an analog voltage that is read by one of the analog input pins on the Arduino UNO, to be more specific MQ6 is connected to A1 pin of the Arduino UNO

  2. MQ7 CO Sensor: The MQ7 Sensor also draws around 150mA of current, so it is powered in the same way as the MQ6 sensor using the buck converter. The output of the MQ7 sensor is also an analog voltage that is read by another analog input pin on the Arduino UNO. The MQ7 Is connected to A2 pin of the Arduino UNO.

  3. DHT11 Temp/Humidity Sensor: The DHT11 sensor is powered directly from the 5V output of the buck converter. The data pin of the DHT11 is connected to a digital input pin on the Arduino UNO, specifically S10 pin, which allows the Arduino to read the temperature and humidity data from the sensor.

  4. Touch Sensor: The touch sensor is also powered from the 5V output of the buck converter. The output pin of the touch sensor is connected to another digital input pin on the Arduino UNO, specifically S11 pin, which allows the Arduino to detect when the sensor is touched.

Motor Driver

The L298N motor driver is powered directly from the 7.4V provided by the battery pack. The control pins of the L298N are connected to digital output pins on the Arduino UNO, allowing the Arduino to control the direction and speed of the DC motors. The motors are connected to the output terminals of the L298N motor driver, which provides the necessary current to drive the motors.

Bluetooth Module

The HC05 Bluetooth module is powered from the 5V output of the buck converter. The TX and RX pins of the HC05 are connected to the RX and TX pins of the Arduino UNO respectively, allowing for serial communication between the Bluetooth module and the Arduino. This setup enables the Arduino to receive commands from a smartphone or other Bluetooth-enabled device to control the robot remotely.

Camera Module

The ESP32-CAM is also powered from the 5V output of the buck converter. The ESP32-CAM does not directly interface with the Arduino UNO . It provides a webinterface for streaming video, which can be accessed through a smartphone or computer connected to the same network. The ESP32-CAM is configured to connect to the Wi-Fi network and stream video to a specific IP address, allowing users to view the camera feed remotely while controlling the robot via Bluetooth.

Hardware

  1. Arduino UNO The Arduino UNO is the main microcontroller board used in this project. It serves as the central processing unit that reads data from the sensors, processes it, and controls the motors and Bluetooth communication. The Arduino UNO is programmed using the Arduino IDE, where we write code to define how the robot should respond to sensor inputs and control the motors accordingly. It is the main orchestrator of the entire system, coordinating the actions of all components based on the programmed logic.

Specifications:

  • Microcontroller: ATmega328P
  • Operating Voltage: 5V
  • Input Voltage (recommended): 7–12V
  • Digital I/O Pins: 14 (6 PWM outputs)
  • Analog Input Pins: 6
  • Flash Memory: 32 KB (ATmega328P) of which 0.5 KB used by bootloader
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • Clock Speed: 16 MHz
  • LED_BUILTIN: Pin 13

The Arduino UNO is programmed using the platform IO Core , which is a cli tool and the generated binary is uploaded to the Arduino through the USB (Mini B) port. The Arduino UNO only has a single core cpu, so all the tasks such as reading sensors, controlling motors and taking reading must be done sequentially.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors