Skip to main content

Tổng quan về IOT & Lập trình C nhúng cho vi điều khiển

Enrollment in this course is by invitation only

Tổng quan về IOT và Lập trình C nhúng cho vi điều khiển

Xin chào các bạn!

Internet vạn vật hay vạn vật kết nối (Internet of Things, viết tắt là IoT) là khái niệm đã xuất hiện từ những năm 1999, nhưng xu hướng này mới thực sự được nhiều người chú ý và bùng nổ trong những năm gần đây. Có thể hiểu IoT là mạng lưới kết nối mọi vật với mạng Internet có khả năng thu thập và trao đổi dữ liệu. Với những ưu điểm của mình, công nghệ IoT trở thành hạt nhân của cuộc cách mạng công nghiệp lần thứ 4 và là cơ sở tạo ra sự hội tụ giữa ứng dụng vật lý và ứng dụng kỹ thuật số. Sự phát triển của IoT không chỉ dẫn đến sự nhảy vọt về năng lực sản xuất của các doanh nghiệp mà còn góp phần quan trọng trong việc đem đến cho người dùng những sản phẩm và dịch vụ chưa từng có từ trước tới nay.

Đến với môn học thứ hai này, các bạn học viên sẽ được trang bị những kiến thức tổng quan về hệ thống IoT, trong đó vi điều khiển đóng một vai trò quan trọng. Thông qua việc rèn luyện các kỹ năng cơ bản về lập trình nhúng với vi điều khiển STM32, học viên sẽ bước đầu tiếp cận việc xây dựng hệ thống IoT trong thực tiễn.

Trong khóa học này, các chuyên gia về lập trình nhúng sẽ giới thiệu tới các bạn khái niệm ngôn ngữ lập trình vi điều khiển và lý do tại sao ngôn ngữ này lại phổ biến cho đến tận ngày nay dù đã tồn tại rất lâu. Từng bài học sẽ giúp các bạn hiểu hơn về các thành phần trong ngôn ngữ lập trình vi điều khiển như biến và kiểu dữ liệu, cấu trúc điều kiện, vòng lặp... và sự hiệu quả của con trỏ trong việc cấp phát, quản lý bộ nhớ. Ngoài ra, các bạn học viên sẽ được thực hành với bài tập lớn liên quan đến các ứng dụng IOT thực tế như mô phỏng công tắc cảm ứng của Lumi hay giao tiếp với các thiết bị khác trong hệ thống IoT.

Chúc các bạn học tốt!


MỤC TIÊU MÔN HỌC

Sau khi học xong môn này, học viên sẽ đạt được các chuẩn kiến thức, kỹ năng đầu ra như sau:

  • Hiểu được khái niệm về vạn vật kết nối (Internet of Things) và hệ thống nhúng (Embedded Systems).
  • Hiểu được các kiến thức cơ bản về vi điều khiển trong hệ thống nhúng.
  • Áp dụng kiến thức về lập trình C vào các bài toán thực tế trong lập trình vi điều khiển STM32.


TRẢI NGHIỆM HỌC TẬP

Để bắt đầu, các bạn nên dành một vài phút khám phá môn học và cấu trúc chung. Môn học sẽ có 3 phần với 15 bài học. Xuyên suốt các bài học và cuối mỗi học phần, các bài thực hành Lab và bài tập lớn (Project) sẽ giúp các bạn tăng cường việc ghi nhớ và vận dung lý thuyết đã học vào các bài toán thực tế. Để việc học tập được hiệu quả, hãy luôn trau dồi kiến thức, không ngừng học hỏi, nghiên cứu và lập cho mình một kế hoạch học tập hợp lý để hoàn thành khóa học một cách xuất sắc.

Trong thời gian học (dự kiến là 6 tuần), việc phân bổ tuần học là rất quan trọng. Nếu các bạn có bất cứ câu hỏi nào hãy kết nối với Mentor để được giải đáp.


