The following examples show how to connect GUI-O application with ESP32 in various communication modes. Tutorial for automatic device pairing also shows how to include SSL/TLS for secure MQTT (IoT) connection.

ESP32 & Arduino & GUI-O basic examples

The following examples show basic interaction between GUI-O application and ESP32 module in various communication modes.

ESP32 Bluetooth

ESP32 Bluetooth LE

ESP32 MQTT (supports SSL/TLS)


NOTE: In order to connect ESP32 to your Android device, a simple adapter cable is needed (as shown in the image). Also note that not all Android devices support USB OTG functionality.

USB OTG adapter connected to ESP32

ESP32 Ethernet

ESP32 & Arduino & GUI-O automatic pairing (supports SSL/TLS)

The following example shows how to automatically pair GUI-O application with ESP32 in MQTT (IoT) mode. Although the example uses ESP32-WROOM-32 board, it should be compatible with any other ESP32 board.

GUI-O application always uses SSL/TLS for secure (encrypted) communication. In order to also establish a secure connection from the ESP32 side, use To establish an unencrypted connection, use instead (see "Prerequisites" section below).

The following step-by-step instructions are also shown in the video tutorials below.


Step 1: Add ESP32 board support

Step 2: Include necessary libraries

Step 3: Upload the code

Check out the video tutorial below!

Video tutorial of Step 1 - 3

Step 4: Pair GUI-O application with ESP32 board

The pairing procedure is fully guided within GUI-O application. The important parts are described below.

Check out the video tutorial below!

Video tutorial of Step 4

Important notes

ESP32 & Arduino & GUI-O IoT push notifications

NOTE: This is not a standard way of implementing push notifications! It only works in IoT mode and does not deliver messages if the mobile device is offline, unless MQTT broker supports this and messages are published with quality of service level 1 or 2. If you require a reliable delivery in any communication mode, see push notifications.

IoT push notifications support can simply be added to any of the examples above. IoT push notifications are used to notify the user about some urgent event. For more information regarding push notifications in GUI-O application, see IoT push notifications section in the manual. Also note that the IoT push notifications can be used even if the GUI-O application is not running. 

Note that push notifications feature works in the same way as regular IoT messages - if you migrate to your own MQTT broker, no additional setup is required.

Before continuing, it is recommended to try the ESP32 MQTT (IoT) example, since it is used as a reference for this example. Then follow the steps below:

Important notes

App settings

Application settings

App settings -> Other permissions

Application settings -> Other permissions

App settings -> Battery saver

Application settings -> Battery saver

ESP32 & Arduino & GUI-O live image stream (using OV2640 camera)

GUI-O application supports streaming arbitrary grayscale (1 byte per pixel), color (3 bytes per pixel) and jpeg (compressed) images in IoT mode. The images are packed in a binary format in order to optimize the data transmission. 

The images can originate from various sources (e.g., live camera image, SD card image, etc.), but before sending the image, it must be formatted in such a way that it can be correctly parsed by the GUI-O application. For more information, see the "Image stream" widget description in the manual and check out the example below using ESP32-S with OV2640 camera.

Before continuing, it is recommended to try the ESP32 MQTT (IoT) example, since it is used as a reference for this example (note that the same Out and In topics can also be used here). Then follow the steps below:

Quick test of GUI-O live image stream

Proof of concept of live image stream using a simple Python script. Download the script and try it yourself. Follow the steps below:

Connect . Create . Control

Connect . Create . Control

YouTube channel