I am planning to make a wifi hotspot (MiFi?), something similar to what most of the wearables and some drones offer these days - as they have both cellular and wi-fi connectivity on their device, they can allow users to enable hotspot connectivity and laptops and tablets nearby can use that hotspot to surf internet. I would like 4-8 users to be connected to my hotspot and surf web. But, I also want my device to be able to do it's usual IoT stuff and talk to the cloud at the same time. My mobile app can also control the device directly, as it is already connected and using the hot-spot (correct me please if this is not posible)
I am a firmware developer, having basic understanding of HTTP and TCP/IP protocols, I've written my own node.js cloud server, my own phone gap android app, but I don't know much on the network protocol stack level, I have worked mainly on the application level POST and GET requests, etc. I've been able to get the IoT demo run on my ESP, and tweak it to be able to talk to my device using softAP as well as via my cloud.
I read that the new ESP 8266 firmware allows data rate of close to 1Mbps over UART, which is pretty good, and as my project also has a cellular module, it makes sense to allow a hotspot feature in my device as well.
I believe that for what I need to do, I need to forward packets from ESP to the Cellular and vice-versa, use sockets, and NAT has some major role to play in this. I have searched all over internet for links to explain how could I implement a hotspot, but I have been diverted to all kinds of other "Hot" spot links but not the ones which have any kind of technical explanation on how to make one. I have come across the term tethering, thought maybe thats what I want to do, then I came across the term hotspot router, and also wireless access point, I have searched with strings like "Interfacing cellular to wifi", "forwarding packets from cellular to wifi", and hundreds of other keywords and combinations, unfortunately I have still not been able to get a good explanation on how I could make the Cellular module and ESP (or any other wi-fi module) connect over UART (or SDIO or SPI) and act as a hotspot. I'm not even sure what I need to do here - do I need a router software, or a software for doing only the NAT, or will only a web-server suffice? I'm totally clueless here and have failed to find what I have to do.
I'm looking for links/pointers on what exactly are the components of a hot spot, maybe documents/tutorials/source codes, and also if someone knows of some ready-to-use hotspot modules with interfaces to allow IoT for embedded devices (I haven't found any of these either). And if there are more suitable WiFi modules better for hotspot kind of application instead of ESP, whatever you could to help me, I would really appreciate inputs from the experts over here.
Thanks a lot in advance.