SET & RESET ยืดอายุการใช้งาน ประหยัดพลังงาน และแก้ค้างให้กลับมาทำงานได้ตามปกติ – Dustation dev kit V1.4

SET & RESET ยืดอายุการใช้งาน ประหยัดพลังงาน และแก้ค้างให้กลับมาทำงานได้ตามปกติ – Dustation dev kit V1.4

เริ่มต้นเนื้อหา

Dustation dev kit V1.4 | SET and RESET

SET สามารถสลับการเข้าสู่โหมดพักและเริ่มใหม่ได้ ช่วยยืดอายุการใช้งาน และการประหยัดพลังงาน

RESET เมื่อต้องการเริ่มเซ็นเซอร์ใหม่หรือแก้ปัญหาหลังจากทำงานผิดปกติ โดยใช้สัญญาณ LOW ชั่วคราวเพื่อรีเซ็ต ช่วยแก้ปัญหาการค้างให้กลับมาทำงานได้ตามปกติ

 


 

ตัวอย่างต่อไปนี้จะเป็นการสั่ง PMS7003 Wake Up / Sleep โดยใช้ SET [ESP32 pin18]

 

สำหรับ Dustation dev kit v1.4  :  เมื่อบัดกรีเชื่อมต่อจุด SET , ขา set จะเชื่อมต่อกับขา D19 ของ ESP32

Set pin /TTL level@3.3V, high level คือ สถานะทำงานปกติ, low level คือโหมดหยุดการทำงาน

#include "PMS.h"
PMS pms(Serial2);
PMS::DATA data;
int set = 19;

void setup()
{
  Serial2.begin(9600);   // GPIO1, GPIO3 (TX/RX pin on ESP-12E Development Board)
  Serial.begin(9600);  // GPIO2 (D4 pin on ESP-12E Development Board)
  pinMode(set, OUTPUT);
}

void loop()
{
  Serial.println("Waking up, wait 30 seconds for stable readings...");
  digitalWrite(set, HIGH);  //Setting hardware Waking up
  delay(30000);
  
  Serial.println("Send read request...");
  pms.requestRead();
  
  Serial.println("Wait max. 1 second for read...");
  if (pms.readUntil(data))
  {
    Serial.print("PM 1.0 (ug/m3): ");
    Serial.println(data.PM_AE_UG_1_0);

    Serial.print("PM 2.5 (ug/m3): ");
    Serial.println(data.PM_AE_UG_2_5);

    Serial.print("PM 10.0 (ug/m3): ");
    Serial.println(data.PM_AE_UG_10_0);

    Serial.println();
  }
  else
  {
    Serial.println("No data.");
  }
  Serial.println("Going to sleep for 60 seconds.");
  digitalWrite(set, LOW);  //Setting hardware sleep
  delay(60000);
}

 

 


Pin RESET ของ PMS7003

ใช้สำหรับรีเซ็ตเซ็นเซอร์ฝุ่นให้กลับสู่สถานะเริ่มต้น

กรณีที่ควรใช้ Pin RESET

  1. เริ่มต้นการทำงานใหม่ → ใช้เพื่อให้เซ็นเซอร์กลับสู่สถานะเริ่มต้นเมื่อเริ่มต้นระบบใหม่
  2. รีเซ็ตหลังจากเกิดข้อผิดพลาด → หากเซ็นเซอร์ค้างหรืออ่านค่าไม่ได้ อาจใช้ RESET เพื่อกู้คืนการทำงาน

แนวทางการใช้งาน

  • Pin RESET เป็น Active Low (LOW = รีเซ็ต, HIGH = ทำงานปกติ)
  • ควรดึง RESET เป็น HIGH เป็นค่าเริ่มต้น
  • หากต้องการรีเซ็ต → ดึง LOW ค้าง 100ms แล้วปล่อย HIGH

ตัวอย่างโค้ด RESET

#define PMS7003_RESET_PIN 18 // กำหนดขารีเซ็ต (เลือกขาตามบอร์ดที่ใช้)

void setup() {
pinMode(PMS7003_RESET_PIN, OUTPUT);
digitalWrite(PMS7003_RESET_PIN, HIGH); // ให้เซ็นเซอร์ทำงานปกติ
Serial.begin(9600);
}

void resetPMS7003() {
Serial.println("Resetting PMS7003...");
digitalWrite(PMS7003_RESET_PIN, LOW); // ดึง LOW เพื่อรีเซ็ต
delay(100); // รอ 100ms
digitalWrite(PMS7003_RESET_PIN, HIGH); // ปล่อยให้เซ็นเซอร์กลับมาทำงาน
delay(1000); // รอให้เซ็นเซอร์พร้อมทำงานใหม่
}

void loop() {
if (Serial.available()) { 
char c = Serial.read();
if (c == 'r') { // พิมพ์ 'r' เพื่อรีเซ็ตจาก Serial Monitor
resetPMS7003();
}
}
}

 

 


ผลการตอบสนองการตั้งค่าขา SET [ESP32 pin19] และ RESET [ ESP32 pin18]

ผลการตอบสนองของเซ็นเซอร์นี้ไม่ได้ระบุโดย Datasheet ของผู้ผลิตทั้งหมด แต่ตารางนี้แสดงให้เห็นถึงผลการตอบสนองจริงของเซ็นเซอร์ในสภาวะการตั้งค่าในแบบต่างๆ ที่เป็นไปได้ทั้งหมด เพื่อให้มองเห็นภาพง่ายขึ้น และเพื่อใช้ประกอบเป็นข้อมูลในการพัฒนา

การตั้งค่าสำหรับ Dustation Dev Kit V1.4

ใช้โค้ดเพื่อทดสอบและสังเกตการทำงานของเซ็นเซอร์ PMS7003

int set = 19;
int reset = 18;

void setup() {
pinMode(set, OUTPUT);
pinMode(reset, OUTPUT);
}

void loop() {
//digitalWrite(set, LOW);
//digitalWrite(reset, LOW);

//digitalWrite(set, HIGH);
//digitalWrite(reset, LOW);

//digitalWrite(set, LOW);
//digitalWrite(reset, HIGH);

digitalWrite(set, HIGH);
digitalWrite(reset, HIGH);
}

BESTSET & RESET ยืดอายุการใช้งาน ประหยัดพลังงาน และแก้ค้างให้กลับมาทำงานได้ตามปกติ – Dustation dev kit V1.4

Related Posts