First I needed the robot. I have digged up my 17 years old project and stripped old electronics and added new.
- esp8266 as a brain
- two continuous rotation servos as a drive
- small power bank as a power source
- micro switches in the bumpers to detect colissions
- gimbal controlled by two servos for a camera
For the control I used MQTT protocol. The robot connects to the MQTT server, an application that controls the robot also connects to the MQTT server and the server forwards the messages between them. The bonus is that there are many publicly available MQTT servers online (like test.mosquitto.org) that we can use to control the robot from anywhere in the world. No external IP and port forwarding needed.
The code that runs on the robot is done in Arduino it is very simple and self explanatory. You can find it here: