This is a project to build a software that triggers GoPro features from another machine using a Raspberry Pi as the controller in the middle. Since the GoPro API is only available via Wifi the Raspberry Pi needs to handle Ethernet and Wifi at the same time (Check out Development Environment).
The first goal is to take photos from the GoPro triggered by a computer in the same network.
Second goal would be to open up ports to make it accessible from the internet, so that you can use your phone or another computer that aren't in the same network.
Hardware setup:
- Router (Fritz!Box 7430)
- Raspberry Pi 3 B
- GoPro Hero 4
The Router provides the connection to the local network via Ethernet. The GoPro is hosting a Wifi and runs a server to provide actions and data. The Raspberry Pi connects to the Wifi of the GoPro and to the Ethernet of the Router. The Raspberry Pi also hosts a web server to expose the API from the GoPro
The difficulties are now to use Ethernet and Wifi at the same time for different purposes.
- A random computer A in the network requests a photo using the API running on the Raspberry Pi (Raspberry Pi is connected over Ethernet to the rest of the network).
- The Raspberry Pi receives the request and sends another request to the GoPro API, running on the GoPro itself (Raspberry Pi uses Wifi to connect to the GoPro).
- The GoPro receives the request from the Raspberry Pi, captures a picture and returns it in response.
- The Raspberry Pi receives the response and responds to the initial request of the computer A with the picture of the GoPro.