กลับสู่หน้าบทเรียน IoT
ใบงานฝึกปฏิบัติที่ 1: ระบบไฟกะพริบ Non-blocking Multitasking
31910-2012 (ปวส.) - อินเทอร์เน็ตเพื่อสรรพสิ่ง (Internet of Things - IoT)
คะแนนเต็ม: 10 คะแนน
เวลาปฏิบัติ: 3 คาบ
ชื่อ-สกุล: ................................................................
รหัสนักศึกษา: .................................
ระดับ: ปวส. กลุ่ม: ........... วันที่: ....../....../......
คำสั่งปฏิบัติการ:
  1. ต่อวงจรไมโครคอนโทรลเลอร์ (Arduino / ESP32) ร่วมกับ LED สีแดงและตัวต้านทาน 220 โอห์ม
  2. เขียนโปรแกรมภาษา C++ ควบคุมให้ LED กะพริบทุกๆ 1 วินาที โดยห้ามใช้ฟังก์ชัน delay() แต่ให้ใช้ฟังก์ชัน millis()
  3. เพิ่มสัญญาณไฟ LED สีเขียวอีก 1 ดวง ให้กะพริบอิสระทุกๆ 350 มิลลิวินาที พร้อมส่งข้อความรายงานสถานะผ่าน Serial Monitor
ผลการทดลองและการออกแบบโปรแกรม:
เกณฑ์การประเมิน (Rubric) ดีมาก (3) พอใช้ (2) ปรับปรุง (1) คะแนนที่ได้
1. การต่อวงจรอิเล็กทรอนิกส์และความถูกต้องของอุปกรณ์ ถูกต้อง สวยงาม แน่นหนา ต่อวงจรทำงานได้แต่ไม่เรียบร้อย ต่อวงจรผิดพลาด มีความเสี่ยง ..... / 3
2. โครงสร้างโปรแกรม Non-blocking (millis) ถูกต้อง ไม่บล็อกเวลา ทำงานอิสระ มีโครงสร้าง millis แต่จังหวะคลาดเคลื่อน ยังแอบใช้ delay() ในลูป ..... / 4
3. คุณธรรม จริยธรรม และการรักษาความสะอาดโต๊ะปฏิบัติการ ตรงต่อเวลา ปฏิบัติตามกฎความปลอดภัย เก็บอุปกรณ์เรียบร้อย ไม่เก็บอุปกรณ์ตามกำหนด ..... / 3
[เกร็ดเฉลยสำหรับครูผู้สอน]: ตรวจสอบว่านักศึกษาเก็บค่าตัวแปรเวลาในรูปแบบ unsigned long เพื่อป้องกันปัญหาตัวเลขล้น (Integer Overflow) เมื่อระบบทำงานติดต่อกันเกิน 50 วัน
ใบงานฝึกปฏิบัติที่ 2: ระบบถอดรหัสคำสั่ง Serial Command Parser
31910-2012 (ปวส.) - อินเทอร์เน็ตเพื่อสรรพสิ่ง (Internet of Things - IoT)
คะแนนเต็ม: 10 คะแนน
เวลาปฏิบัติ: 3 คาบ
ชื่อ-สกุล: ................................................................
รหัสนักศึกษา: .................................
ระดับ: ปวส. กลุ่ม: ........... วันที่: ....../....../......
คำสั่งปฏิบัติการ:
  1. กำหนดค่าความเร็ว Baud rate 115200 bps สำหรับ Serial Port
  2. เขียนโปรแกรมรับคำสั่งสตริงจาก Serial Monitor ได้แก่ RELAY:ON, RELAY:OFF และ STATUS
  3. เมื่อสั่ง STATUS ระบบต้องส่งกลับข้อความยืนยันสถานะพร้อมค่า Uptime (ระยะเวลาที่บอร์ดเปิดเครื่องมา)
