I've had an idea for an IoT device (maybe it will see more than a prototype, maybe not) and I was wondering how exactly a "real" IoT device (no Blynk, like a full on product) handles connections. For reference, I'm talking about a device with a few sensors that would send a notification to a smartphone when the sensors change, and allow remote viewing of the sensors. I know there's a bunch of questions here, I'm pretty new to anything besides basic networking and Arduino
So when the device sends data, I presume it goes to a server. What protocol would that server use? MQTT?
Would it be a good idea to forgo the whole server part and send the data straight from the device to the smartphone app?
What hardware would be good to use? I'm currently prototyping on an ESP8266 dev board, but I'm not sure if it's right to be used in a commercial application.
How bad of an idea is this implementation?
- User "registers" device using web server. Server generates a random number, and user uses this number to name the MQTT Topic that they will later subscribe to (this keeps everyone's data apart from each other, and username/password authentication and TLS will be used as well.
- Device uses this "magic number" mentioned above to create a new MQTT topic for itself.
- Companion smartphone app is basically just a fancy MQTT client that subscribes to the aforementioned MQTT topic and just displays data. (also has username/password authentication and TLS)
It sounds good in theory, but I'm sure there would be an issue somewhere in this.
Thank you all for your help.