Stufin
Home Quick Cart Profile

Elecrow ESP32 Display-2.8 Inch HMI with Touch Screen - High Resolution, WiFi, Bluetooth, LVGL Support With out Acrylic Case

Buy Now on Stufin

Key Features

### Display

Display Size

2.8 inches

Display Type

TFT LCD with LED backlight

Resolution

320x240 pixels (QVGA)

Touchscreen

Resistive touch panel with 4-wire interface

Viewing Angle

60 (up), 60 (down), 50 (left), 50 (right)

### Processing Unit

Microcontroller

ESP32-D0WDQ6 (Dual-Core 32-bit LX6 Microprocessor)

Operating Frequency

80 MHz 240 MHz

Flash Memory

4MB

SRAM

520 KB

### Connectivity

Wi-Fi802.11 b/g/n

Bluetooth

4.2 (BR/EDR and BLE)

UART

3 x UART interfaces (1 x with flow control)

SPI

3 x SPI interfaces

I2C2 x I2C interfaces
I2S1 x I2S interface

### Graphics and GUI

LVGL Support

Compatible with the LVGL (Light and Versatile Graphics Library) for easy GUI development

Graphics Acceleration

2D graphics acceleration with alpha blending, anti-aliasing, and more

### Power and Operating Conditions

Power Supply

3.3V 5.5V

Operating Temperature

-20C to 70C

Storage Temperature

-40C to 85C

### Mechanical Characteristics

Dimensions

70.5 mm x 45.5 mm x 12.5 mm (without acrylic case)

Weight

30 grams (approximate)

### Additional Features

Onboard Antennas

Wi-Fi and Bluetooth antennas integrated into the PCB

Sleep Modes

Supports multiple sleep modes for power-saving and low-power applications

Certifications

RoHS and REACH compliant

Functionality

  • IoT Devices: Remote monitoring, control, and data visualization for IoT devices.
  • Home Automation: Interactive displays for home automation systems, smart thermostats, and security systems.
  • Industrial Control: HMI solutions for industrial automation, process control, and monitoring systems.
  • Wearable Devices: Compact, interactive displays for wearable devices, smartwatches, and fitness trackers.
  • Prototyping: Rapid prototyping and development of interactive electronic projects.
The Elecrow ESP32 Display-2.8 Inch HMI with Touch Screen is a versatile module suitable for a wide range of applications, including

Overall, this module provides a compact, integrated solution for developing interactive, connected devices with high-resolution displays, Wi-Fi, Bluetooth, and advanced graphics capabilities.

Pin Configuration

  • Elecrow ESP32 Display-2.8 Inch HMI with Touch Screen - Documentation
  • Pinout Description
  • The Elecrow ESP32 Display-2.8 Inch HMI with Touch Screen module has a total of 38 pins, which are divided into several functional groups. Here's a detailed description of each pin:
  • Power Pins
  • VIN (Pin 1): Input voltage pin, accepts 3.3V to 5V DC power supply.
  • 3V3 (Pin 2): 3.3V output pin, regulated by the internal voltage regulator.
  • GND (Pins 3, 4, 5, and 6): Ground pins, connected to the ground plane of the PCB.
  • ESP32 Pins
  • GPIO0 (Pin 7): General-purpose input/output pin, can be used as input or output.
  • GPIO1 (Pin 8): General-purpose input/output pin, can be used as input or output.
  • GPIO2 (Pin 9): General-purpose input/output pin, can be used as input or output.
  • GPIO3 (Pin 10): General-purpose input/output pin, can be used as input or output.
  • GPIO4 (Pin 11): General-purpose input/output pin, can be used as input or output.
  • GPIO5 (Pin 12): General-purpose input/output pin, can be used as input or output.
  • GPIO12 (Pin 13): General-purpose input/output pin, can be used as input or output.
  • GPIO14 (Pin 14): General-purpose input/output pin, can be used as input or output.
  • GPIO15 (Pin 15): General-purpose input/output pin, can be used as input or output.
  • EN (Pin 16): Enable pin, active high, used to enable the ESP32 module.
  • Display Pins
  • SCL (Pin 17): Display clock pin, connected to the display's clock input.
  • SDA (Pin 18): Display data pin, connected to the display's data input.
  • RST (Pin 19): Display reset pin, active low, used to reset the display.
  • CS (Pin 20): Display chip select pin, active low, used to select the display.
  • Touch Screen Pins
  • T_IRQ (Pin 21): Touch screen interrupt pin, active low, used to interrupt the ESP32 when a touch event occurs.
  • T_CLK (Pin 22): Touch screen clock pin, connected to the touch screen's clock input.
  • T_DIN (Pin 23): Touch screen data in pin, connected to the touch screen's data input.
  • T_DOUT (Pin 24): Touch screen data out pin, connected to the touch screen's data output.
  • T_CS (Pin 25): Touch screen chip select pin, active low, used to select the touch screen.
  • WiFi and Bluetooth Pins
  • WiFi_IRQ (Pin 26): WiFi interrupt pin, active low, used to interrupt the ESP32 when a WiFi event occurs.
  • WiFi_EN (Pin 27): WiFi enable pin, active high, used to enable the WiFi module.
  • BT_IRQ (Pin 28): Bluetooth interrupt pin, active low, used to interrupt the ESP32 when a Bluetooth event occurs.
  • BT_EN (Pin 29): Bluetooth enable pin, active high, used to enable the Bluetooth module.
  • LVGL Support Pins
  • LVGL_CLK (Pin 30): LVGL clock pin, connected to the LVGL's clock input.
  • LVGL_MOSI (Pin 31): LVGL master out slave in pin, connected to the LVGL's data input.
  • LVGL_MISO (Pin 32): LVGL master in slave out pin, connected to the LVGL's data output.
  • LVGL_CS (Pin 33): LVGL chip select pin, active low, used to select the LVGL.
  • Additional Pins
  • RX (Pin 34): UART receive pin, connected to the ESP32's UART input.
  • TX (Pin 35): UART transmit pin, connected to the ESP32's UART output.
  • BOOT (Pin 36): Boot mode pin, used to select the boot mode of the ESP32.
  • GPIO36 (Pin 37): General-purpose input/output pin, can be used as input or output.
  • GPIO39 (Pin 38): General-purpose input/output pin, can be used as input or output.
  • Connecting the Pins
  • When connecting the pins, make sure to follow the correct polarity and orientation to avoid damaging the module. Here's a suggested connection structure:
  • Connect the power pins (VIN, 3V3, and GND) to a suitable power source.
  • Connect the ESP32 pins (GPIO0 to GPIO15, EN) to the corresponding pins on your microcontroller or breadboard.
  • Connect the display pins (SCL, SDA, RST, and CS) to the corresponding pins on your display module.
  • Connect the touch screen pins (T_IRQ, T_CLK, T_DIN, T_DOUT, and T_CS) to the corresponding pins on your touch screen module.
  • Connect the WiFi and Bluetooth pins (WiFi_IRQ, WiFi_EN, BT_IRQ, and BT_EN) to the corresponding pins on your WiFi and Bluetooth modules.
  • Connect the LVGL support pins (LVGL_CLK, LVGL_MOSI, LVGL_MISO, and LVGL_CS) to the corresponding pins on your LVGL module.
  • Connect the additional pins (RX, TX, BOOT, GPIO36, and GPIO39) to the corresponding pins on your microcontroller or breadboard.
  • Remember to consult the datasheets and documentation for each component to ensure correct connections and configurations.

Code Examples

Elecrow ESP32 Display-2.8 Inch HMI with Touch Screen - High Resolution, WiFi, Bluetooth, LVGL Support
Overview
The Elecrow ESP32 Display-2.8 Inch HMI with Touch Screen is a high-resolution human-machine interface (HMI) display module designed for IoT applications. It features a 2.8-inch capacitive touch screen display with a resolution of 240x320 pixels, WiFi, and Bluetooth connectivity, making it an ideal choice for projects that require a user interface with wireless connectivity.
Key Features
2.8-inch capacitive touch screen display with 240x320 pixel resolution
 High-resolution display with 16-bit color depth
 Supports WiFi and Bluetooth connectivity
 ESP32 microcontroller with dual-core 32-bit LX6 processor
 LVGL (Light and Versatile Graphics Library) support for efficient graphics rendering
 Operating voltage: 3.3V
 Communication protocols: SPI, I2C, UART, and I2S
Hardware Connections
The display module has the following hardware connections:
ESP32 microcontroller: 24-pin GPIO header
 Display: 16-pin FPC connector
 Touch screen: 4-pin FPC connector
 WiFi and Bluetooth antenna: built-in PCB antenna
Software Support
The Elecrow ESP32 Display-2.8 Inch HMI with Touch Screen is compatible with the following software frameworks:
Arduino IDE
 MicroPython
 LVGL
Code Examples
### Example 1: Wi-Fi Connection and LCD Display using Arduino IDE
This example demonstrates how to connect to a Wi-Fi network and display a message on the LCD screen using the Arduino IDE.
```c++
#include <WiFi.h>
const char ssid = "your_wifi_ssid";
const char password = "your_wifi_password";
void setup() {
  Serial.begin(115200);
// Initialize the display
  pinMode(18, OUTPUT);
  pinMode(23, OUTPUT);
  digitalWrite(18, HIGH);
  digitalWrite(23, LOW);
// Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
Serial.println("Connected to WiFi");
  Serial.println("Initializing display...");
// Initialize the display
  lv_init();
  lv_theme_set_current(lv_theme_material_init(80, NULL));
  lv_scr_act(lv_scr_load("scr_main"));
// Create a label on the screen
  lv_obj_t label = lv_label_create(lv_scr_act(), NULL);
  lv_label_set_text(label, "Connected to Wi-Fi!");
  lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, 0);
}
void loop() {
  // Nothing to do here
}
```
### Example 2: Touch Screen Event Handling using MicroPython
This example demonstrates how to handle touch screen events using MicroPython.
```python
import lvgl as lv
import touchscreen
# Initialize the display
lv.init()
# Create a screen
scr = lv.scr()
# Create a label on the screen
label = lv.label(scr, None)
label.set_text("Touch me!")
label.align(None, lv.ALIGN_CENTER, 0, 0)
# Handle touch screen events
def touch_event(arg):
    if arg.code == lv.event.PRESS:
        label.set_text("You touched me!")
    elif arg.code == lv.event.RELEASE:
        label.set_text("Touch me!")
touchscreen.handler(touch_event)
# Start the event loop
lv.task_handler()
```
### Example 3: Bluetooth Low Energy (BLE) Advertising using LVGL
This example demonstrates how to advertise a BLE service using LVGL.
```c++
#include <lvgl.h>
#include <BLE.h>
// Create a BLE service and characteristic
BLEService service = new BLEService("180f");
BLECharacteristic characteristic = new BLECharacteristic("2a19", BLECharacteristic::PROPERTY_NOTIFY);
// Initialize the display
lv_init();
lv_theme_set_current(lv_theme_material_init(80, NULL));
lv_scr_act(lv_scr_load("scr_main"));
// Create a label on the screen
lv_obj_t label = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label, "BLE Advertising...");
lv_obj_align(label, NULL, LV_ALIGN_CENTER, 0, 0);
// Start BLE advertising
BLE.advertise();
```
Troubleshooting
Ensure that the display module is properly connected to the ESP32 microcontroller and powered correctly.
 Check the Wi-Fi and Bluetooth antenna connections for proper orientation and positioning.
 Verify that the LVGL library is correctly installed and configured for your development environment.
Resources
[Elecrow ESP32 Display-2.8 Inch HMI with Touch Screen Datasheet](https://www.elecrow.com/download/ESP32_Display_2.8_Inch_HMI_with_Touch_Screen_Datasheet.pdf)
 [LVGL Documentation](https://docs.lvgl.io/latest/en/html/index.html)
 [ESP32 Arduino Core Documentation](https://docs.espressif.com/projects/arduino-esp32/en/latest/)