ผลการทดสอบคำสั่งและการทำงาน:
เกณฑ์การประเมิน (Rubric) ดีมาก (3-4) พอใช้ (2) ปรับปรุง (1) คะแนนที่ได้
1. การรับข้อมูลและตัดสตริงคำสั่ง (Parsing & Trim) ตัดช่องว่างได้ ไม่เพี้ยนเมื่อมี Newline อ่านคำสั่งได้แต่รับคำสั่งซ้อนไม่ได้ โปรแกรมค้างเมื่อรับสตริงยาว ..... / 4
2. ความถูกต้องของการตอบสนองฮาร์ดแวร์ ขับสัญญาณตรงตามเงื่อนไข ส่ง ACK ชัดเจน สถานะเปลี่ยนแต่ไม่มีข้อความตอบรับ คำสั่งไม่ตรงกับขาเอาต์พุต ..... / 3
3. จิตพิสัยและวินัยในการทดลอง ปฏิบัติงานตามขั้นตอน ปลอดภัย มีความรับผิดชอบ ส่งงานตรงเวลา ขาดสมาธิในการทดลอง ..... / 3
ใบงานฝึกปฏิบัติที่ 3: ระบบตรวจวัดอุณหภูมิและความชื้นสัมพัทธ์ (DHT22)
31910-2012 (ปวส.) - อินเทอร์เน็ตเพื่อสรรพสิ่ง (Internet of Things - IoT)
คะแนนเต็ม: 10 คะแนน
เวลาปฏิบัติ: 3 คาบ
ชื่อ-สกุล: ................................................................
รหัสนักศึกษา: .................................
ระดับ: ปวส. กลุ่ม: ........... วันที่: ....../....../......
คำสั่งปฏิบัติการ:
  1. ต่อเซนเซอร์ DHT22 (AM2302) เข้ากับบอร์ด ESP32 โดยต่อตัวต้านทาน Pull-up 10k โอห์ม ระหว่างขา DATA และ VCC (3.3V)
  2. เขียนโปรแกรมอ่านค่า Temperature (*C) และ Humidity (%RH) ทุก 2 วินาที พร้อมจัดการกรณีอ่านค่าไม่สำเร็จ (NaN Check)
  3. สร้างเงื่อนไข: หากอุณหภูมิสูงเกิน 32 *C หรือความชื้นสัมพัทธ์สูงเกิน 80% ให้ขับสัญญาณแจ้งเตือน LED สีแดง
ตารางบันทึกผลการทดสอบค่าเซนเซอร์:
เกณฑ์การประเมิน (Rubric) ดีมาก พอใช้ ปรับปรุง คะแนนที่ได้
การต่อวงจรและค่าสัญญาณไฟฟ้าเสถียร 3 คะแนน 2 คะแนน 1 คะแนน ..... / 3
ความถูกต้องของอัลกอริทึมและการคำนวณ Heat Index 4 คะแนน 3 คะแนน 1 คะแนน ..... / 4
วินัยและความปลอดภัยของระบบไฟฟ้า 3 คะแนน 2 คะแนน 1 คะแนน ..... / 3
ใบงานฝึกปฏิบัติที่ 4: การวัดระยะทางด้วยคลื่นเสียง Ultrasonic HC-SR04
31910-2012 (ปวส.) - อินเทอร์เน็ตเพื่อสรรพสิ่ง (Internet of Things - IoT)
คะแนนเต็ม: 10 คะแนน
เวลาปฏิบัติ: 3 คาบ
ชื่อ-สกุล: ................................................................
รหัสนักศึกษา: .................................
ระดับ: ปวส. กลุ่ม: ........... วันที่: ....../....../......
คำสั่งปฏิบัติการ:
  1. ต่อวงจรเซนเซอร์ HC-SR04 ขา Trig เข้า GPIO5 และ Echo เข้า GPIO18 ผ่านวงจรแบ่งแรงดัน (Voltage Divider) ลงมา 3.3V
  2. ใช้ฟังก์ชัน pulseIn() จับเวลาความกว้างพัลส์สะท้อนกลับ และแปลงเป็นหน่วยเซนติเมตรตามความเร็วเสียง 340 m/s
  3. ต่อ Buzzer แจ้งเตือน 3 ระดับ: ระยะ > 30 ซม. (เงียบ), 15 - 30 ซม. (ดังเป็นจังหวะช้า), < 15 ซม. (ดังต่อเนื่อง)
ผลการทดสอบการวัดเทียบกับไม้บรรทัดจริง:
ใบงานฝึกปฏิบัติที่ 5: แดชบอร์ดกราฟิกผ่านจอแสดงผล OLED SSD1306 (I2C)
31910-2012 (ปวส.) - อินเทอร์เน็ตเพื่อสรรพสิ่ง (Internet of Things - IoT)
คะแนนเต็ม: 10 คะแนน
เวลาปฏิบัติ: 3 คาบ
ชื่อ-สกุล: ................................................................
รหัสนักศึกษา: .................................
ระดับ: ปวส. กลุ่ม: ........... วันที่: ....../....../......
คำสั่งปฏิบัติการ:
  1. ต่อจอแสดงผล OLED 0.96 นิ้วเข้ากับบอร์ด ESP32 ผ่านบัส I2C (ขา SDA = GPIO21, SCL = GPIO22)
  2. สแกนหา I2C Address ด้วยสคริปต์ I2C Scanner (ยืนยัน Address 0x3C หรือ 0x3D)
  3. ออกแบบหน้าจอ UI: แสดงเส้นแบ่ง Layout, ไอคอนสถานะ Wi-Fi, ค่าตัวเลขขนาดใหญ่ และแถบ Progress Bar ระดับความเข้มแสง
