I’ve been trying to get my head around the potential of using the Azure IoT hub in complement to the Imp architecture in our product and am wondering what the true differentiating benefit would be that justifies the extra cost. ?
My setup is quite particular, but not unusual:
- host uC (Cortex M4F) on a custom HW board running the bulk of the real time processing going on.
- Imp (originally IMP002, now Imp004m and potentially moving into ImpC001) connected to the host via serial bus, optimised for speed and reliability with HW handshaking.
- squirrel code, that basically maintains a synced copy of the host configuration in the device and agent which is also able to receive regular real time data reports (sensors) from the host and keep them .
- squirrel code that is able to receive commands from external apps and pass them on to the host for remote control (RPC approach)
- Elaborate Agent custom REST API using Rocky lib
- Android & iOS app that is using the REST API to interact
- back-end database storing device list, connection params and config data as well as real time data logs.
- a few hundred to maybe one day a few thousand of end user devices, not millions
I’ve been reading into Azure IoT hub with the Device Twin capability and I’m wondering what a setup using this frame will bring more in functionality/security that justifies the additional cost of all the Azure subscriptions and usage charges.
What I’ve listed so far (besides the obvious one of not having to run/lease my own servers):
- potential to have a continuous bidirectional socket-like connection between host/imp and the external Apps/Web Apps using MQTT on Imp side and Signal R on Mobile App/Web App side versus polling mode HTTP REST. Creating a REST API on the Azure IoT Hub side fed by the MQTT connection seems like overlapping functionality with the Imp Agent REST API capability and not necessarily easier to implement. Main advantage would be lower complexity in Squirrel code not to have to maintain the host configuration mirror in Device and Agent and a lower complexity for the App as no ‘polling management’ needs to be performed (I’m not using long polling yet).
- easier storage facilities for config & historical data
- (maybe) some advanced analystics on the historical data
All insights or experiences are more than welcome as for now, I don’t really see the big benefit but at the same time I see EImp pushing this quite strong (with the addition of MQTT, the creation of the Azure IoT Hub Lib and Hugo appearing on Channel9) so I wonder what I’m missing …