Demo project for Microsoft Azure, support esp32 & esp8266.
Switch branches/tags
Nothing to show
Clone or download
ustccw Merge branch 'feature/improve_config_and_docs_and_loop_message' into …

feat: improve config and docs and loop message

See merge request esp-components/esp-azure!3

I have tested this change in such and such a way and it works as expected.
Latest commit a0102c8 Aug 16, 2018

A MQTT Demo that Connects ESP device to Azure Cloud

Table of Contents


Espressif offers a wide range of fully-certified Wi-Fi & BT modules powered by our own advanced SoCs. For more details, see Espressif Modules.

Azure cloud is one of the most wonderful clouds that collects data from lots of devices or pushes data to IoT devices. For more details, see Azure IoT Hub.

This demo demonstrates how to firstly connect your device (ESP devices or IoT devices with ESP devices inside) to Azure, using MQTT protocol, then send data to Azure as well as receive message from Azure.

Main workflow:



1. Hardware

  • An ubuntu environment should be set up to build your demo;
  • Any ESP device can be used to run your demo.

2. Azure IoT Hub;SharedAccessKeyName=iothubowner;SharedAccessKey=zMeLQ0JTlZXVcHBVOwRFVmlFtcCz+CtbDpUPBWexbIY=
  • For step-by-step instructions, please click here.

3. iothub-explorer

  • Install Node.js;
  • Install iothub-explorer with command line npm install -g iothub-explorer.
    • If failed, please check here for more information.
    • If succeeded, please check the version information with the command lines below:
$ node -v
$ iothub-explorer -V

After that, you should be able to use iothub-explorer to manage your iot-device.

4. Device Connection String

  • login with the iothub connection string (primary key) you got earlier with command lines;
  • create your device, and get a device connection string. An example can be seen:

For detailed instruction, please click Here.

5. SDK

  • AZURE-SDK can be implemented to connect your ESP devices to Azure, using MQTT protocol.
  • Espressif SDK

6. Compiler

  • For ESP32 platform: Here
  • For ESP8266 platform: Here

Configuring and Building

1. Cloning Git submodules

This repo uses Git Submodules for its dependancies. To successfully clone these other repositories, after cloning this repo, use the following command in the root:

git submodule update --init --recursive

2. Configuring your Azure IOT Hub Device Connection String, Wi-Fi and serial port

  • Go to make menuconfig -> Example configuration to configure your Azure IOT Hub Device Connection String, Wi-Fi SSID and Password;
  • Go to make menuconfig -> Serial flasher config to configure you serial port.

3. Building your demo and flash to ESP device with $make flash.

If failed, please:

  • make sure your ESP device had connected to PC with serial port;
  • make sure you have selected the corrected serial port;
    • command > sudo usermod -a -G dialout $USER can also be used.

To monitor the device output while running, run

make monitor

To exit the monitor, hit Control-]

You can also run the build and monitor in onte step and run with multiple compiler threads:

make -j4 flash monitor

This will build with four concurrent build processes to take advantage of more cores on your workstation.

Checking Result

Please check results on both the iothub and device side:

  • iothub: log into iothub-explorer, and monitor events with command iothub-explorer monitor-events yourdevice --login 'yourprimarykey'
  • ESP device: monitor events with command make monitor

ESP device would send data to the Azure cloud, and then you would be able to receive data at the iothub side.


  1. Some common problems can be fixed by disabling the firewall.

  2. You can try with the followings, if your build fails:

    • git submodule init
    • git submodule update
    • export your compiler path
    • export your IDF path
    • get start from Here
  3. Make sure the device connection string you are using, which you get from Azure IoT Hub, is correct.