CẤU TRÚC MÔN HỌC

Phần 1: Giới thiệu về IoT và vai trò của hệ thống nhúng

  • Bài 1 - Tổng quan về Internet of Things (IoT)
  • Bài 2 - Tổng quan về hệ thống nhúng và mạng truyền thông

Progress Test 1

Phần 2: Giới thiệu về lập trình vi điều khiển trong hệ thống nhúng

  • Bài 3 - Giới thiệu phần cứng và cài đặt phần mềm
  • Lab 1 - Thực hành với phần mềm STM32CubeIDE
  • Bài 4 - Tổng quan về lập trình vi điều khiển trong hệ thống nhúng
  • Lab 2 - Thực hành với bộ nhớ của chip STM32F401RE

Progress Test 2

Phần 3: Ứng dụng lập trình C vào vi điều khiển

  • Bài 5 - Chú thích, tiền xử lý và hàm scanf trong lập trình vi điều khiển
  • Lab 3 - Thực hành với tiền xử lý và hàm scanf trong lập trình vi điều khiển
  • Bài 6 - Biến và kiểu dữ liệu trong lập trình vi điều khiển
  • Lab 4 - Thực hành các thuật toán về biến và kiểu dữ liệu trong lập trình vi điều khiển
  • Bài 7 - Type Qualifiers trong lập trình vi điều khiển
  • Lab 5 - Thực hành các thuật toán về Type Qualifiers trong lập trình vi điều khiển
  • Bài 8 - Toán tử trong lập trình vi điều khiển
  • Lab 6 - Thực hành điều khiển tín hiệu đầu ra của các ngoại vi led và còi
  • Bài 9 - Cấu trúc rẽ nhánh trong lập trình vi điều khiển
  • Lab 7 - Thực hành với cấu trúc rẽ nhánh trong lập trình vi điều khiển
  • Bài 10 - Cấu trúc vòng lặp trong lập trình vi điều khiển
  • Lab 8 - Thực hành giao tiếp với cảm biến và xử lý tín hiệu từ nút nhấn
  • Bài 11 - Hàm trong lập trình vi điều khiển
  • Lab 9 - Điều khiển tín hiệu đầu ra của ngoại vi led với tín hiệu đầu vào từ các cảm biến
    Assignment 1 - Mô phỏng thiết bị công tắc cảm ứng của Lumi SmartHome
  • Bài 12 - Con trỏ và mảng trong lập trình vi điều khiển
  • Lab 10 - Thực hành với con trỏ và mảng trong lập trình vi điều khiển
  • Bài 13 - Chuỗi ký tự trong lập trình vi điều khiển
  • Lab 11 - Thực hành xử lý dữ liệu từ bản tin giao tiếp trong vi điều khiển
  • Bài 14 - Cấu trúc trong lập trình vi điều khiển
  • Lab 12 - Viết cấu trúc bản tin giao tiếp và xử lý dữ liệu từ PC simulator KIT STM32
  • Bài 15 - Trường bit và union trong lập trình vi điều khiển
  • Lab 13 - Quản lý thông số của các ngoại vi theo kiểu dữ liệu trường bit và Union

Assignment 2 - Giao tiếp với phần mềm mô phỏng PC Simulator KIT IoT


CHUYÊN GIA THIẾT KẾ VÀ PHẢN BIỆN MÔN HỌC

THIẾT KẾ MÔN HỌC: Nguyễn Tuấn Anh

  • Chairman/CTO tại Công ty Cổ phần Lumi Việt Nam
  • Kĩ sư ngành Kỹ thuật điều khiển và tự động hoá, Đại học Bách Khoa Hà Nội
  • 8 năm kinh nghiệm trong lĩnh vực nghiên cứu và phát triển sản phẩm Smarthome - IoT
  • Kiến trúc sư trưởng giải pháp nhà thông minh Lumi và hệ sinh thái Lumi Life

