WiFi BLE click is a Click board™ which provides WiFi and BT/BLE connectivity for any embedded application. It features the ESP32-WROOM-32, an integrated wireless connectivity solution. The ESP32-WROOM-32 module itself is based on the ESP32-D0WDQ6 chip, a powerful 32-bit SOIC that runs RTOS featuring LwIP and TLS 1.2 with hardware acceleration. Armed with such a powerful processor, the ESP32-WROOM-32 can achieve data rates of up to 150 Mbps. The ESP32-WROOM-32 can achieve up to 20 dBm of TX power, ensuring a reliable connection and good signal coverage. It offers an UART communication interface allowing it to be operated by using simple AT commands.
WiFi BLE click is supported by a mikroSDK compliant library, which includes functions that simplify software development. This Click board™ comes as a fully tested product, ready to be used on a system equipped with the mikroBUS™ socket.
Over time, ESP WiFi modules became a synonym for IoT WiFi applications. The ESP32-WROOM-32 module is built on the success of its predecessors, namely ESP8266, bringing more processing power (up to 240MHz), more peripherals, and lowered power consumption (down to 5 µA in Deep-Sleep mode). The ESP32-WROOM-32 combines both WiFi, and BT/BLE connectivity options, allowing both long and short-range wireless connectivity, depending on specific requirements. Reliable and easy to use, WiFi BLE click is a perfect solution for development of various IoT applications, smart home applications, WiFi enabled toys, advanced robotics, and other similar applications.
How Does It Work?
WiFi BLE click is equipped with the ESP32-WROOM-32, a generic WiFi and BT/BLE module produced by Espressif Systems, which is based on the ESP32-D0WDQ6 chip, a powerful 32-bit wireless SOIC, running RTOS. It is operated by a set of AT commands, over the UART interface, which makes the WiFi BLE click very easy to use. By integrating most of the critical components on the chip, the ESP32-D0WDQ6 allows the module to overcome any imperfections of external discrete components, allowing signal transmission power of up to 20dBm, and -97 dBm sensitivity for the BT NZIF receiver.
The ESP32-WROOM-32 supports 802.11 b/g/n WiFi standards at 2.4GHz, allowing up to 150Mbps for the 802.11n. Security options including WEP, WPA/WPA2 PSK/Enterprise, as well as hardware accelerated encryption including the AES/SHA2/Elliptical Curve Cryptography/RSA-4096, are also present on the ESP32-WROOM-32 module. It supports Sniffer, Station, SoftAP, and Wi-Fi direct modes. The ESP32-WROOM-32 module also complies with the Bluetooth v4.2 BR/EDR, and BLE specifications.
By combining both WiFi and BT technologies, the ESP32-WROOM-32 module offers a choice between using WiFi for large area coverage and Internet connectivity, or point-to-point and PAN BT connectivity. WiFi can be power demanding, while BT, on the other hand, ensures minimalistic power consumption rates.
WiFi BLE click offers the basic WiFi and BLE functionality, not exposing all the pins of the module. As such, it is meant to be used as an add-on to an existing application. However, it is equipped with the programming header, which exposes UART programming pins, along with the boot mode selection pin (IO0) and the Reset/Enable pin (EN). If the IO0 stays at a LOW logic level after the module is reset, it will boot into the serial bootloader mode. The firmware can be then programmed over the RX0 and TX0 pins, located at the additional 1x5-pin header on the Click board™.
The EN pin is also routed to the mikroBUS™ CS pin, and it is used to reset the Click board™ by the host MCU. Again, by setting the CS pin to a LOW logic level, the ESP32-WROOM-32 module will be reset. Most of the ESP-WROOM-32 module pins are configurable and multiplexed with other functions. One such pin is provided for a reference (IO14) and it is routed to the RST pin of the mikroBUS™.
The communication with the host MCU is done over a dedicated UART interface. RX and TX pins of the mikroBUS™ are routed to the appropriate pins of the module. The host MCU can send commands and receive responses over the UART interface, allowing the ESP32-WROOM-32 to perform various operations. The default baud rate of the ESP32-WROOM-32 module is 115200.
The real power behind the ESP-WROOM-32 module is in the usage simplicity. By sending a simple macro over the UART, the WiFi BLE click can be easily used to establish an internet connection and do some additional tasks. By utilizing its GPIOs (multiplexed with some other functions), the WiFi BLE click can perform some additional tasks on its own. Besides the official mikroSDK compatible library and its and functions, there is a comprehensive programming guide available for download, which explains each AT command in more details. It can be used for application development, along with the provided demo example.
Specification:
Type | WiFi+BLE |
Applications | WiFi BLE click is a perfect solution for development of various IoT applications, smart home applications, WiFi enabled toys, advanced robotics, and other similar applications. |
On-board modules | ESP32-WROOM-32, a generic WiFi and BT/BLE module made by Espressif Systems. |
Key Features | Easy to use, rich with features, both WiFi and Bluetooth/BLE connectivity options, operated by a simple set of AT commands, etc. |
Interface | GPIO,UART |
Compatibility | mikroBUS |
Click board size | L (57.15 x 25.4 mm) |
Input Voltage | 3.3V |
Pinout Diagram:
This table shows how the pinout on WiFi BLE click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
OnBoard Setting And Indicators:
Label | Name | Default | Description |
---|---|---|---|
PWR | PWR | - | Power LED Indicator |
Additional Pins:
Pin | Description |
---|---|
GND | Reference Ground |
EN | ESP32-WROOM-32 Enable/Reset |
IO0 | GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLK |
RX | GPIO3, U0RXD, CLK_OUT2 |
TX | GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2 |
Software Support:
We provide a library for the WiFi BLE click on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description:
Library carries generic command parser adopted for AT command based modules. Generic parser.
Key functions:
wifible_cmdSingle
- Sends provided command to the module.wifible_setHandler
- Handler assignation to the provied command.wifible_modulePower
- Turn on module.Examples description:
The application is composed of the three sections :
Commands : '+' - Next command 's' - Start command 'e' - change example (WiFi example / BLE example)
Additional Functions :
Timer initialization and default handler.
Note:
void applicationTask() { uint8_t dataReady_; char receivedData_; dataReady_ = UART_Rdy_Ptr( ); wifible_process(); if (dataReady_ != 0) { receivedData_ = UART_Rd_Ptr( ); switch (receivedData_) { case '+' : { command_cnt++; if(command_cnt > 5) { command_cnt = 0; } fCommand = _WIFIBLE_NEXT_COMMAND; break; } case 's' : { fCommand = _WIFIBLE_START_COMMAND; break; } case 'e' : { if(fExample == _WIFIBLE_BLE_EXAMPLE) { fExample = _WIFIBLE_WIFI_EXAMPLE; mikrobus_logWrite("- Example: WiFi - TCP example ", _LOG_LINE); mikrobus_logWrite("- [+] First command // [e] Next example", _LOG_LINE); command_cnt = -1; fCommand = _WIFIBLE_NO_COMMAND; } if(fExample == _WIFIBLE_WIFI_EXAMPLE) { fExample = _WIFIBLE_BLE_EXAMPLE; mikrobus_logWrite("- Example: BLE - iBeacon example ", _LOG_LINE); mikrobus_logWrite("- [+] First command // [e] Next example", _LOG_LINE); command_cnt = -1; fCommand = _WIFIBLE_NO_COMMAND; } break; } } if(fExample == _WIFIBLE_WIFI_EXAMPLE) { _WiFi_TCPServer(command_cnt); } if(fExample == _WIFIBLE_BLE_EXAMPLE) { _BLE_iBeacon(command_cnt); } } }
Alongside with the demo application timer initialization functions are provided. Note that timer is configured acording to default develoment system and MCUs, changing the system or MCU may require update of timer init and timer ISR functions.
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
String
Conversion
Additional notes and informations:
Depending on the development board you are using, you may need USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MikroSDK:
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.
Resources:
Downloads:
WiFi BLE click example on Libstock