Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/saptajitbanerjee/wifi-controlled-unmanned-ground-vehicle-with-real-time-fire-detection

This project embodies an advanced IoT robotics system using Raspberry Pi. It includes remote control, real-time sensor data, and innovative fire detection. Leveraging AWS IoT Core and MQTT, it seamlessly integrates hardware and software for remote robotic car control
https://github.com/saptajitbanerjee/wifi-controlled-unmanned-ground-vehicle-with-real-time-fire-detection

aws aws-iot-core aws-iot-device-sdk-python aws-iot-python flask flask-api flask-application html-css-javascript internet-of-things iot iot-application javascript python-3 remotely-operated-vehicle robotics unmanned-ground-vehicle web-application web-of-things yolov5

Last synced: 1 day ago
JSON representation

This project embodies an advanced IoT robotics system using Raspberry Pi. It includes remote control, real-time sensor data, and innovative fire detection. Leveraging AWS IoT Core and MQTT, it seamlessly integrates hardware and software for remote robotic car control

Awesome Lists containing this project

README

        

# Internet Controlled Unmanned Ground Vehicle with Real Time Fire Detection

## Table of Contents
- [Instructions](#instructions)
- [Introduction](#introduction)
- [Project Overview](#project-overview)
- [Unmanned Ground Vehicle](#ugv)
- [Web Interface](#web-interface)
- [Block Diagram](#block-diagram)
- [System Architecture](#system-architecture)
- [Hardware Components](#hardware-components)
- [Software Tools](#software-tools)
- [Raspberry Pi Setup](#raspberry-pi-setup)
- [Robotic Car Assembly](#robotic-car-assembly)
- [GPIO Pin Connections](#gpio-pin-connections)
- [Live Video Feed Streaming](#live-video-feed-streaming)
- [Environmental Monitoring](#environmental-monitoring)
- [AWS IoT Core Integration](#aws-iot-core-integration)
- [MQTT Communication](#mqtt-communication)
- [Web Application Development](#web-application-development)
- [PyTorch Integration](#pytorch-integration)
- [Conclusion](#conclusion)

## Instructions

1. **Install YOLOv5 on your device:**

```bash
# Example command for installation
pip install yolov5
```

2. **Clone this repository and place it in the YOLOv5 folder:**

```bash
# Example commands for cloning the repository
git clone https://github.com/your-username/WiFi-Controlled-Unmanned-Ground-Vehicle-with-Real-Time-Fire-Detection.git
mv WiFi-Controlled-Unmanned-Ground-Vehicle-with-Real-Time-Fire-Detection yolov5/
cd yolov5
```

3. **To run the Flask Application, navigate to the project directory and execute:**

```bash
cd Codes
python main.py
```

4. **Additionally, on the Raspberry Pi, execute the following files in separate terminals:**

- To run AWS BME280 integration:

```bash
python aws_bme280.py
```

- To run the AWS IoT Remote Control:

```bash
python remote_control_aws.py
```

- To stream live video feed over the internet using Remote.it:

```bash
python webstream_cv.py
```

5. **Ensure that Remote.it is properly configured for live video streaming.**

6. **Setup the IoT Architecture in AWS:**
- The user needs to set up the IoT architecture in AWS by following the provided documentation.

Ensure that you have YOLOv5 installed and the required dependencies for the Flask application. Additionally, make sure the necessary configurations are done for AWS IoT and Remote.it on the Raspberry Pi.

## Introduction

The remotely operated unmanned ground vehicle is a complex system that combines hardware and software to enable remote control and monitoring. It utilizes a Raspberry Pi as its core controller and leverages AWS cloud services for data transmission and processing. The project integrates sensors for environmental data collection, real-time video streaming for visual feedback, and machine learning for fire detection. Additionally, it provides multiple control interfaces, including on-screen, keyboard, and voice commands.

## Project Overview

The project aims to create a versatile remotely operated unmanned ground vehicle system that integrates various technologies such as IoT, machine learning, and real-time data transmission. This system is designed to be highly adaptable and capable of performing tasks such as remote surveillance, environmental monitoring, and rapid response to critical events. It brings together a diverse set of components and software tools to achieve its objectives.

## Unmanned Ground Vehicle

![UGV](https://github.com/saptajitbanerjee/WiFi-Controlled-Unmanned-Ground-Vehicle-with-Real-Time-Fire-Detection/blob/main/top_view.png)
![UGV](https://github.com/saptajitbanerjee/WiFi-Controlled-Unmanned-Ground-Vehicle-with-Real-Time-Fire-Detection/blob/main/front_view.png)
![UGV](https://github.com/saptajitbanerjee/WiFi-Controlled-Unmanned-Ground-Vehicle-with-Real-Time-Fire-Detection/blob/main/side_view.png)

## Web Interface

![Web Interface](https://github.com/saptajitbanerjee/WiFi-Controlled-Unmanned-Ground-Vehicle-with-Real-Time-Fire-Detection/blob/main/web_page.png)

## Block Diagram
![Block Diagram](https://github.com/saptajitbanerjee/WiFi-Controlled-Unmanned-Ground-Vehicle-with-Real-Time-Fire-Detection/blob/main/block_diagram.png)

## System Architecture
![System Architecture Diagram](https://github.com/saptajitbanerjee/WiFi-Controlled-Unmanned-Ground-Vehicle-with-Real-Time-Fire-Detection/blob/main/system_architecture.png)

### Hardware Components
- **Raspberry Pi 4:** The central controller of the robotic car.
- **Logitech C270 Webcam:** Captures live video feed.
- **4WD Four Wheel Drive Kit:** The chassis for the robotic car.
- **Dual Shaft 200 RPM BO Gear Motor:** Drives the wheels.
- **L298N Motor Driver Board:** Controls motor operations.
- **BME280 Sensor Module:** Monitors environmental data.
- **10000mAh 18W Power Bank:** Powers the system.
- **9V Alkaline Battery:** Backup power source.

### Software Tools
- **Raspberry Pi Imager:** Used for OS installation.
- **PuTTy:** Establishes remote connections.
- **VNC Viewer:** Provides a graphical interface.

### Raspberry Pi Setup
- Installation of Raspbian OS.
- OS upgrade and update.
- Installation of required Python packages.
- Integration of Python libraries and Remote.It for remote access.

### Robotic Car Assembly
- Chassis assembly and component integration.
- Wiring connections and component mounting.

### GPIO Pin Connections
- Establishment of GPIO Pin connections.
- Utilization of Thonny Python Editor IDE for Python code development and testing.

### Live Video Feed Streaming
- Development of code for live video feed streaming.
- Creation of an HTTP Server on the Raspberry Pi.
- Secure transmission of live video feed via Remote.It.

### Environmental Monitoring
- Integration of BME280 sensor with Raspberry Pi.
- I2C address identification for the sensor.
- Development of code for sensor data acquisition.
- Setup of a local WiFi access point and connection to AWS IoT Core using MQTT.

### AWS IoT Core Integration
- Registration of Raspberry Pi as a single "Thing."
- Generation of device and root CA certificates for MQTT authentication.

### MQTT Communication
- Integration of Paho MQTT library.
- Development of code for publishing sensor data to AWS IoT Core.
- Secure, lightweight, and reliable data transmission over MQTT.

### Web Application Development
- Utilization of JavaScript, jQuery, Node.js, HTML, and CSS.
- WebSocket API integration for real-time data reception.
- Browserify for cross-browser compatibility.
- Flask application framework for backend.
- Integration of a machine learning model for fire detection using Torch.
- On-screen, keyboard, and voice controls for the robotic car.

### PyTorch Integration
- Loading of a fire detection Convolutional Neural Networks (CNN) model based on YOLOv5.

## Conclusion

In conclusion, this project has successfully achieved its objectives by integrating various technologies to create a highly versatile robotic car system. The project's uniqueness lies in its ability to seamlessly combine elements of IoT, machine learning, and real-time data transmission to build a system that is not only novel but also holds great promise for practical applications.

One of the project's key innovations is the use of MQTT as the primary communication protocol for transmitting sensor data and remote control commands. This choice, over traditional HTTP or other application layer protocols, offers several advantages. MQTT's lightweight nature results in minimal overhead and efficient data transmission, making it well-suited for resource-constrained devices like the Raspberry Pi. The low latency and bidirectional communication capabilities of MQTT ensure real-time interaction between the user and the robotic car, enhancing the user experience.

Furthermore, the incorporation of real-time fire detection using YoloV5 and the live video feed adds a unique dimension to the project. This feature not only makes the robotic car suitable for remote surveillance and safety applications but also showcases its potential for deployment in scenarios where rapid response to critical events is required.

In summary, this project not only delivers a highly functional robotic car system but also serves as a testament to innovation at the intersection of IoT, robotics, and machine learning. Its emphasis on efficient data transmission through MQTT, coupled with its successful integration of diverse technologies, positions it as a pioneering solution with broad applicability.