Let's go over the scenario:
1. User installs an Android app on his phone. From Android, user register an account and login.
2. ESP, on very first boot, there is no WiFi SSID nor password => ESP is unconnected & it starts with the ESP WiFi AP.
3. Inside the app, user searches unconnected ESP and send ssid/password to ESP to connect to the local WiFi. At the same time, app register the ESP with the cloud server (not necessary to be a Raspberry Pi. The server can be a NodeJS app running on AWS EC2 or Google Compute).
4. On other tab in the app, user will see a list of connected ESP on his account.
5. User can tap on an ESP to control it, for example: turn on/off a GPIO pin or view status
Notice that once connected, esp keeps a connection to the backend so no need any configuration on the router. User can perform step #4 and #5 from any where on the world as long as he has Internet access.
My proposal include:
- Develop the firmware for the ESP (with a demo ON/OFF pin only)
- Develop the NodeJS server for the backend
- Develop a POC Android app