Lập trình vi điều khiển: ESP32 nâng cao và các nền tảng khác
Nhóm bài lập trình vi điều khiển cho người đã viết được chương trình đầu tiên và muốn chương trình chạy ổn định, gọn và dễ mở rộng.
- Lập trình ESP32 nâng cao: FreeRTOS, timer phần cứng, watchdog, LittleFS, bảng phân vùng flash, PSRAM, HTTPS, âm thanh I2S.
- ESP8266 và NodeMCU: ESP-01, NodeMCU, Wemos D1 R2: nạp code bằng Arduino IDE, chế độ khởi động, sơ đồ chân, so sánh với ESP32.
- MicroPython: cài firmware, Thonny, boot.py và main.py tự chạy, đọc cảm biến, bài MicroPython cho học sinh.
Thứ tự nên đọc và các nhóm chủ đề khác có ở Góc kỹ thuật.
05/11/2026
boot.py và main.py trong MicroPython: thứ tự chạy khi khởi động, nên đặt gì vào mỗi file, chế độ an toàn bằng nút BOOT, bắt lỗi và ghi lỗi ra file, watchdog, chép file bằng Thonny, mpremote.
05/11/2026
Cách nạp code cho ESP-01, ESP-01S: sơ đồ 8 chân, khác nhau giữa hai bản, nối USB-TTL đúng cách, cấp nguồn 3,3 V đủ dòng, chế độ nạp GPIO0, cài Arduino IDE, chương trình đầu tiên và lỗi hay gặp.
04/11/2026
Giải thích cấu trúc một dự án ESP-IDF qua ví dụ: ba loại CMakeLists.txt, viết component riêng, thêm menu bằng Kconfig vào menuconfig, sdkconfig và sdkconfig.defaults, các bước idf.py build.
29/10/2026
PSRAM là RAM ngoài chip của ESP32: module nào có, chậm hơn SRAM bao nhiêu, dữ liệu nào nên đặt vào PSRAM, ps_malloc và heap_caps_malloc, chương trình kiểm tra bộ nhớ trên mọi bo.
29/10/2026
Bảng phân vùng flash ESP32 gồm những gì, so sánh các Partition Scheme có sẵn, vì sao OTA cần hai ô app, tự đặt partitions.csv đúng quy tắc, chương trình đọc bảng đang nạp.
29/10/2026
HTTPS bảo vệ được gì, chuỗi tin cậy của chứng chỉ, nhúng chứng chỉ gốc ISRG Root X1 vào ESP32, vì sao setInsecure() mở đường cho tấn công xen giữa, chương trình thử ba trường hợp.
29/10/2026
So sánh ba cách phát âm thanh trên ESP32: PWM, DAC 8 bit có DMA và I2S với MAX98357A; tạo sóng sin bằng bảng tra và bộ cộng pha, tránh tiếng tạch, phát giai điệu mẫu.
29/10/2026
LittleFS nằm ở đâu trong flash ESP32, khác Preferences và thẻ nhớ thế nào, đọc ghi file, ghi log CSV xoay vòng để flash bền, phục vụ trang web và file log từ LittleFS.
29/10/2026
Watchdog là gì, task watchdog, interrupt watchdog, panic và brownout trên ESP32, in lý do khởi động lại bằng esp_reset_reason, đếm số lần khởi động, cho task tự đăng ký watchdog.
29/10/2026
Timer phần cứng ESP32 hoạt động thế nào, API timerBegin, timerAlarm của gói esp32 3.x, quy tắc viết hàm ngắt, thí nghiệm so ngắt timer 500 µs với vTaskDelay(1) khi CPU bận.
29/10/2026
Vì sao biến dùng chung bị sai trên ESP32 hai nhân, queue chuyển dữ liệu, semaphore để ngắt báo cho task, mutex bảo vệ Serial, thí nghiệm hai nhân cùng tăng một biến.
29/10/2026
Task trong FreeRTOS là gì, bốn trạng thái, độ ưu tiên, chọn nhân với xTaskCreatePinnedToCore, stack tính bằng byte, vTaskDelay và vTaskDelayUntil, chương trình ba task trên hai nhân.