แบบร่าง UI หน้าจอที่ออกแบบ:
ใบงานฝึกปฏิบัติที่ 6: การเชื่อมต่อ Wi-Fi และระบบเตือนภัย LINE Notify API
31910-2012 (ปวส.) - อินเทอร์เน็ตเพื่อสรรพสิ่ง (Internet of Things - IoT)
คะแนนเต็ม: 10 คะแนน
เวลาปฏิบัติ: 3 คาบ
ชื่อ-สกุล: ................................................................
รหัสนักศึกษา: .................................
ระดับ: ปวส. กลุ่ม: ........... วันที่: ....../....../......
คำสั่งปฏิบัติการ:
  1. เชื่อมต่อ ESP32 เข้ากับ Wi-Fi Access Point ในห้องปฏิบัติการ พร้อมแสดงผล IP Address ทาง Serial Monitor
  2. ขอรับ Personal Access Token จากบริการ LINE Notify และเก็บไว้ในตัวแปรค่าคงที่
  3. เขียนฟังก์ชันส่ง HTTPS POST Request ไปยัง endpoint https://notify-api.line.me/api/notify เมื่อตรวจพบการกดปุ่มฉุกเฉิน
ภาพหลักฐานข้อความแจ้งเตือนที่ปรากฏในสมาร์ตโฟน:
ใบงานฝึกปฏิบัติที่ 7: การสื่อสาร Telemetry ด้วยโปรโตคอล MQTT
31910-2012 (ปวส.) - อินเทอร์เน็ตเพื่อสรรพสิ่ง (Internet of Things - IoT)
คะแนนเต็ม: 10 คะแนน
เวลาปฏิบัติ: 3 คาบ
ชื่อ-สกุล: ................................................................
รหัสนักศึกษา: .................................
ระดับ: ปวส. กลุ่ม: ........... วันที่: ....../....../......
คำสั่งปฏิบัติการ:
  1. เชื่อมต่อบอร์ด ESP32 เข้ากับ Public MQTT Broker (broker.hivemq.com พอร์ต 1883)
  2. Publish ข้อมูลอุณหภูมิและความชื้นในรูปแบบ JSON Payload ไปยัง Topic ประจำกลุ่มนักศึกษา ทุก 5 วินาที
  3. Subscribe รับข้อความจาก Topic ควบคุม เพื่อเปิด-ปิดหลอดไฟ LED จากระยะไกลผ่าน MQTT Client (MQTTX หรือเว็บ)
แผนภาพหัวข้อ Topic และผลการรับ-ส่งข้อมูล JSON:
ใบงานฝึกปฏิบัติที่ 8: โครงงานสมาร์ตฟาร์ม/สมาร์ตโฮม บน Blynk IoT Dashboard
31910-2012 (ปวส.) - อินเทอร์เน็ตเพื่อสรรพสิ่ง (Internet of Things - IoT)
คะแนนเต็ม: 10 คะแนน
เวลาปฏิบัติ: 3 คาบ
ชื่อ-สกุล: ................................................................
รหัสนักศึกษา: .................................
ระดับ: ปวส. กลุ่ม: ........... วันที่: ....../....../......
คำสั่งปฏิบัติการ:
  1. สร้าง Template บน Blynk Cloud พร้อมกำหนด Virtual Pin สำหรับ Sensor Data และ Relay Control
  2. เขียนโปรแกรมเชื่อมต่อ ESP32 เข้ากับ Blynk Platform โดยใช้ BlynkTimer จัดการเวลาแบบไม่หน่วงลูป
  3. ทดสอบสั่งการเปิดปั๊มน้ำจำลองผ่านสมาร์ตโฟน พร้อมดูแนวโน้มค่าความชื้นและอุณหภูมิแบบ Real-time บน Gauge & Chart
สรุปผลการทำงานของระบบและภาพถ่ายการทดสอบ:
เกณฑ์การประเมินโครงงาน (Capstone Rubric) ดีมาก (4-5) พอใช้ (2-3) ปรับปรุง (1) คะแนนที่ได้
1. ความสมบูรณ์ของระบบฮาร์ดแวร์และวงจรต่อพ่วง อุปกรณ์ทำงานครบทุกส่วน มีฟิวส์/ป้องกัน ทำงานได้ ขาดการจัดสายที่เป็นระเบียบ วงจรมีปัญหา ติดๆ ดับๆ ..... / 5
2. ความเสถียรของการเชื่อมต่อ Cloud และแอปมือถือ ตอบสนองรวดเร็ว มีระบบ Reconnect อัตโนมัติ ทำงานได้ เมื่อ Wi-Fi หลุดต้องกดรีเซ็ต ส่งข้อมูลไม่ต่อเนื่อง หลุดบ่อย ..... / 5