inflearn logo

Cơ bản về phát triển IoT với ESP32 - Từ phần cứng đến FreeRTOS

Khóa học này nhằm mục đích giúp những người mới bắt đầu tiếp cận với ESP32 và phát triển IoT có thể nắm vững từ thiết lập môi trường → kiến thức ngôn ngữ cơ bản → điều khiển phần cứng → cho đến cách sử dụng RTOS. Mục tiêu chính của khóa học này bao gồm: - Tiếp thu kỹ năng sử dụng các công cụ cơ bản và môi trường phát triển ESP32 - Hiểu về ngôn ngữ C và cấu trúc ESP-IDF - Hiểu về các tác vụ FreeRTOS và các phương thức đồng bộ hóa cơ bản - Có khả năng điều khiển phần cứng thông qua GPIO, I2C, SPI, UART - Hiểu về cấu trúc bộ nhớ, lưu trữ và có khả năng thực hiện lưu trữ dữ liệu vĩnh viễn đơn giản

(5.0) 1 đánh giá

12 học viên

Độ khó Nhập môn

Thời gian Không giới hạn

C
C
IoT
IoT
FreeRTOS
FreeRTOS
esp32
esp32
C
C
IoT
IoT
FreeRTOS
FreeRTOS
esp32
esp32

Bạn sẽ nhận được điều này sau khi học.

  • Bạn có thể cài đặt, thiết lập ESP-IDF cùng môi trường phát triển, cũng như biên dịch và nạp (flash) dự án.

  • Có thể hiểu cấu trúc ngôn ngữ C và ESP-IDF, đồng thời có khả năng cấu trúc mã nguồn bằng cách sử dụng các thành phần (components) và thư viện.

  • Bạn có thể sử dụng FreeRTOS để triển khai các chức năng đa nhiệm cơ bản như task, queue, semaphore và timer.

  • Thông qua GPIO, I2C, SPI và UART, bạn có thể điều khiển các cảm biến và thiết bị ngoại vi cũng như trao đổi dữ liệu.

  • Bạn có thể sử dụng NVS và hệ thống tệp (file system) để lưu trữ cài đặt và dữ liệu, đồng thời quản lý cấu trúc bộ nhớ một cách hiệu quả.

Phát triển ESP32 IoT,
Làm chủ hoàn toàn từ phần cứng đến FreeRTOS!

Bạn đang cảm thấy bối rối không biết nên bắt đầu phát triển ESP32 và IoT từ đâu?
Từ thiết lập môi trường đến ngôn ngữ C, FreeRTOS và điều khiển phần cứng,
hãy xây dựng năng lực phát triển vững chắc có thể áp dụng ngay vào thực tế.


Cơ bản về phát triển ESP32 IoT
Xây dựng kinh nghiệm thực tế từ phần cứng đến FreeRTOS.

Khóa học này là bài giảng nhập môn thực tế với mục tiêu giúp người học lần đầu tiếp cận với ESP32 và phát triển IoT có thể nắm vững từ thiết lập môi trường → ôn tập kiến thức cơ bản về ngôn ngữ C → điều khiển phần cứng → đa nhiệm dựa trên FreeRTOS trong một lần.

Phát triển ESP32,
hoàn thiện với dự án thực tế

Khóa học này không chỉ đơn thuần là quá trình sao chép các mã ví dụ.
Tôi đã thiết kế khóa học với ưu tiên quan trọng nhất là giải thích cùng bạn “Tại sao lại viết mã như thế này”, “Nên xem datasheet từ đâu”, và “Khi có vấn đề xảy ra thì nên nghi ngờ điều gì và cần kiểm tra log nào”.

Phần 1 - Giới thiệu khóa học và chuẩn bị môi trường phát triển

Trong phần này, chúng tôi sẽ giới thiệu quy trình phát triển ESP32 IoT, đồng thời hướng dẫn chi tiết cách thiết lập môi trường phát triển ESP-IDF và cấu hình VS Code cần thiết cho việc thực hành. Ngoài ra, chúng tôi cũng sẽ so sánh các loại chip và module ESP32 để thiết lập mục tiêu học tập.

