Arduino:
การบันทึกล็อก

วิธีทำ:

Arduino ไม่มีไลบรารี logging ในตัวเหมือนกับสภาพแวดล้อมอื่นๆ แต่คุณสามารถทำการ logging พื้นฐานไปยัง Serial console ได้โดยไม่ยุ่งยาก นี่คือตัวอย่างเริ่มต้นเพื่อให้คุณเริ่มต้นได้:

void setup() {
  // เริ่มการสื่อสารผ่าน serial ด้วยอัตราบอดที่กำหนด
  Serial.begin(9600);

  // รอจนกว่า serial port จะเชื่อมต่อ - จำเป็นเฉพาะบนบางบอร์ด
  while (!Serial) {
    ; // รอการเชื่อมต่อของพอร์ต serial จำเป็นสำหรับ USB แบบเนทีฟ
  }

  // Log ข้อความข้อมูลที่บอกว่ากระบวนการตั้งค่าเสร็จสมบูรณ์
  Serial.println("การตั้งค่าเสร็จสิ้น!");
}

void loop() {
  // Logger ง่ายๆ ที่พิมพ์เวลาทำงานทุกวินาที
  static unsigned long lastLogTime = 0;
  unsigned long currentMillis = millis();

  if (currentMillis - lastLogTime >= 1000) {
    lastLogTime = currentMillis;
    Serial.print("เวลาทำงาน (มิลลิวินาที): ");
    Serial.println(currentMillis);

    // ที่นี่คุณอาจเพิ่ม error logs, warnings, หรือข้อมูลอื่นๆ.
  }
  
  // ตรรกะโปรแกรมอื่นๆของคุณที่นี่...
}

ตัวอย่าง Serial Output:

การตั้งค่าเสร็จสิ้น!
เวลาทำงาน (มิลลิวินาที): 1000
เวลาทำงาน (มิลลิวินาที): 2000
เวลาทำงาน (มิลลิวินาที): 3000
...

ภาพรวมลึก:

ในอดีต, logging บนไมโครคอนโทรลเลอร์ไม่ง่ายเหมือนบนระบบปฏิบัติการที่แคบอนหน่อเท่าไร ทรัพยากรที่จำกัดหมายความว่าทุกไบต์มีความสำคัญ และนักพัฒนาต้องระมัดระวังไม่ให้ระบบถูกอุดตัน ด้วยการมาถึงของบอร์ดที่มีความสามารถมากขึ้นและแพลตฟอร์ม Arduino ทำให้กระบวนการง่ายขึ้น, logging จึงกลายเป็นเรื่องที่เข้าถึงได้มากขึ้น

ในขณะที่โค้ดข้างต้นแสดงการ logging ผ่าน Serial interface วิธีอื่น ๆ รวมถึงการเขียนไปยังการ์ด SD, การส่งข้อมูลผ่านเครือข่ายไปยังเซิร์ฟเวอร์ห่างไกล, หรือแม้แต่การแสดงผลไปยัง LCD ขนาดเล็ก

การใช้งานระบบ logging นำเสนอความพิจารณาเช่นการหมุนเวียน, ความรุนแรงของระดับ (info, debug, warning, error), และผลกระทบต่อประสิทธิภาพ บน Arduino, คุณอาจต้องระมัดระวังเรื่องข้อจำกัดของหน่วยความจำเมื่อ logging โครงสร้างข้อมูลที่ซับซ้อน สำหรับการ logging จากระยะไกล, ความปลอดภัยของแฟ้มบันทึกที่ถูกส่งก็เป็นประเด็นที่ต้องกังวล

โซลูชันที่ซับซ้อนยิ่งขึ้นเช่น Syslog, มาตรฐานการบันทึกที่ได้รับการยอมรับอย่างกว้างขวาง, มีอยู่ภายนอกโลกของ Arduino, แต่คุณสามารถรวมไลบรารีของบุคคลที่สามที่เสนอความสามารถคล้ายคลึงกันด้วยระดับความซับซ้อนและความต้องการทรัพยากรที่แตกต่างกันได้

ดูเพิ่มเติม: