Chủ đề STEM môn KHTN lớp 6–9 với ESP32: gợi ý theo lớp và bài mẫu thiết kế cốc giữ nhiệt
Gợi ý hoạt động STEM theo nội dung KHTN lớp 6–9 với ESP32 và cảm biến, bài mẫu lớp 8 thiết kế cốc giữ nhiệt theo 5 hoạt động của Công văn 3089, chương trình ghi nhiệt độ ra Excel.
Môn Khoa học tự nhiên (KHTN) lớp 6–9 có rất nhiều nội dung đo đạc: nhiệt độ, thời gian, tốc độ, âm thanh, áp suất, dòng điện. Một bộ ESP32 và vài cảm biến giúp học sinh tự đo nhiều lần, vẽ đồ thị từ số liệu thật và tự kiểm chứng điều đã học. Bài này dành cho giáo viên THCS: một bảng gợi ý hoạt động STEM theo từng lớp, và một bài mẫu hoàn chỉnh cho lớp 8 là thiết kế cốc giữ nhiệt, tổ chức theo năm hoạt động của Công văn 3089/BGDĐT-GDTrH, kèm chương trình ghi nhiệt độ ra số liệu dạng bảng để mở bằng Excel.
1. Cảm biến giúp gì cho giờ KHTN
- Nhiều số liệu trong thời gian ngắn: ghi nhiệt độ mỗi giây trong 30 phút là 1.800 điểm, vẽ được đường cong mà nhiệt kế đọc tay khó có.
- Học sinh tự kiểm chứng: so hai thiết kế, hai điều kiện thí nghiệm bằng số đo của chính nhóm mình.
- Tích hợp tự nhiên với Công nghệ, Tin học: lắp mạch, chạy chương trình, xử lý số liệu bằng bảng tính.
- Cảm biến chỉ là dụng cụ đo. Trọng tâm của giờ học vẫn là kiến thức, kỹ năng của bài KHTN; phần lắp mạch nên chuẩn bị sẵn hoặc giao cho câu lạc bộ STEM.
2. Gợi ý theo lớp

Tên bài và thứ tự chủ đề khác nhau giữa các bộ sách giáo khoa; giáo viên đối chiếu với bộ sách đang dạy để chọn thời điểm phù hợp. Nhiều hoạt động trong bảng có bài hướng dẫn riêng trên website (cảm biến âm thanh, áp suất, đo dòng điện, pin mặt trời mini); phần dưới đây đi trọn một bài mẫu.
3. Bài mẫu lớp 8: thiết kế cốc giữ nhiệt

Công văn 3089/BGDĐT-GDTrH ngày 14/8/2020 của Bộ GD&ĐT hướng dẫn tổ chức bài học STEM theo quy trình thiết kế kỹ thuật gồm năm hoạt động: xác định vấn đề; nghiên cứu kiến thức nền và đề xuất giải pháp; lựa chọn giải pháp; chế tạo mẫu, thử nghiệm và đánh giá; chia sẻ, thảo luận, điều chỉnh. Gợi ý phân bố thời gian cho bài cốc giữ nhiệt:
| Thời điểm | Hoạt động | Sản phẩm của học sinh |
|---|---|---|
| Tiết 1 (trên lớp) | Hoạt động 1, 2: giáo viên nêu tình huống, tiêu chí; học sinh ôn ba cách truyền nhiệt, tìm vật liệu dẫn nhiệt kém | Bản vẽ 2–3 phương án, danh sách vật liệu |
| Ở nhà (1 tuần) | Hoạt động 3 (đầu tuần, có thể qua nhóm lớp), làm cốc | Cốc giữ nhiệt hoàn chỉnh |
| Tiết 2 (trên lớp) | Hoạt động 4: đo đồng thời cốc của nhóm và cốc để trần trong 30 phút | Tệp số liệu, đồ thị |
| Tiết 3 (trên lớp) | Hoạt động 5: báo cáo, giải thích, đề xuất cải tiến | Bài trình bày, bản cải tiến |
Tiêu chí sản phẩm gợi ý: sau 30 phút nước còn trên 50 °C (đổ 80 °C, phòng khoảng 30 °C); dùng vật liệu tái chế; cầm được bằng tay, không đổ khi đặt trên bàn; có chỗ luồn đầu dò nhiệt.
4. Bộ đo nhiệt độ bằng ESP32
Chuẩn bị cho mỗi nhóm
- ESP32 DevKit V1 và dây USB nối máy tính
- Đầu dò nhiệt NTC 10 kΩ chống nước (vỏ thép, dây dài), điện trở 10 kΩ
- Breadboard và dây cắm
- Muốn đo hai cốc cùng lúc bằng một ESP32: thêm đầu dò và điện trở thứ hai ở chân GPIO33, nhân đôi phần đọc trong chương trình.

