Overview
This was my first electronics project: an RC car I could control over the internet from anywhere in the world. I built a Node.js/express.js web server on a Raspberry Pi 3 to drive the motors and stream live camera video, then tunneled it to the public internet with ngrok so anyone could log in and drive it with WASD controls - no port forwarding needed. I proved it worked by having a friend in the UK drive it live from about 3,000 miles away.
Technical materials
What I learned
- Built a Node.js/express.js web server on a Raspberry Pi 3 to control an RC car's drive motors and stream live camera video to a browser client
- Used ngrok to tunnel the Pi's local web server to the public internet, enabling WASD keyboard control and live video from any network with no port forwarding or static IP required
- Implemented tank-turn drive control (independent left/right continuous-rotation servo control) and data handling between the server back-end and browser front-end
- Validated the system with real-world, cross-continent testing - a friend in the UK controlled the car live from roughly 3,000 miles away