MQTT Client on nRF52 device + Wifi module

In a current project we have a nRF52 Bluetooth application where the Central communicates directly with a Peripheral (also nRF52). The nRF5 SKD V14.0.0 or newer is used for this.

The application is now extended with a cloud connection (Azure IoT). To achieve this, a Wifi module is to be used with the Bluetooth Central, which can be controlled with AT commands.

It is a standard Wifi module to be used which has the TCP/IP stack and encryption already included. The MQTT application layer is to be implemented on the nRF52 (host controller), which then sends the commands to the Wifi module via UART interface (AT commands).

There are, in my view, the following approaches:

- use the MQTT libraries from Nordic and adapt the transport layer for AT commands over UART

- Paho MQTT

- Azure IoT SDK C client

- others ?

What is the best or most efficient apporach to it? E.g. if I look on the requirements for Azure IoT SDK Client they are too high for the nRF52.

Are there any examples for an MQTT application that provides communication to a external module (Wifi, GPRS...) through an interface (UART, SPI...)?