Phần 2 - Các tính năng cơ bản của ESP32 và ứng dụng ngôn ngữ C

Thực hành các chức năng cơ bản của ESP32 như logging, delay, tạo số ngẫu nhiên và điều khiển phần cứng thông qua điều khiển LED và nhập liệu từ bàn phím. Ngoài ra, bạn sẽ học cách viết mã hiệu quả bằng cách sử dụng các khái niệm cốt lõi của ngôn ngữ C như cấu trúc (struct), con trỏ (pointer) và con trỏ hàm (function pointer).

Phần 3 - Cấu trúc dự án ESP-IDF và quản lý thành phần

Hiểu cấu trúc bên trong của dự án ESP-IDF và nắm vững cách tham chiếu các tệp C và H. Nội dung này sẽ đi sâu vào khái niệm về component để sử dụng các thư viện bên ngoài, cũng như cách thêm và vận dụng các component bên ngoài một cách chi tiết.

Phần 4 - Học chuyên sâu về hệ điều hành thời gian thực FreeRTOS

Học các tính năng đa dạng của hệ điều hành thời gian thực FreeRTOS. Tìm hiểu cách tạo và quản lý Task, Task Notification, Mutex, Semaphore, Queue, Event Group, cách sử dụng Timer và học phương pháp phát triển hiệu quả trong môi trường đa nhiệm.

Phần 5 - Quản lý cấu hình và gỡ lỗi ESP32

Học các kỹ thuật gỡ lỗi thiết yếu khi phát triển ESP32. Tìm hiểu các phương pháp gỡ lỗi thủ công và cách phân tích lỗi bằng Stack Trace, đồng thời học cách quản lý cấu hình dự án và cấu hình người dùng bằng Menuconfig.

Phần 6 - Cấu trúc bộ nhớ và sử dụng lưu trữ của ESP32

Tìm hiểu về các cấu trúc bộ nhớ khác nhau của ESP32 như SRAM, PSRAM, bộ nhớ Flash, đồng thời học cách phân bổ bộ nhớ động/tĩnh và cách sử dụng bộ nhớ Stack. Ngoài ra, thực hành phương pháp lưu trữ và quản lý dữ liệu vĩnh viễn bằng cách sử dụng hệ thống tệp NVS và SPIFFS.

Phần 7 - Điều khiển GPIO và đầu vào/đầu ra Analog/Digital

Học về các kỹ thuật xuất, nhập, xử lý ngắt và khử nhiễu (debouncing) bằng chân GPIO. Ngoài ra, nội dung cũng bao gồm xử lý tín hiệu analog thông qua DAC, ADC, điều khiển bằng LEDC và PWM, cùng giao diện cảm biến cảm ứng.

Phần 8 - Thực hành giao thức truyền thông thiết bị ngoại vi

Thực hành cách kết nối với các thiết bị ngoại vi đa dạng bằng cách sử dụng các giao thức truyền thông UART, I2C, SPI. Bạn sẽ được học các kỹ thuật truyền thông thiết yếu cho dự án IoT như ghi nhật ký (logging) qua Bluetooth, nhận dữ liệu cảm biến, kết nối thẻ nhớ SD và màn hình SSD.

Những gì bạn sẽ nhận được sau khóa học này

Điểm 1. Thiết lập môi trường phát triển thực tế cho ESP32

Bạn sẽ có thể tự mình thực hiện toàn bộ quy trình từ cài đặt trực tiếp ESP-IDF và toolchain, đến tạo, build, flash và giám sát (monitor) dự án. Bằng cách nắm vững các tùy chọn log đa dạng và cách sử dụng serial monitor, bạn có thể vận hành chu trình phát triển từ thay đổi mã nguồn → build → debug một cách tự nhiên.


Điểm 2. Hiểu về ngôn ngữ C và cấu trúc ESP-IDF

Bạn có thể ôn tập lại cú pháp ngôn ngữ C theo phong cách ESP-IDF, đồng thời cấu trúc dự án theo dạng mô-đun bằng cách chia nhỏ thành header, component và thư viện. Không chỉ dừng lại ở việc gõ theo mã nguồn có sẵn, bạn sẽ rèn luyện được tư duy thiết kế và khả năng phán đoán xem "tính năng này nên được tách ra thành mô-đun nào".


