กลับไปหน้ารวมไฟล์
temp-humidity-graphs-battery.md

กราฟิกแสดงสภาพอากาศ: เทอร์โมมิเตอร์หน้าจอสัมผัส

ในขณะที่จอ LCD แบบธรรมดาแสดงผลเป็นแค่ตัวหนังสือ TFT Graphing Monitor ตัวนี้พาเราไปอีกระดับเลยจ้า! โปรเจกต์นี้เราจะเก็บประวัติข้อมูลเซ็นเซอร์ไว้ใน array แล้ววาดกราฟเส้นแบบ real-time บนหน้าจอสีสวยๆ ให้เห็นเทรนด์การเปลี่ยนแปลงไปเลย

ekg_monitor_arduino_display_1772706773611.png

คณิตศาสตร์ของ Array เก็บประวัติ

จะวาดกราฟให้เลื่อนจากซ้ายไปขวาได้ต้องทำตามนี้:

  1. สร้าง Array: สร้าง array ให้มีขนาดเท่ากับความกว้างของหน้าจอเป็นพิกเซล (เช่น int tempHistory[320])
  2. เลื่อนข้อมูล: ทุกๆ นาที ให้อ่านค่าจากเซ็นเซอร์ DHT22 ก่อนจะบันทึกค่าใหม่ ใช้ for loop เลื่อนข้อมูลทุกจุดใน array ไปทางซ้ายหนึ่งช่อง ข้อมูลเก่าที่ช่อง 0 ก็จะหายไป
  3. บันทึกข้อมูลปัจจุบัน: เก็บค่าอุณหภูมิใหม่ลงไปในช่องสุดท้ายของ array

วงวาดกราฟ (The Draw Loop)

ในส่วนที่จัดการแสดงผล ให้วนลูปผ่าน array ทั้งหมด ใช้ฟังก์ชัน tft.drawLine() ลากเส้นเชื่อมจุด 0 ไปจุด 1, จุด 1 ไปจุด 2 ไปเรื่อยๆ อย่าลืมใช้ฟังก์ชัน map() เพื่อแปลงค่าอุณหภูมิ (เช่น 20°C ถึง 40°C) ให้เป็นพิกัด Y บนหน้าจอ (เช่น 200 พิกเซลถึง 10 พิกเซล) โดยต้องพลิกแกนด้วยนะ อยากให้อุณหภูมิสูงๆ อยู่บนๆ จอ!

อุปกรณ์ที่ต้องจัด

  • Arduino Mega หรือ ESP32: ต้องใช้ความจำเยอะหน่อยเพราะ array ใหญ่
  • จอ TFT Touchscreen Shield ขนาด 2.8" หรือ 3.5": เอาไว้เป็นผืนผ้าใบวาดกราฟ
  • เซ็นเซอร์ DHT22 / BME280: ตัวตรวจจับสภาพอากาศ
  • แบตเตอรี่ Lithium-Ion + วงจรป้องกัน: ถ้าอยากให้พกพาไปไหนได้

โปรเจกต์นี้เป็นจุดเริ่มต้นที่เจ๋งมากสำหรับการทำ Data Visualization บนไมโครคอนโทรลเลอร์เลยนะน้อง!

ข้อมูล Frontmatter ดั้งเดิม

title: "Temp and Humidity Monitor with Graphs"
description: "Visualize the climate! Build an advanced weather station that draws historical temperature graphs on a TFT touchscreen over time."
category: "Sensors & Environment"
difficulty: "Advanced"