NTC là điện trở giảm khi nóng lên. Chương trình đo điện áp ở điểm giữa, tính ra điện trở của NTC rồi đổi sang độ C bằng phương trình hệ số B, giống bài biến trở, quang trở, NTC trên website.
Chương trình
// PYWORLD.VN - Máy ghi nhiệt độ cho giờ KHTN: ESP32 đọc đầu dò NTC 10 kΩ, in số liệu dạng CSV để dán vào Excel, Google Sheets
// PYWORLD.VN - Nối 3V3 → điện trở 10 kΩ → GPIO32 → đầu dò NTC chống nước → GND; bấm BOOT để bắt đầu hoặc dừng một lần ghi
// PYWORLD.VN - Mỗi lần ghi đánh số thứ tự; đổi CHU_KY_GHI_MS để đo nhanh hay chậm (mặc định 1 giây một số)
const int CHAN_NTC = 32;
const int CHAN_NUT = 0;
const int CHAN_DEN = 2;
const float R_CO_DINH = 10000.0; // Ôm, điện trở nối 3V3
const float NTC_R0 = 10000.0; // Ôm, điện trở NTC ở 25 °C
const float NTC_B = 3950.0; // hệ số B ghi trên đầu dò
const uint32_t CHU_KY_GHI_MS = 1000;
bool dangGhi = false;
int lanGhi = 0;
uint32_t batDau = 0, lanCuoi = 0;
float docNhietDo() {
uint32_t tong = 0;
for (int i = 0; i < 32; i++) tong += analogReadMilliVolts(CHAN_NTC);
float u = tong / 32.0f; // mV ở điểm giữa cầu phân áp
if (u < 5 || u > 3295) return NAN; // hở mạch hoặc chập: không có đầu dò
float rNtc = R_CO_DINH * u / (3300.0f - u);
return 1.0f / (1.0f / 298.15f + logf(rNtc / NTC_R0) / NTC_B) - 273.15f; // phương trình hệ số B
}
void setup() {
Serial.begin(115200);
pinMode(CHAN_NUT, INPUT_PULLUP);
pinMode(CHAN_DEN, OUTPUT);
analogSetAttenuation(ADC_11db);
Serial.println("# May ghi nhiet do: bam BOOT de bat dau ghi");
}
void loop() {
static bool truoc = HIGH;
static uint32_t lucBam = 0;
bool nut = digitalRead(CHAN_NUT);
if (nut == LOW && truoc == HIGH && millis() - lucBam > 300) {
lucBam = millis();
dangGhi = !dangGhi;
if (dangGhi) {
lanGhi++;
batDau = millis();
lanCuoi = batDau - CHU_KY_GHI_MS; // ghi ngay số đầu tiên ở giây 0
Serial.printf("# Lan ghi %d\nthoi_gian_s,nhiet_do_C\n", lanGhi);
} else {
Serial.printf("# Dung lan ghi %d sau %.0f giay\n", lanGhi, (millis() - batDau) / 1000.0);
}
}
truoc = nut;
digitalWrite(CHAN_DEN, dangGhi);
if (dangGhi && millis() - lanCuoi >= CHU_KY_GHI_MS) {
lanCuoi += CHU_KY_GHI_MS;
float t = docNhietDo();
if (isnan(t)) Serial.printf("%.0f,\n", (lanCuoi - batDau) / 1000.0); // ô trống: Excel bỏ qua điểm này
else Serial.printf("%.0f,%.1f\n", (lanCuoi - batDau) / 1000.0, t);
}
}
- Bấm nút BOOT trên mạch để bắt đầu một lần ghi; đèn xanh trên mạch sáng trong lúc ghi; bấm lần nữa để dừng.
- Mỗi giây in một dòng
thời gian (s),nhiệt độ (°C). Hai cột cách nhau dấu phẩy là định dạng CSV mà Excel, Google Sheets đọc được. - Đầu dò bị tuột (hở mạch) thì dòng đó để trống ô nhiệt độ, đồ thị sẽ bỏ qua điểm này.
Lấy số liệu ra bảng tính

- Trong Serial Monitor của Arduino IDE, bôi đen các dòng từ
thoi_gian_stới trước dòng# Dung, sao chép. - Dán vào Excel hoặc Google Sheets, dùng chức năng tách văn bản thành cột với dấu phân cách là dấu phẩy.
- Chèn biểu đồ đường (cột thời gian làm trục ngang). Có thể đổi giây ra phút bằng một cột chia 60.
Lưu ý: Excel cài đặt kiểu Việt Nam dùng dấu phẩy cho số thập phân, có thể đọc 80.0 thành chữ. Khi đó chọn dấu thập phân là dấu chấm trong bước tách cột, hoặc dùng Google Sheets.
5. Đọc kết quả và câu hỏi thảo luận

- Đường cong dốc nhất lúc đầu, rồi thoải dần: chênh lệch nhiệt độ với không khí càng lớn thì nhiệt truyền ra càng nhanh.
- Nắp đậy giảm mất nhiệt do đối lưu và bay hơi ở mặt nước; lớp xốp, lớp không khí giữa hai thành cốc giảm dẫn nhiệt; giấy bạc giảm bức xạ.
- Câu hỏi mở: đổ nước 90 °C thì thời gian xuống 50 °C có gấp đôi không? Cốc to hay cốc nhỏ giữ nhiệt lâu hơn? Học sinh đặt giả thuyết rồi đo để kiểm chứng.
6. An toàn trong giờ thực hành
- Giáo viên hoặc học sinh được phân công rót nước nóng; cốc đặt trên khay, xa mép bàn và xa máy tính.
- Chỉ nhúng phần đầu dò bọc thép vào nước; ESP32, breadboard để khô ráo. Mạch chạy 3,3–5 V qua cổng USB nên không nguy hiểm về điện.
- Không dùng nước sôi đang reo; 80 °C đủ cho thí nghiệm.
7. Xem thêm
- Quy trình thiết kế kỹ thuật trong dự án STEM: 5 hoạt động
- Biến trở, quang trở và nhiệt điện trở NTC: cách dùng và đọc bằng ESP32
- Các bài tiếp theo trong nhóm STEM cho giáo viên: dự án STEM THPT, câu lạc bộ STEM, phòng STEM, chấm điểm dự án STEM.
Xem thêm