Điểm 3. Đa nhiệm với FreeRTOS

Bạn có thể thiết kế và triển khai cấu trúc cho phép nhiều tác vụ hoạt động đồng thời bằng cách sử dụng Task, Queue, Semaphore và Timer của FreeRTOS. Bạn sẽ hiểu các khái niệm về mức độ ưu tiên và lập lịch (scheduling), đồng thời học cách gỡ lỗi bằng cách phân tích "Task nào đang làm gì vào lúc này" thông qua nhật ký (log).


Điểm 4. Demo phần cứng và lưu trữ

Bạn có thể trực tiếp viết mã để điều khiển các loại cảm biến và thiết bị ngoại vi, cũng như truyền nhận dữ liệu thông qua GPIO, I2C, SPI, UART. Bên cạnh đó, bạn có thể sử dụng NVS và hệ thống tệp (file system) để lưu trữ các giá trị cài đặt và dữ liệu đo lường vào bộ nhớ flash, đồng thời hiểu rõ cấu trúc bộ nhớ và lưu trữ của ESP32 để thiết kế và triển khai toàn bộ luồng hoạt động của một thiết bị IoT nhỏ.


Bạn đang cảm thấy mông lung không biết nên bắt đầu từ đâu với ESP32 và phát triển IoT phải không?


✔️ Người mới bắt đầu làm quen với ESP32 và phát triển nhúng

  • Những ai muốn học từng bước một từ ngôn ngữ C và thiết lập môi trường ESP-IDF

  • Những ai muốn trực tiếp thực hành và thấu hiểu các nguyên lý cơ bản của điều khiển phần cứng

  • Người mới bắt đầu với ước mơ muốn tự tay tạo ra thiết bị IoT của riêng mình

✔️ Nhà phát triển muốn tích lũy kinh nghiệm phát triển nhúng dựa trên ngôn ngữ C

  • Những ai muốn học kết hợp giữa khung làm việc ESP-IDF và cú pháp ngôn ngữ C

  • Những ai muốn nắm vững các khái niệm cơ bản của FreeRTOS và phương pháp quản lý tác vụ (task management)

  • Những ai muốn nâng cao khả năng sử dụng các giao diện phần cứng đa dạng (GPIO, I2C, SPI, UART)

✔️ Các maker và kỹ sư muốn tăng cường năng lực phát triển firmware và chế tạo nguyên mẫu IoT

  • Những ai muốn kết nối cảm biến và mô-đun với ESP32 để tạo ra các nguyên mẫu (prototype) hoạt động thực tế

  • Những ai muốn học cách lưu trữ và quản lý dữ liệu hiệu quả bằng cách sử dụng NVS, SPIFFS, v.v.

  • Những người muốn rèn luyện kinh nghiệm phát triển firmware và khả năng giải quyết vấn đề cần thiết trong giai đoạn trước khi thương mại hóa sản phẩm.


Bây giờ hãy dừng các lý thuyết phức tạp lại! Với ESP32, bất kỳ ai cũng có thể trở thành nhà phát triển IoT.
Từ phần cứng đến FreeRTOS, hãy biến dự án IoT của bạn thành hiện thực.

Lưu ý trước khi khóa học bắt đầu


Môi trường thực hành

  • Yêu cầu hệ điều hành Windows.

  • Việc cài đặt công cụ phát triển ESP-IDF và VS Code là bắt buộc.


Kiến thức tiên quyết và lưu ý

  • Sẽ tốt hơn nếu bạn hiểu các cú pháp cơ bản của ngôn ngữ C.

  • Không có kinh nghiệm phát triển nhúng cũng không sao.

  • Cần chuẩn bị ít nhất 1 bo mạch ESP32.

