Demo Video
Project June
I planned to build Project June in two weeks, but it took me three. It was definitely rushed, and there are a lot of things I wish I had done differently. Even so, it is still one of the most ambitious projects I have worked on.

Onboard Systems

Ultrasonic Distance Sensor

Laser System

Live GPS

10 Axis IMU

Light Sensor

DHT11 Temp & Humidity

Technical Architecture
This is an overview of how each system functions and how they all interact with each other.

Live Stream System
This diagram shows how the whole live streaming system works. It is 3 different WebRTC streams that send the live video to the client.


Control & Telemetry System
The control and telemetry system feeds sensor data to the client using an MQTT topic that the client is subscribed to. Another MQTT topic is used by the client to send movement and command messages back to the ESP32.

Signalling
Because of an issue that has not yet been resolved, all sensor data could not be sent together in a single MQTT transmission. Instead, the data was divided into three separate packets and transmitted individually at approximately 10 Hz.

Software
Here is the simplified flow chart of how the code works.


Software Design (Figma)
Spline 3D
I used Spline 3D for the 3D elements in the UI. When you push the controller forward, the model moves into the forward view, and if you move it back, it goes into the reverse view.

Driving Project June
Driving Project June was an unforgettable experience. The roughly one-second delay between controller input and movement on the live feed, combined with the instability of the stream, made it challenging at times. Thinking about how my controller input had to travel through so many layers of systems, while the video feed was being sent from over 8 kilometres away, still blows my mind.




