- 29a Bùi Xuân Phái, P.Tây Thạnh, Quận Tân Phú, TPHCM
- linhkienduchuy2018@gmail.com
- TƯ VẤN, GIẢI ĐÁP, HƯỚNG DẪN, MUA HÀNG (ZALO): 0966515049 - 0942954739
Giao miễn phí chuyển phát nhanh trong nội thành TPHCM đối với đơn hàng trên 1 triệu đồng
Giảm 5k cho đơn hàng trên 300k đồng
Giảm 10k cho đơn hàng trên 500k đồng
Giảm 15k hoặc freeship chuyển phát nhanh cho đơn hàng trên 1tr đồng
Giảm 25.000đ hoặc freeship cho đơn hàng trên 2tr đồng.
+ Board mạch phát triển ESP32-S3-N16R8 được xây dựng trên nền tảng chip ESP32-S3-N16R8 của Espressif với Flash 16MB và PSRAM 8MB (ESP32-S3-WROOM-1-N16R8). Đây là mô-đun MCU Wi-Fi + Bluetooth® LE đa năng tích hợp đầy đủ các chức năng Wi-Fi và Bluetooth LE. Hầu hết các chân I/O trên mô-đun được chia thành các đầu cắm chân ở cả hai mặt của bo mạch này để dễ dàng giao tiếp.
+ ESP32-S3 là MCU XTensa LX7 lõi kép, có khả năng chạy ở tần số 240 MHz. Ngoài 512 KB SRAM bên trong, nó còn đi kèm với kết nối Wi-Fi 2,4 GHz, 802.11 b/g/n và Bluetooth 5 (LE) tích hợp cung cấp hỗ trợ tầm xa. Nó có 45 GPIO có thể lập trình và hỗ trợ bộ thiết bị ngoại vi phong phú. ESP32-S3 hỗ trợ flash SPI tốc độ cao hơn, lớn hơn và PSRAM với bộ nhớ đệm dữ liệu và lệnh có thể định cấu hình.
+ Có một đèn LED RGB WS2812 được kết nối với IO38. Nó có đèn LED Đỏ, Xanh lục và Xanh lam có thể định địa chỉ riêng lẻ. Mô-đun này có 2 đầu nối USB Type C. Một đầu nối được sử dụng để cấp nguồn cho bo mạch, để flash các ứng dụng vào chip, cũng như để giao tiếp với chip thông qua cầu nối USB-to-UART trên bo mạch. Nó được kết nối với UART của chip ESP32 thông qua chip CH340. Đầu nối USB thứ hai được kết nối với giao diện USB OTG tốc độ đầy đủ ESP32-S3, tuân thủ thông số kỹ thuật của USB 1.1. Nó cũng có thể được sử dụng để cấp nguồn cho bo mạch, để flash các ứng dụng vào chip, để giao tiếp với chip bằng giao thức USB 1.1, cũng như để gỡ lỗi JTAG.
THÔNG SỐ KỸ THUẬT:
XTensa dual-core 32-bit LX7 CPU, frequency up to 240MHz
2.4 GHz Wi-Fi, EEE 802.11 b/g/n-compliant
Bluetooth, LE: Bluetooth 5, Bluetooth mesh
16 MB (64Mbit) SPI Flash
384 KB ROM
512 KB SRAM
8 MB SPI PSRAM
16 KB SRAM in RTC
Communication Interfaces
2 x I2C
2 x I2S
4 x SPI
3 x UART
1 x USB OTG
Security
4096 bit OTP
AES, SHA, RSA, ECC and RNG
Secure boott, Flash encryption, Digital signature, HMAC module
Dual Type-C USB connectors
Reset and User/Firmware buttons
RGB WS2812 User LED
Power LED
Virtual USB port provided by CH343G for debugging and firmware upgrade
Supply Voltage: 5V via USB (cấp nguồn 5V qua cổng USB trong mạch có chip hạ áp 3.3V)
Circuit Voltage: 3.0 to 3.6V Circuit Operation
Dimensions: 50.1 x 13mm



1. Thiết lập cài đặt trên Arduino IDE:
Trường hợp 1: Nếu sử dụng cổng UART trên mạch ESP32-S3 CAM:

Trường hợp 2: Nếu sử dụng cổng USB-OTG trên mạch ESP32-S3 CAM:

CODE MẪU LED RGB TRÊN MẠCH ESP32-S3:
#include "Freenove_WS2812_Lib_for_ESP32.h"
#define LEDS_COUNT 8
#define LEDS_PIN 48
#define CHANNEL 0
Freenove_ESP32_WS2812 strip = Freenove_ESP32_WS2812(LEDS_COUNT, LEDS_PIN, CHANNEL, TYPE_GRB);
void setup() {
strip.begin();
strip.setBrightness(20);
}
void loop() {
for (int j = 0; j < 255; j += 2) {
for (int i = 0; i < LEDS_COUNT; i++) {
strip.setLedColorData(i, strip.Wheel((i * 256 / LEDS_COUNT + j) & 255));
}
strip.show();
delay(5);
}
}
CODE TEST RAM TRÊN ESP32-S3:
1) Thiết lập cài đặt trên Arduino:

2) CODE ARDUINO-IDE:
/* Lonely Binary ESP32-S3 Memory Information Test
For Lonely Binary ESP32-S3 N16R8
In Arduino Settings,
USB CDC On Boot: "Enabled"
Flash Mode: QIO 80MHZ
Flash Size: 16MB(128Mb)
Partition Scheme: 16MB Flash (3MB APP/9.9MB FATFS)
PSRAM: OPI PSRAM
Upload Mode: UART0 / Hardware CDC
USB Mode: Hardware CDC and JTAG
*/
#include <esp_heap_caps.h>
void setup() {
Serial.begin(115200);
delay(1000); // Wait for serial to initialize
Serial.println("=== ESP32-S3 Memory Information ===");
Serial.println("Lonely Binary ESP32-S3 N16R8");
Serial.println();
// Test PSRAM
testPSRAM();
// Test Flash Memory
testFlashMemory();
// Test SRAM
testSRAM();
Serial.println("=== Memory Test Complete ===");
}
void loop() {
// Nothing to do in loop
delay(1000);
}
void testPSRAM() {
Serial.println("--- PSRAM Test ---");
// Get PSRAM size
size_t psramSize = ESP.getPsramSize();
if (psramSize > 0 ) {
Serial.println("✅ PSRAM is available!");
Serial.printf("PSRAM Size: %d bytes (%.2f MB)\n", psramSize, psramSize / 1024.0 / 1024.0);
// Check if PSRAM is initialized
if (psramInit()) {
Serial.println("✅ PSRAM is initialized and working!");
} else {
Serial.println("❌ PSRAM initialization failed!");
}
} else {
Serial.println("❌ PSRAM not found!");
Serial.println("❌ PSRAM mode should be OPI PSRAM in Arduino Settings");
}
Serial.println();
}
void testFlashMemory() {
Serial.println("--- Flash Memory Test ---");
// Get Flash memory size
size_t flashSize = ESP.getFlashChipSize();
Serial.printf("Flash Size: %d bytes (%.2f MB)\n", flashSize, flashSize / 1024.0 / 1024.0);
// Get Flash chip speed
uint32_t flashSpeed = ESP.getFlashChipSpeed();
Serial.printf("Flash Speed: %d MHz\n", flashSpeed / 1000000);
// Get Flash chip mode
uint8_t flashMode = ESP.getFlashChipMode();
Serial.printf("Flash Mode: %d\n", flashMode);
Serial.println("✅ Flash memory information retrieved!");
Serial.println();
}
void testSRAM() {
Serial.println("--- SRAM Test ---");
// Get free heap size
size_t freeHeap = ESP.getFreeHeap();
Serial.printf("Free Heap: %d bytes (%.2f KB)\n", freeHeap, freeHeap / 1024.0);
// Get minimum free heap size
size_t minFreeHeap = ESP.getMinFreeHeap();
Serial.printf("Minimum Free Heap: %d bytes (%.2f KB)\n", minFreeHeap, minFreeHeap / 1024.0);
// Get maximum allocatable heap size
size_t maxAllocHeap = ESP.getMaxAllocHeap();
Serial.printf("Maximum Allocatable Heap: %d bytes (%.2f KB)\n", maxAllocHeap, maxAllocHeap / 1024.0);
Serial.println("✅ SRAM information retrieved!");
Serial.println();
}
BẢNG KẾT QUẢ TEST RAM:

CODE MẪU TEST WIFI CỦA ESP32 S3 TRÊN ARDUINO IDE:
/*
* This sketch demonstrates how to scan WiFi networks.
* The API is based on the Arduino WiFi Shield library, but has significant changes as newer WiFi functions are supported.
* E.g. the return value of `encryptionType()` different because more modern encryption is supported.
*/
#include "WiFi.h"
void setup() {
Serial.begin(115200);
// Set WiFi to station mode and disconnect from an AP if it was previously connected.
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
Serial.println("Setup done");
}
void loop() {
Serial.println("Scan start");
// WiFi.scanNetworks will return the number of networks found.
int n = WiFi.scanNetworks();
Serial.println("Scan done");
if (n == 0) {
Serial.println("no networks found");
} else {
Serial.print(n);
Serial.println(" networks found");
Serial.println("Nr | SSID | RSSI | CH | Encryption");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.printf("%2d", i + 1);
Serial.print(" | ");
Serial.printf("%-32.32s", WiFi.SSID(i).c_str());
Serial.print(" | ");
Serial.printf("%4ld", WiFi.RSSI(i));
Serial.print(" | ");
Serial.printf("%2ld", WiFi.channel(i));
Serial.print(" | ");
switch (WiFi.encryptionType(i)) {
case WIFI_AUTH_OPEN: Serial.print("open"); break;
case WIFI_AUTH_WEP: Serial.print("WEP"); break;
case WIFI_AUTH_WPA_PSK: Serial.print("WPA"); break;
case WIFI_AUTH_WPA2_PSK: Serial.print("WPA2"); break;
case WIFI_AUTH_WPA_WPA2_PSK: Serial.print("WPA+WPA2"); break;
case WIFI_AUTH_WPA2_ENTERPRISE: Serial.print("WPA2-EAP"); break;
case WIFI_AUTH_WPA3_PSK: Serial.print("WPA3"); break;
case WIFI_AUTH_WPA2_WPA3_PSK: Serial.print("WPA2+WPA3"); break;
case WIFI_AUTH_WAPI_PSK: Serial.print("WAPI"); break;
default: Serial.print("unknown");
}
Serial.println();
delay(10);
}
}
Serial.println("");
// Delete the scan result to free memory for code below.
WiFi.scanDelete();
// Wait a bit before scanning again.
delay(5000);
}
BẢNG KẾT QUẢ SAU KHI TEST:

code test kết nối wifi
#include <WiFi.h>
const char* ssid = "Duc Huy"; /// tên wifi
const char* password = "dientuduchuy"; // mật khẩu wifi
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println();
Serial.print("Dang ket noi WiFi: ");
Serial.println(ssid);
WiFi.mode(WIFI_STA); // Chế độ Station
WiFi.begin(ssid, password);
WiFi.setTxPower(WIFI_POWER_11dBm);
int retry = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
retry++;
if (retry > 30) { // khoảng 15 giây
Serial.println("\n Ket noi that bai!");
return;
}
}
Serial.println("\n Da ket noi WiFi thanh cong!");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
// Không cần code trong loop
}
Bình luận