Tài liệu học tập

  • Cung cấp mã nguồn dự án thực hành.

  • Sử dụng tài liệu chính thức của ESP-IDF để tham khảo.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Người mới bắt đầu làm quen với ESP32 và phát triển hệ thống nhúng

  • Sinh viên và nhà phát triển muốn học điều khiển phần cứng thông qua việc học ngôn ngữ C.

  • Nhà phát triển nhúng muốn học về môi trường ESP-IDF và phát triển dựa trên FreeRTOS

  • Những nhà sáng tạo (Maker) muốn kết nối cảm biến và mô-đun với ESP32 để tạo ra các nguyên mẫu IoT.

  • Kỹ sư muốn tích lũy kinh nghiệm phát triển firmware trong giai đoạn trước khi thương mại hóa sản phẩm.

Cần biết trước khi bắt đầu?

  • Ngữ pháp ngôn ngữ C cơ bản

  • Kinh nghiệm lập trình cơ bản

  • Kiến thức cơ bản về phần cứng

  • Kinh nghiệm phát triển MCU

  • Các khái niệm mạng cơ bản

Xin chào
Đây là yongjunmoon

Xin chào, tôi là Moon Yong-jun.
Hiện tại tôi đang làm việc tại Microsoft với tư cách là Technical Support Engineer, chịu trách nhiệm hỗ trợ kỹ thuật trong lĩnh vực Modern Work như Microsoft 365, OneDrive, SharePoint, Copilot và Office. Kể từ khi gia nhập công ty vào năm 2022, tôi đã tích lũy được nhiều kinh nghiệm trong việc giải quyết các vấn đề kỹ thuật trên ứng dụng web IIS, trình duyệt Edge và dịch vụ đám mây Azure Bot.

Trước khi gia nhập Microsoft, tôi đã hoạt động với tư cách là kỹ sư Embedded·IoT, tích lũy kinh nghiệm trong việc phát triển firmware cho nhiều thiết bị khác nhau, giao tiếp BLE, phát triển GUI và quản lý kỹ thuật dự án. Ngoài ra, tôi cũng từng là huấn luyện viên dự án mảng IoT tại Elice, hướng dẫn học viên về lập trình thiết bị và các dự án Embedded C.

Đặc biệt, dựa trên phổ kỹ thuật rộng từ thiết kế firmware (nRF52, ESP32, v.v.), quản lý dự án IoT đến hỗ trợ kỹ thuật M365, tôi đặt mục tiêu truyền tải sự cân bằng giữa lý thuyết và thực hành thông qua các bài giảng của mình.

Bài giảng của tôi không chỉ dừng lại ở việc giải thích các chức năng đơn thuần mà còn tập trung vào việc cung cấp kiến thức thực tế để giải quyết các vấn đề phát sinh trong công việc và dự án thực tế.

Tôi rất mong được cùng các bạn trưởng thành, cũng như chia sẻ niềm vui khi được học hỏi và vận dụng những công nghệ mới.

Yong Jun Moon | LinkedIn

Thêm

Chương trình giảng dạy

Tất cả

79 bài giảng ∙ (12giờ 2phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

1 đánh giá

5.0

1 đánh giá

  • fain9301님의 프로필 이미지
    fain9301

    Đánh giá 100

    Đánh giá trung bình 4.8

    5

    100% đã tham gia

    Đây dường như là một bài giảng đủ để giúp người học nắm bắt được những kiến thức cơ bản và cảm thấy hứng thú về ESP. Mặc dù tôi hơi tiếc vì không có nhiều phần ứng dụng chi tiết, nhưng tôi rất thích vì đây là một bài giảng hay, tập trung vào sự thú vị và cô đọng nhiều nội dung về kiến thức cơ bản cũng như cách cấu trúc một dự án. Điểm đáng tiếc là nếu lần sau khóa học được cung cấp dưới dạng không giới hạn thời gian thì sẽ tốt hơn nữa.

    • yongjunmoon
      Giảng viên

      Cảm ơn bạn đã hoàn thành 100% khóa học và để lại đánh giá! Tôi đang trong quá trình sản xuất các bài giảng ứng dụng bao gồm WiFi, Web Server và Bluetooth. Sau khi hoàn thành các nội dung này, tôi sẽ tiến hành thực hiện các nội dung sử dụng dự án thực tế! Thời hạn khóa học đã được cập nhật thành vô thời hạn!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

6.880.698 ₫