Slide Giới thiệu môn học Nhập Môn Lập Trình IoT của TS. Cao Xuân Nam bao quát toàn bộ quy chế vận hành, mục tiêu đào tạo và tiêu chuẩn đánh giá của học kỳ:
Tr. 1-4
Thông Tin Môn Học & Giảng Viên
Giảng viên phụ trách: TS. Cao Xuân Nam. Cổng Moodle môn học: courses.fit.hcmus.edu.vn.
Tr. 5-6
Khung Đào Tạo 11 Buổi
Từ linh kiện cơ bản, Arduino UNO R3, ESP, MQTT, Node-RED đến thiết kế 3D và Cloud IoT.
Tr. 7-8
Quy Định Thang Điểm & Đồ Án
Labs 20%, Proposal 15%, Thi lý thuyết 25%, Đồ án cuối kỳ 40% (+1.0 điểm bonus phần cứng).
Tr. 9-13
Liêm Chính & Tài Liệu Tham Khảo
Quy định trung thực (QĐ 1476/QĐ-KHTN), sử dụng bộ kit trên lớp & giáo trình Build Home Automation.
Văn bản Quy định Đồ án cuối kỳ (Capstone Project) đóng vai trò kim chỉ nam giúp các nhóm đạt điểm tối đa (40% điểm tổng môn học):
Tr. 1
Quy Định Nhóm & Thưởng Phần Cứng
Nhóm 2-3 bạn. Khuyến khích làm sản phẩm thật có vỏ hộp 3D để nhận điểm thưởng tối đa +1.0đ vào điểm tổng kết.
Tr. 1-2
2 Luồng Cốt Lõi (Core Pipeline)
Luồng 1 (Input → Web): Cảm biến đo đạc gửi lên Dashboard. Luồng 2 (Web → Output): Nút bật tắt thiết bị từ xa qua Relay.
Tr. 3-4
Bảng 12 Tiêu Chí Nâng Cao
Tối đa 4.0 điểm nâng cao: Web Responsive (1.0đ), Database Cloud (1.0đ), MQTT an toàn, Deep Sleep, OTA, Soft AP,...
Tr. 4
Công Thức Tính Điểm Cá Nhân (Hệ Số K)
Điểm cá nhân = Điểm nhóm × Hệ số vấn đáp K (0.0 đến 1.0). Đảm bảo công bằng và đánh giá đúng năng lực từng bạn.
Slide 1.1: Introduce to the Arduino cung cấp kiến thức nền tảng về phần cứng bo mạch Arduino UNO R3, môi trường lập trình IDE và cấu trúc Breadboard:
Tr. 1-4
Bo Mạch Arduino UNO R3
Vi điều khiển ATmega328P, Reset switch, cổng USB, 14 chân Digital (0-13), 6 chân Analog Input (A0-A5), nhóm chân nguồn 5V/3.3V/GND.
Tr. 5-7
Hệ Thống Linh Kiện Bộ Kit
LED đơn, RGB LED, Push Button, Buzzer (Active/Passive), 7-Segment, Photoresistor (CdS), Ultrasonic, PIR, DHT11, Servo, Relay, Shift Register 74HC595.
Tr. 8
Nguyên Lý Test Board (Breadboard)
Cấu trúc 4 vùng: Vùng 1 & 4 (đường ray nguồn liên thông dọc theo cột), Vùng 2 & 3 (các hàng 5 lỗ liên thông ngang theo hàng). Chú ý chống đoản mạch.
Tr. 9-12
Arduino IDE & Chương Trình Đầu Tiên
Thao tác Verify (Biên dịch) & Upload (Nạp code), Serial Monitor. Hàm setup() chạy 1 lần và loop() lặp vô hạn, lệnh Serial.begin(9600).
Slide 1.2: LED (Light Emitting Diode) hướng dẫn chi tiết cách mắc LED, tính điện trở hạn dòng, dự án Đèn giao thông và kỹ thuật điều chế xung PWM:
Tr. 1-3
Cấu Tạo & Nguyên Lý LED
Diode phát quang hoạt động ở chế độ phân cực thuận. Chân dài là Anode (cực dương +), chân ngắn là Cathode (cực âm -). Tuyệt đối không cắm trực tiếp vào 5V không qua trở.
Tr. 4-5
Điện Trở & Công Thức Tính Trở
Công thức định luật Ohm tính điện trở hạn dòng: $R = \frac{V_s - V_f}{I_f}$. Với $V_s=5V$, $V_f \approx 2V$, $I_f \approx 15-20mA \Rightarrow R \approx 150-220\Omega$ (chọn trở chuẩn 220Ω).
Tr. 6-9
Mạch Nguồn & Đèn Giao Thông
Mạch 1: Nguồn tĩnh 3.3V qua trở 220Ω vào GND. Mạch 2: Chân Digital 8 điều khiển bật tắt qua code. Dự án Traffic Light kết hợp 3 LED Đỏ, Vàng, Xanh.
Tr. 10-13
Điều Xung PWM (Pulse Width Modulation)
Sử dụng các chân có dấu ngã ~ (3, 5, 6, 9, 10, 11). Hàm analogWrite(ledPin, 0-255) để thay đổi chu kỳ nhiệm vụ (duty cycle) tạo hiệu ứng sáng dần / mờ dần (Fade-in & Fade-out).
Slide 1.13: 7-Segment Display làm rõ cấu trúc 8 đoạn LED (a-g, dp), phân biệt hai loại cực chung và giải thuật đếm hiển thị số 0 đến 9:
Tr. 1-3
Cấu Trúc & Phân Loại 7 Đoạn
Tập hợp 8 phân đoạn LED (a, b, c, d, e, f, g và dp). Phân loại: Common Anode (dương chung, chân chung nối 3.3V/5V, LOW bật) vs Common Cathode (âm chung, chân chung nối GND, HIGH bật).
Tr. 4-5
Sơ Đồ Chân Datasheet (10 Chân)
Linh kiện có 10 chân (hàng trên 5 chân, hàng dưới 5 chân). Chân 3 & 8 là chân nối chung COM/GND. Các chân 1 (e), 2 (d), 4 (c), 5 (dp), 6 (b), 7 (a), 9 (f), 10 (g).
Tr. 6-7
Sơ Đồ Kết Nối Mạch Mẫu
Kết nối các chân điều khiển phân đoạn vào các chân Digital Arduino qua điện trở hạn dòng 220Ω để cân bằng độ sáng và bảo vệ từng thanh LED.
Tr. 8
Thuật Toán Đếm Số 0 Đến 9
Bảng giải mã trạng thái bật/tắt (HIGH/LOW) cho từng chữ số 0-9. Viết hàm hiển thị tuần tự từng số và delay để quan sát quá trình đếm số.