Roomba
JavaSCript controlled Roomba
Install / Use
/learn @wesbos/RoombaREADME
JavaScript Roomba
A web-based controller for Roomba robot vacuums using an ESP32 microcontroller. This project combines hardware and software to create a custom interface for controlling your Roomba.
Project Structure
/src- ESP32 firmware source code/controller- React-based web interface
Features
- Web-based control interface for Roomba
- ESP32 as the bridge between web interface and Roomba
- Real-time control and monitoring
- Custom movement patterns and commands
Hardware Requirements
- ESP32 development board
- Roomba with serial interface
- Appropriate cables to connect ESP32 to Roomba
Software Requirements
- PlatformIO for ESP32 firmware development
- Node.js for web interface development - we use Vite to dev on the ESP32 locally
Setup
- Clone this repository
- Install PlatformIO (for ESP32 firmware)
- Install Node.js dependencies for the web interface
- Upload firmware to ESP32
- Connect ESP32 to your Roomba
- Access the web interface through your browser
Development
ESP32 Firmware
# Build firmware
pio run
# Upload to ESP32
pio run --target upload
Web Interface
# Install dependencies
cd controller
npm install
# Start development server
npm run dev
When you are ready to deploy the app, you can compile it into a single file, and then convert to byte code with ./compile_page_bytes.sh
Note - i've found that when I change the app - I need to run "clean" with Platform.io - otherwise I get a content length mismatch - likely doesn't re-upload the new binary for the web UI.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Acknowledgments
Initial code for the ESP32 wireless serial bridge comes from https://github.com/TAR-ALEX/ESP32-Wireless-Serial-Web-Interface
