การประกอบชิ้นส่วน (Mechanical assembly):
- ต่อเทอร์มิสเตอร์ (Thermistor) เข้ากับขา 5V และ A0 ไปเลยจ้า
- ต่อตัวต้านทาน (Resistor) 2 kOhm เข้ากับขา A0 และ GND

เขียนโค้ด Arduino กัน (Arduino coding).
โค้ดหลักๆ แบ่งเป็น 3 ส่วนใหญ่ๆ นะน้อง:
1. ส่วนวัดอุณหภูมิ (Thermometer):
- คำนวณค่า analog จาก Arduino ให้เป็นอุณหภูมิ (เซลเซียส) ด้วยวิธี least square regression ตัวป่วนนี่แหละ
2. ส่วนเชื่อมต่อ WiFi/เน็ตเวิร์ค:
- เชื่อมต่อกับ WiFi เน็ตเวิร์คของน้อง
- สร้างการเชื่อมต่อ http/https ไปหาเซิร์ฟเวอร์
- ส่งข้อมูลไปทาง URL
3. ส่วนแสดงผลบน LED matrix บอร์ด:
- แสดงผลอุณหภูมิบนเมทริกซ์ และให้ข้อความวิ่ง (scroll) ได้
โค้ด Arduino เต็มๆ อยู่ที่นี่นะ ไปก๊อปมาเล่นกันได้เลย อย่าลืมปรับค่าตาม WiFi ของน้องด้วยล่ะ

ล้วงลึกเทคนิคแบบช่างๆ (Technical Deep-Dive)
- เทอร์มิสเตอร์กับเทคนิคปรับเทียบหลายจุด (Thermistor Regression & Multi-Point Calibration Forensics):
- วิเคราะห์ด้วย Least-Square Regression: ตัวเทอร์มิสเตอร์มันไม่เชิงเส้นเหมือนเซนเซอร์ทั่วไปนะ มันเป็นแบบ NTC (อุณหภูมิสูง ความต้านทานต่ำ) วิธีลึกๆ คือต้องปรับเทียบด้วยมือหลายอุณหภูมิ (เย็น/ห้อง/ร้อน) สิ่งที่ต้องจับตามองคืออาร์เรย์
levels[]กับtemperature[]ใช้ regression map ค่า analog ดิบๆ ให้เป็นอุณหภูมิที่แม่นยำและทำซ้ำได้ - ความสมบูรณ์ของสัญญาณในวงจรแบ่งแรงดัน (Voltage-Divider Signal-Integrity): วงจรเราใช้ตัวต้านทานอ้างอิง $2\text{k}\Omega$ ต้องมั่นใจว่าโหนด $A0$ เทียบกับแรงดัน $5\text{V}$ นั้นเสถียร เพื่อให้การเปลี่ยนแปลงความต้านทานจากความร้อนถูกจับด้วยความละเอียดสูงสุด ก่อนจะส่งข้อมูลเป็นแพ็กเก็ต WiFi ออกไป
- วิเคราะห์ด้วย Least-Square Regression: ตัวเทอร์มิสเตอร์มันไม่เชิงเส้นเหมือนเซนเซอร์ทั่วไปนะ มันเป็นแบบ NTC (อุณหภูมิสูง ความต้านทานต่ำ) วิธีลึกๆ คือต้องปรับเทียบด้วยมือหลายอุณหภูมิ (เย็น/ห้อง/ร้อน) สิ่งที่ต้องจับตามองคืออาร์เรย์
- การจัดการเชื่อมต่อ WiFi และส่งข้อมูลขึ้นคลาวด์ (WiFi-Link & Cloud-Telemetry Orchestration):
- วินิจฉัยการส่งข้อมูลแบบ HTTP-GET: ข้อมูลจะถูกแปลงเป็นสตริงใน URL (รหัสลับ + ค่า) ต้องสร้างการเชื่อมต่อที่ปลอดภัยไปยังเซิร์ฟเวอร์ สิ่งที่ต้องตรวจสอบคือ "ความแข็งแรงของสัญญาณ" เพื่อให้การร้องขอแบบอะซิงโครนัสไม่ไปขัดจังหวะลูปการอัพเดท LED matrix ตอนที่เน็ตเวิร์คมีปัญหา
- ตรรกะการแสดงผลบนเมทริกซ์เลื่อน (Scrolling-Matrix Visual Logistics): LED matrix บน Uno R4 WiFi นี่คือหน้าจอแสดงผลหลักเลย เราใช้ไลบรารี่
Arduino_LED_Matrixควบคุมการแสดงผล ให้ข้อความวิ่งด้วยความเร็วและความชัดเจนที่กำหนดได้ เป็นเหมือนจุดสังเกต visual anchor สำหรับข้อมูลที่ส่งขึ้นคลาวด์นั่นเอง
สร้างและแสดงกราฟ
- ล็อกอินเข้าใช้งานระบบ
- ตั้งค่าชุดข้อมูล (น้องจะต้องคัดลอกรหัสลับจากระบบไปใส่ในโค้ด Arduino)
- ตั้งค่ากราฟให้สวยงาม
โค้ด Python สำหรับสร้างกราฟอยู่ที่นี่ เอาไปรันบนเครื่องตัวเองหรือเซิร์ฟเวอร์ได้เลยจ้า

วิศวกรรมและการลงมือทำ (Engineering & Implementation)
นิติวิทยาศาสตร์ระดับเครือข่ายแบบยั่งยืน (Network-Layer Persistence Forensics):
- ฮิวริสติกส์การเชื่อมต่อใหม่ (Reconnection Heuristics): ถ้าเกิดจุดเชื่อมต่อ (AP) ล่ม ระบบเรามีขั้นตอนวินิจฉัยแบบเรียกตัวเองเพื่อเชื่อม WiFi ใหม่ นิติวิทย์จะโฟกัสไปที่จังหวะเวลาในการจับมือกันของ SSID เพื่อลดการสูญเสียแพ็กเก็ตข้อมูลให้น้อยที่สุดในชุดข้อมูลชั่วคราว 2MINLOG
- การจัดการข้อมูลฝั่งคลาวด์ (Cloud-side Data Orchestration): การลงมือทำใช้การสร้างภาพด้วย Python นิติวิทย์จะเกี่ยวข้องกับโค้ดเบส
server.pyและ2minlog-examplesเพื่อให้แน่ใจว่าแพ็กเก็ตข้อมูลที่ถูกกลืนเข้าไปในคลาวด์ $(\text{Dataset ID})$ นั้นถูกแยกวิเคราะห์อย่างถูกต้องเป็นกราฟประวัติศาสตร์สำหรับการวัดระยะไกลจากแท็บเล็ตหลายเครื่อง
ความเป็นโมดูลาร์ของฮาร์ดแวร์และความสมบูรณ์ของโครงสร้าง (Hardware Modularity & Structural Integrity):
- การประกอบนั้นกระทัดรัด อาศัยอุปกรณ์ต่อพ่วงที่มากับบอร์ด R4 นิติวิทย์จะโฟกัสไปที่การแยกความร้อนของเทอร์มิสเตอร์จากคลื่นความร้อนที่แผ่ออกมาจากตัว MCU เอง $(\text{ชิป WiFi บนบอร์ด})$ เพื่อให้แน่ใจว่ากราดิเอนต์อุณหภูมิแวดล้อมที่ตรวจจับได้นั้นไม่ถูกเบี่ยงเบนด้วยอุณหพลศาสตร์ภายในของซิลิกอน
น้องต้องทำการปรับเทียบระบบนะจ๊ะ นั่นคือ หาความสัมพันธ์ระหว่างระดับแรงดันไฟฟ้ากับอุณหภูมิ วัดอุณหภูมิร้อน เย็น และอุณหภูมิห้องด้วยเทอร์โมมิเตอร์อ้างอิง แล้วไปปรับอาร์เรย์ temperature[] และ levels[] ในโค้ด Arduino ให้แม่นยำ
พอเสร็จแล้ว น้องก็สามารถแสดงกราฟเป็นหน้าแรก หรือจะเอาไปใช้กับของอย่างเช่น แท็บเล็ต Android เก่าๆ สักเครื่องก็ได้ เอาไว้โชว์กราฟเท่ๆ
(ถ้าน้องไม่อยากใช้แพลตฟอร์ม 2MINLOG ก็สามารถตั้งเซิร์ฟเวอร์รันในเครื่องตัวเองได้นะ โค้ดตัวอย่างมีให้)
ส่วนขั้นตอนแบบละเอียดยิบก็มีให้ศึกษาเช่นกัน ไปหาอ่านได้เลย