THIẾT KẾ MÔN HỌC: Nguyễn Huy Hoàng

  • MCU Leader tại Công ty Cổ phần Lumi Việt Nam
  • Kĩ sư ngành Kỹ thuật điều khiển và tự động hoá, Đại học Bách Khoa Hà Nội
  • 6 năm kinh nghiệm nghiên cứu và phát triển các thiết bị trong lĩnh vực IoT
  • Chuyên gia lập trình ngôn ngữ C, C++, C#, Java, Python
  • Online profile: https://www.linkedin.com/in/hoang-nguyen-huy-3b89551b2/

PHẢN BIỆN MÔN HỌC: Nguyễn Bình Minh

  • Nghiên cứu viên, Viện công nghệ Toyota (Toyota Technological Institute)
  • Tiến sỹ chuyên ngành Năng lượng tiên tiến, Đại học Tokyo
  • Thạc sĩ chuyên ngành Kỹ thuật điện, Đại học Tokyo
  • Lĩnh vực nghiên cứu: Lý thuyết điều khiển, điều khiển chuyển động, hệ thống đa tác tử, ô-tô điện
  • Dự án chính: Điều khiển chuyển động ô-tô điện, Điều khiển máy cắm chip sử dụng camera, Điều khiển chuỗi cung ứng,....

PHẢN BIỆN MÔN HỌC: Khuất Đức Anh

  • Quản lý và giảng viên khoa Điện cơ điện tử - Đại học Phương Đông
  • Giảng viên học viện Mạng phần cứng FPT Jetking Hà Nội
  • Bộ môn chuyên trách: Thực hành điện, điện tử, cơ điện tử, tự động hóa, robot và lập trình gia công chính xác trên máy CNC
  • Lĩnh vực chuyên môn: Lập trình C/C++ cho vi điều khiển AVR 8051 ARM ARDUINO, Java Desktop; các phần mềm hỗ thiết kế mạch, giả lập mạch điện tử số vi điều khiển, phần mềm hỗ trợ chuyên ngành cơ khí

NGUỒN HỌC LIỆU

Trong thời đại hiện nay, mỗi môn học đều có nhiều nguồn tài liệu liên quan kể cả sách in và online, FUNiX Way không quy định một nguồn học liệu cụ thể mà khuyến cáo để học viên chọn được nguồn phù hợp nhất cho mình. Trong quá trình học từ nhiều nguồn khác nhau theo lựa chọn cá nhân đó, khi sinh viên phát sinh câu hỏi thì sẽ được kết nối nhanh nhất với mentor để được giải đáp. Toàn bộ phần đánh giá bao gồm các câu hỏi trắc nghiệm, bài tập, dự án và thi vấn đáp do FUNiX thiết kế, xây dựng và thực hiện.

Các môn học của FUNiX không quy định bắt buộc tài liệu học tập, sinh viên có thể chủ động tìm và học từ bất kỳ nguồn nào phù hợp, kể cả sách in hay nguồn học liệu online (MOOC) hay các website. Việc sử dụng các nguồn đó do học viên chịu trách nghiệm và đảm bảo tuân thủ các chính sách của chủ sở hữu nguồn, trừ trường hợp họ có sự hợp tác chính thức với FUNiX. Nếu cần hỗ trợ, học viên có thể liên hệ phòng đào tạo FUNiX để được hướng dẫn.

Dưới đây là một số nguồn học liệu của môn học mà học viên có thể tham khảo sử dụng. Việc liệt kê nguồn dưới đây không nhất thiết hàm ý rằng FUNiX có sự hợp tác chính thức với chủ sở hữu của nguồn: Coursera, tutorialspoint, edX Training, or Udemy.


KÊNH PHẢN HỒI

FUNiX sẵn sàng đón nhận và trao đổi về mọi ý kiến góp ý, phản hồi liên quan đến học liệu qua email [email protected]