Please enable JavaScript to view this site.

Waijung 2 User Guide

How this block appears in a Simulink model?

ble_block_1

What can be configured?

SPP-BLE Setup

ble_block_2

 

Configuration Parameter

Selectable Option/Value

Description

Choose Device Type

Server/ Client

Selects the operation of the BLE setup block.

SSID

 

Enter your preferred SSID

SPP-BLE Tx

ble_block_3

Configuration Parameter

Selectable Option/Value

Description

Ascii format

 

Scanf format specifier, start with %. Below is supported by the block.

%u : Output will be the type of uint8

%d: Output will be the type of int32

 

Tx Type

On Input change/ Consistent

On Input change: The Tx block will send data only if the input value had changed since the previous transmission of data.

 

Consistent: The Tx block will continuously send data at the base sample time of the model.

SPP-BLE Rx

ble_block_4        

Configuration Parameter

Selectable Option/Value

Description

Ascii format

 

Scanf format specifier, start with %. Below is supported by the block.

%u : Input will be the type of uint8

%d: Input will be the type of int32

When to use this block?

1.SPP-BLE Setup - The block must be placed into a Simulink model to enable/ configure BLE Server/ Client to send and receive data from an external device using the BLE-SPP protocol.

2.SPP-BLE Tx - Use this block to transmit data via BLE-SPP protocol.

3.SPP-BLE Rx - Use this block to receive data via BLE-SPP protocol.

How does these blocks work?

The following overview describes how to establish communication between two ESP32 devices and a mobile BLE scanner application.

SPP-BLE Setup

Set up the desired SSID for the SPP-BLE Server/ Client.

SPP-BLE Tx

The block will transmit data to the client, depending on the configurations selected by the user

SPP-BLE Rx

The block will receive data from the client and process the data packet depending on the configurations selected by the user.

Demo 01: SPP-BLE connection between Server and BLE Scanner Application

 

Demo File: esp32_BLE_Server_Demo.slx

 

Description

ble_block_server

For this demo, please use the "esp32_BLE_Server_Demo.slx" model.

This demo shows how to establish communication between an ESP32 and a mobile BLE scanner application. For this example the "nRF Connect for Mobile" by Nordic Semiconductor ASA mobile application have been chosen. The user can send data in UTF8 format by using the mobile app to switch on/off LED attached to the ESP32 unit. The Rx block in the model is configured to listen to data sent by the user in the format of "LED=%u".

 

Note: The "READY" output of the Rx block will be set to '1' only if the client sends correct prefix. For a wrong prefix, the "READY" will be set to '0'. For example, in this case the Rx block expects a prefix of "LED". If the user sends a command which is mismatching to prefixes defined in the model, no subsystem will trigger. (Ex: Value=1, Val=1, Val1=1, etc).

 

Attached to the Rx block is the subsystem to light up LED. Given below is the subsystem:

 

ble_block_server_subsystem

Consider the above subsystem attached to Rx block, listening for "LED=%u" events. In this subsystem, the output value from Rx block is taken in, and passed to Digital Out block where GPIO2 is selected. The Built-In LED (Assuming it is GPIO2 in your ESP32) will light up for any value except 0. The Tx block will take in the output value from the Rx block and send data to client as 'LED=%u".

 

Mobile Application setup

1.From the play store (for Android) or the App store (for ios), download "nRF Connect for Mobile" by Nordic Semiconductor ASA.

2.Once downloaded, please enable blue-tooth in your phone.

3.Once your ESP32 has the Simulink model uploaded, begin scanning for BLE devices from the app.

4.Find your BLE Server from the list and click on "Connect".

ble_block_nordic_1

 

 

 

5.This will navigate you to the below window. From the tabs shown above, select "Client".

6.In the "Client" tab, you can see the attributes related to the BLE server. The required service for the example is UUID: ABF3

7.Now you are ready to send data to server. To send data, please click on the "Up-Arrow" key in the Write service attribute. Type in your required data and select "UTF8" before clicking on the "Write" button.

ble_block_nordic_3

 

Hardware setup

1. ESP32 module configured as Server.

2. Mobile phone.

3. Host PC.

 

What should be happening?

There will be LED switch on/off event occurring when user sends data in the correct format. The events are listed below:

1.When the user sends "LED=1" the GPIO2 will be HIGH.

2.When the user sends "LED=0" the GPIO2 will be LOW.

 

Demo 02: SPP-BLE connection between two ESP32 devices

 

Demo File: esp32_BLE_Client_Demo.slx

Description

For this demo, please use the already configured ESP32 device from the Demo 01 as the Server. For the client, please use the "esp32_BLE_Client_Demo.slx" model. Use a separate ESP32 device to build the model. Given below is the description for the client model. The sample time of the model is governed by the pulse generator which have a sample time of 1 second. Therefore every 1 second, the Tx block will be triggered to send data to Server. A serial statement will be printed out when sending data.

ble_block_client

 

 

 

When data is received by the Client through the Rx block, the below subsystem will be triggered. It will set the GPIO pin to the received value and print out a serial statement containing information about the received data.

ble_block_client_subsystem

Hardware setup

1. ESP32 module configured as Server.

2. ESP32 module configured as the Client.

3. Host PC.

 

What should be happening?

1. Once proper communication connection is built between the Server and Client, the LED attached to the GPIO2 pin of both the Server and Client ESP devices will begin to toggle on and off.

2. When the LED of the Server is at the "ON" state, the LED of the Client will be at "OFF" state, and vice-versa.

3. The Serial monitor attached to the Client will display the occuring events as shown below:

ble_block_client_serial

Copyright 2022 Aimagin Co.,Ltd. Rev.682