Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/roeytamano/robocave

RoboCave is a project that involves a robotic vehicle equipped with sensors to measure air quality, distance, and other environmental parameters. The vehicle can be controlled remotely via a web interface, allowing it to move forward, backward, turn, and stop.
https://github.com/roeytamano/robocave

bme280 dc-motor esp32 information-gathering micropython python robot sensors thonny ultrasonic-sensor website wi-fi

Last synced: 16 days ago
JSON representation

RoboCave is a project that involves a robotic vehicle equipped with sensors to measure air quality, distance, and other environmental parameters. The vehicle can be controlled remotely via a web interface, allowing it to move forward, backward, turn, and stop.

Awesome Lists containing this project

README

        

# ๐Ÿค– RoboCave Project

## Overview
The RoboCave project is designed to create a robotic vehicle capable of gathering and transmitting information about environmental conditions ๐ŸŒ, including air quality and distance measurements. The robot can be controlled via a web interface ๐Ÿ–ฅ๏ธ, providing real-time data and control options.

## Hardware Components
- **Microcontroller**: ESP32 or similar microcontroller.
- **Sensors**:
- **BME280**: Measures temperature ๐ŸŒก๏ธ, humidity ๐Ÿ’ง, and atmospheric pressure ๐ŸŒฌ๏ธ.
- **Gas Sensors**:
- LPG sensor (analog output).
- CO sensor (analog output).
- Smoke sensor (analog output).
- **Ultrasonic Distance Sensor**: Used to measure distance ๐Ÿ“.
- **DC Motors**: Two DC motors for movement control ๐ŸŽ๏ธ.
- **Motor Driver**: H-Bridge motor driver for controlling the direction and speed of the motors.
- **PWM Pins**: For controlling motor speed via Pulse Width Modulation.
- **Connection Pins**: GPIO pins for connecting sensors and motors.

### โ—The picture doesn't show what the robot looks like now, it's an old picture from the start of the project when it didn't have all the sensors and the design is different without a cover for the robot.
![image](https://github.com/user-attachments/assets/85004705-0c19-4549-bb4c-184152e27d57)

## Software Components
- **MicroPython**: The firmware running on the microcontroller.
- **Libraries**:
- `usocket`: For socket communication ๐Ÿ”Œ.
- `network`: For connecting to Wi-Fi ๐Ÿ“ถ.
- `machine`: For controlling hardware components โš™๏ธ.
- `BME280`: For interfacing with the BME280 sensor.
- `json`: For handling JSON data.

## Features
- **Web Interface**:
- Displays real-time sensor data (temperature, humidity, pressure, gas concentrations, and distance).
- Provides control buttons for motor actions (forward, backward, left, right, stop) ๐Ÿšฆ.

![image](https://github.com/user-attachments/assets/3a755f92-2872-4b72-9903-8553e4b103b5)

- **Data Fetching**: JavaScript is used to periodically fetch sensor data from the server and update the webpage without refreshing ๐Ÿ”„.
- **Distance Measurement**: The robot can measure the distance to obstacles using an ultrasonic sensor ๐Ÿ“.

## Usage
1. **Setup**: Connect the hardware components as specified in the circuit diagram ๐Ÿ”Œ.
2. **Code Deployment**: Upload the provided MicroPython script to the microcontroller ๐Ÿ“ค.
3. **Wi-Fi Configuration**: Update the SSID and password in the code for your Wi-Fi network ๐Ÿ”‘.
4. **Accessing the Web Interface**:
- Once connected to Wi-Fi, open a web browser and navigate to the microcontroller's IP address to access the control interface ๐ŸŒ.
5. **Controlling the Robot**: Use the buttons on the web interface to control the robot's movement and monitor environmental conditions ๐ŸŽฎ.

## Getting Started
1. Clone this repository or download the code files ๐Ÿ“ฅ.
2. Download Thoney micropython
3. Flash the MicroPython firmware onto your ESP32 ๐Ÿ’ป.
4. Install the necessary libraries (if not included in the firmware).
5. Connect your ESP32 to your computer and upload the script โฌ†๏ธ.
6. Open the web interface and begin monitoring and controlling the RoboCave ๐Ÿš€.

## Conclusion
The RoboCave project combines hardware and software to create a functional robot capable of navigating and monitoring environmental conditions ๐Ÿ›ฐ๏ธ. This project serves as a foundation for further enhancements, such as adding more sensors, improving user interface design, and enhancing the robot's navigation capabilities.