รีวิว AirGradient ONE : อุปกรณ์สำหรับการตรวจวัดคุณภาพอากาศภายในอาคาร

AirGradient ONE เป็นผลิตภัณฑ์ของ AirGradient Co. Ltd. ซึ่งเป็นอุปกรณ์สำหรับการตรวจวัดคุณภาพอากาศภายในอาคาร นอกจากจะสามารถวัดค่าอุณหภูมิและความชื้นของอากาศแล้วก็ยังมีความสามารถในการวัดค่าอื่น ๆ ได้อีกหลายค่า เช่น CO2, TVOC, NOx และ PM เป็นต้น ซึ่ง AirGradient ONE รุ่นที่รีวิวนี้เป็นรุ่นล่าสุด (9-th generation) ผู้ผลิตปรับให้เป็น open-source แล้ว มีทั้ง source code และ Schematic/PCB ให้เราดาวน์โหลดไปศึกษาและพัฒนาต่อเองได้ รวมถึงมีไฟล์โมเดลสามมิติของตัวกล่องใส่อุปกรณ์ซึ่งสามารถนำไปพิมพ์สามมิติได้เอง

เปิดกล่อง

เวอร์ชันที่ได้รับมาทดสอบครั้งนี้เป็นแบบชุดคิท (kit) ซึ่งจะต้องมีการประกอบอุปกรณ์เองบางส่วน อุปกรณ์ทั้งหมดถูกบรรจุมาในกล่องกระดาษลูกฟูก มีการ์ดข้อความขอบคุณจากผู้ผลิตซึ่งมี QR-code ไปยังเว็บไซต์ที่แสดงละเอียดการประกอบอุปกรณ์ ภายในกล่องมีอุปกรณ์ชิ้นใหญ่ที่สุดคือกล่องแสดงผลซึ่งมีกระดาษลูกฟูกหุ้มไว้อีกชั้น ตัวกล่องแสดงผลนั้นแยกส่วนด้านบนและด้านล่าง ยังไม่ได้ขันสกรู เมื่อเปิดฝาออกมาพบแผงวงจรหลักที่มีการบัดกรีอุปกรณ์ที่จำเป็นและติดตั้งมอดูลตรวจวัดอนุภาคในอากาศมาให้เรียบร้อยแล้ว อุปกรณ์ที่เหลือประกอบด้วยเซ็นเซอร์ 3 ตัวใส่รวมกันมาในถุงซีล, ไขควงและสกรู, สาย USB Type-C และ adapter 5V 2A ดังภาพต่อไปนี้

Airgradient ONE : External of the boxAirgradient ONE : Inside the box Airgradient ONE : Components of the kit Airgradient ONE : Senseair S8, SGP41 and SHT4x sensorsAirgradient ONE : Inside the enclosure

รายละเอียดของอุปกรณ์

  • กล่อง (แยกฝาด้านบนและด้านล่าง)
    • ควบคุมการทำงานด้วยไมโครคอนโทรเลอร์ ESP32-C3 Mini
    • จอแสดงผลแบบ OLED ขนาด 1.3 นิ้ว ความละเอียด 128×64 พิกเซล
    • RGB LED สำหรับแสดงสถานะการทำงาน จำนวน 11 ดวง
  • เซ็นเซอร์
    ▪ 1 x Plantower PMS5003 PM Sensor
    ▪ 1 x Senseair S8 CO2 Sensor
    ▪ 1 x SHT4x Temperature and Humidity Sensor Module
    ▪ 1 x SGP41 TVOC / NOx Sensor Module
  • อื่น ๆ
    ▪ 1 x 5V 2000mA Adaptor
    ▪ 1 x 90 degree USB Type-C cable
    ▪ 4 x M1.8×10 Torx T6 Screws
    ▪ 1 x Torx T6 Screw driver

การประกอบ

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

Sensors S8, SHT4x and SGP41

  • Senseair S8 Module เป็นเซ็นเซอร์สำหรับการวัดค่า CO2 สามารถเสียบลงบอร์ดได้ง่าย ไม่ต้องระวังการสลับทิศเนื่องจากจำนวนขาของแต่ละฝั่งไม่เท่ากัน
  • SGP41 เป็นเซ็นเซอร์วัดค่าสารประกอบอินทรีย์ระเหยง่าย (Total volatile organic compounds : TVOC) และไนโตรเจนออกไซด์ (NOx) โดยรุ่นที่รับมาทดสอบครั้งนี้จะใช้ soildering mask สีน้ำเงิน ให้เรานำไปเสียบลงในช่องที่สกรีนว่า I2C3
  • SHT4X สำหรับการวัดอุณหภูมิและความชื้นของอากาศ โดยรุ่นที่รับมาทดสอบครั้งนี้จะใช้ soildering mask สีม่วงแดง (margenta) นำไปเสียบในช่องที่สกรีนว่า SHT1
  • PMS5003 เป็นเซ็นเซอร์สำหรับการวัดปริมาณอณุภาคในอากาศ PM 1.0, PM2.5, และ PM 10 มอดูลนี้ใช้ connector แบบ JST ซึ่งสินค้าตัวอย่างที่ได้รับมานั้นติดตั้งลงบนแผงวงจรหลักเรียบร้อยแล้ว เพียงแต่ตรวจสอบว่าสายนั้นแน่นดีแล้วหรือยัง

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

Installation of the SGP41 Installation of the SGT4x

เมื่อตรวจสอบการติดตั้งอุปกรณ์เรียบร้อย ก็เสียบสาย USC Type-C ที่ด้านหลังกล่องเพื่อเปิดการทำงานได้ โดยฝากล่องด้านหลังนั้นก็มีการออกแบบช่องสำหรับร้อยสาย cable เพื่อความเป็นระเบียบไว้ให้ด้วย

Plugging the USB Type-C cable

หลังจากเสียบสายและหน้าจอ OLED ด้านหน้าติด แสดงข้อความ แสดงว่าการติดตั้งทุกอย่างเรียบร้อย สามารถปิดฝากล่องให้เข้าที่และไขสกรูฝากล่องให้แข็งแรง ก็พร้อมสำหรับการทดสอบการใช้งานในขั้นต่อไป

การใช้งานครั้งแรก

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

  • อุณหภูมิ : °C, อนุภาคในอากาศ : ug/m3
  • อุณหภูมิ : °C, อนุภาคในอากาศ : US AQI
  • อุณหภูมิ : °F, อนุภาคในอากาศ : ug/m3
  • อุณหภูมิ : °F, อนุภาคในอากาศ : US AQI

Airgradient ONE : Measurement units configuration

เมื่อตั้งค่าที่ต้องการแล้วให้กดปุ่มค้างไว้เพื่อบันทึกค่าและรีสตาร์ทระบบให้เริ่มทำงานใหม่อีกครั้ง

หน้าจอต่อมาจะเป็นการรอการเชื่อมต่อ WiFi ในการใช้งานครั้งแรก เราจะต้องกำหนดค่า SSID และรหัสผ่านก่อนจึงจะใช้งานได้ โดยขั้นแรกเราจะต้องจด serial number ที่แสดงขึ้นมาบนหน้าจอไว้ จากนั้นจึงใช้คอมพิวเตอร์หรือสมาร์ทดีไวซ์ค้นหาและเชื่อมต่อ WiFi Hotspot ของอุปกรณ์ซึ่งใน firmware ที่ได้รับมาจะมีชื่อ hotspot เป็น AG-xxxxxx โดยที่ xxxxxx เป็นชื่อ serial number ของอุปกรณ์เรา เมื่อเชื่อมต่อกับ WiFi ของอุปกรณ์แล้วให้เราตั้งค่า SSID และรหัสผ่านของเครือข่ายที่เราต้องการ เสร็จแล้วจึงกดบันทึกค่า

Airgradient ONE : Setting up WiFi

หลังจากนั้นก็จะเข้าสู่หน้าหลักของอุปกรณ์ ไฟ LED ด้านบนจะแสดงสีตามระดับคุณภาพอากาศ หน้าจอ OLED จะแสดงข้อมูลจากเซ็นเซอร์ตามหน่วยที่เรากำหนดค่าไว้ ระบบสามารถทำงานได้ปกติแม้ว่าจะไม่มีการเชื่อมต่ออินเตอร์เน็ต แต่ถ้าเชื่อมต่อได้ระบบจะส่งข้อมูลไปยังเครื่องแม่ข่ายของผู้ผลิตที่กำหนดไว้

Airgradient ONE : Ready to work

Airgradient ONE : Main screen

เมื่อตรวจสอบจาก serial monitor พบว่าข้อมูลจากเซ็นเซอร์จะถูกนำมารวมกับ RSSI ของ WiFi แล้วจัดรูปแบบเป็นข้อมูล JSON ก่อนที่จะส่งไปยัง server ของผู้ผลิตซึ่งมี URL เป็น http://hw.airgradient.com/sensors/airgradient:xxxxx/measures โดยที่ xxxxx คือ serial number ของอุปกรณ์ เมื่อทดสอบการส่ง HTTP POST ด้วย PostMan พบว่าส่งข้อมูลไม่สำเร็จ เครื่องแม่ข่าย response เป็น sensor 'airgradient:xxxxxx' unknown จึงคาดว่าจะน่าจะเกิดจาก AirGradient Dashboard ของทางฝั่ง server ยังไม่ได้ตั้งค่าให้รับข้อมูลจากอุปกรณ์นี้ ดังนั้นถ้าหากเราต้องการใช้ AirGradient Dashboard ทดสอบการทำงาน เราก็จำเป็นต้องดำเนินการขั้นต่อไปให้เรียบร้อย

เชื่อมต่อกับ AirGradient Dashboard

การใช้งาน AirGradient Dashboard เพื่อรับและแสดงค่าจากอุปกรณ์นั้นทำได้ด้วยการเข้าไปที่ยูอาร์แอล  https://app.airgradient.com/onboarding/welcome เพื่อสมัครสมาชิกแล้วเข้าสู่ระบบให้เรียบร้อย จากนั้นจึงเพิ่มข้อมูลต่าง ๆ เช่น ชื่อสถานที่, serial number ของอุปกรณ์ให้เรียบร้อย เสร็จแล้วจะเข้าสู่หน้า Dashboard ได้ หลังจากนั้นจึงรีเซ็ตอุปกรณ์หรืออาจจะรอสักครู่จะพบว่าการรับส่งข้อมูลทำได้สำเร็จ หน้าต่าง Dashboard สามารถแสดงค่าจากอุปกรณ์ได้ถูกต้อง

Airgradient ONE : Dashboard setupDashboard setupDashboard screen

การแฟลชโปรแกรม

ผู้ผลิตแจ้งในเว็บไซต์ว่าสามารถเราสามารถแฟลชโปรแกรมได้ 2 แนวทาง แนวทางแรกคือการแฟลชด้วยการใช้เว็บเบราเซอร์ อีกทางหนึ่งคือทำผ่าน Arduino IDE โดยการรีวิวครั้งนี้เราจะทดลองใช้วิธีที่สอง และเนื่องจากผู้ผลิตไม่ได้กำหนดเวอร์ชันของ Arduino IDE ไว้ ดังนั้นการทดสอบนี้จะใช้ Arduino IDE 1.8.13 ซึ่งมีติดตั้งไว้ในคอมพิวเตอร์ของผมเรียบร้อยแล้ว โดยเราสามารถดาวน์โหลด source-code ได้จาก GitHub ของผู้ผลิต ขยายไฟล์ให้เรียบร้อย เสร็จแล้วใช้ Arduino IDE เปิดไฟล์ ONE_V9.ino ขึ้นมา สำหรับการเลือกบอร์ดใน Arduino IDE นั้น ผู้ผลิตให้กำหนดพาธ Additional Boards Manager ตามภาพด้านล่างนี้ เสร็จแล้วจึงเลือกบอร์ดเป็น Lolin C3 Mini

Setting board manager URLs in Arduino IDE

สำหรับรายชื่อของ library ที่จำเป็นนั้นจะอยู่บริเวณส่วนบนของไฟล์ ONE_V9.ino ซึ่งในเวอร์ชันที่รีวิวนี้มีระบุ library ที่จำเป็นไว้ 6 โปรแกรม ดังนี้

ซึ่งการติดตั้งนั้นก็จะทำเหมือนการติดตั้ง library ของ Arduino IDE นั่นคือเราสามารถใช้ Library Manager ในการจัดก็ได้ แต่การรีวิวนี้ผมใช้การค้นหาและนำไฟล์ต่าง ๆ ไปวางในโฟล์เดอร์ Libraries ของ Arduino ด้วยตนเอง

ในกรณีของผม เมื่อทดลองคอมไพล์ก็พบว่าคอมไพล์ไม่ผ่านเนื่องจากขาด library บางตัวไป ซึ่งพบว่าต้องการ library ต่อไปนี้เพิ่ม

หลังจากนั้นจึงพบปัญหาอีกประการหนึ่งเกี่ยวกับข้อผิดพลาดใน PMS Library ซึ่งผู้ผลิตแจ้งไว้ใน Blog ว่าอุปกรณ์ชุดนี้ใช้ PMS5003T ดังนั้นเราจำเป็นต้องแทนที่โค๊ดทั้งหมดในไฟล์ PMS.h และไฟล์ PMS.cpp ด้วยโค๊ดใหม่ด้านล่างนี้

ไฟล์ PMS.h


ไฟล์ PMS.cpp


เมื่อทดสอบการคอมไพล์อีกครั้ง พบว่าอุปกรณ์ไม่สามารถเชื่อมต่อ WiFi ได้ ซึ่งเมื่อตรวจสอบพบว่าโค๊ดต้นฉบับได้กำหนดชื่อ SSID กับ password ไว้ ซึ่งหลังจากทดลองเปลี่ยนให้ถูกต้องแล้วคอมไพล์ใหม่ พบว่าทำงานได้ตามปกติ

Airgradient ONE : Config SSID and password in Arduino IDE

ความเป็น Open-source

source-code โหลดได้จาก GitHub ซึ่งนอกจากจะมี firmware ของกล่องนี้แล้ว ยังมีของรุ่นอื่นและเวอร์ชันอื่น ๆ ให้ศึกษาเพิ่มเติมได้ และเนื่องจากมี source code อยู่ในมือ การทดสอบต่อมาจึงเป็นการทดลองส่งข้อมูลไปยัง server อื่น โดยในที่นี้จะใช้เครื่อง server ของที่ทำงานในการรับข้อมูล โดยการแก้ไขตัวแปร APIROOT บริเวณด้านบนของโค๊ดให้เป็น URL ที่เราต้องการ จากนั้นจึงปรับปรุงฟังก์ชัน sendToServer() ให้มีการส่งค่า hardware id เพิ่มเข้าไปอีกหนึ่งรายการ และปรับปรุงตัวแปร POSTURL ให้เหมาะสมกับโค๊ดฝั่ง server ที่เตรียมไว้ เสร็จแล้วคอมไพล์และ upload ก็พบว่าระบบสามารถรับส่งข้อมูลได้ดี

Airgradient ONE : Setting remote server URL

Airgradient ONE : Setting HTTP POST parametersAirgradient ONE : Mysql table

การทดสอบเขียนโปรแกรมอีกอย่างหนึ่งจะเป็นทดลองเปลี่ยนรูปแบบการใช้ LED แสดงสถานะตอนเปิดเครื่องก่อนเข้าหน้าแสดงผลหลัก จากเดิมที่ไม่มีการแสดงผลเปลี่ยนมาเป็นเพิ่มลูกเล่นนิดหน่อยด้วยการสุ่มสี LED ทั้ง 11 เป็นเวลาสั้น ๆ ก่อนจะทำงานตามคำสั่งเดิมต่อไป การแก้ไขก็ทำได้ง่ายเนื่องจากโปรแกรมใช้มอดูล NeoPixel ในทำงาน โดยในการทดลองนี้เราจะลองควบคุมการทำงานได้้ด้วยการเพิ่มโค๊ดตัวอย่างไปนี้ลงไปบริเวณส่วนท้ายของฟังก์ชัน setup() ซึ่งเมื่อรันแล้วพบว่า LED ทั้ง 11 ดวงมีการแสดงสีเปลี่ยนไปได้ตามที่ต้องการ


Airgradient ONE : Changing LEDs color

นอกจาก source code สำหรับการศึกษารายละเอียดฝั่งซอฟต์แวร์แล้ว ผู้ผลิตยังมีข้อมูล schematic diagram และ PCB ให้ดาวน์โหลดไปศึกษาฝั่งของฮาร์ดแวร์ได้ด้วย โดยที่เราสามารถเปิดได้ด้วยโปรแกรม KiCad ดังภาพต่อไปนี้

Airgradient ONE : Schematic diagram Airgradient ONE : PCB top and bottom layers Airgradient ONE : PCB bottom layer Airgradient ONE : PCB top layer

นอกจากที่กล่าวมาแล้ว ผู้ผลิตยังได้ให้ไฟล์ชิ้นงานสามมิติจำนวนทั้งหมด 3 ชิ้น ประกอบด้วยฝาด้านบน ฝาด้านล่าง และช่องสำหรับเสียบอุปกรณ์ ในรูปแบบไฟล์ STL และ STP ซึ่งในตัวอย่างนี้ผมทดลองเปิดไฟล์ STL ด้วยโปรแกรม MeshLab และทดลองพิมพ์ชิ้นงานสามมิติออกมาหนึ่งชิ้น ได้ผลลัพธ์เป็นชิ้นงานที่น่าพอใจ ดังภาพต่อไปนี้

Airgradient ONE : Viewing 3D models in MeshLab Viewing 3D models in MeshLab Airgradient ONE : The printed 3D model

สรุป

AirGradient ONE โดยรวมแล้วอุปกรณ์ที่ได้รับมารีวิวครั้งนี้ทำงานได้ดี อาจจะพบปัญหาการอ่านค่าจากเซ็นเซอร์ได้ยังไม่เสถียรในช่วงเริ่มเปิดอุปกรณ์แต่เมื่อผ่านไปสักครู่ ระบบจะอ่านค่าและส่งค่าไปยัง server ปลายทางได้อย่างสม่ำเสมอ นอกจากตัวอุปกรณ์แล้วจุดที่น่าสนใจอีกอย่างหนึ่งคือผู้ผลิตมีแนวคิด “1% for the planet” หรือการแบ่งยอดขายจำนวน 1% ให้กับงานด้านการอนุรักษ์และฟื้นฟูทรัพยากรธรรมชาติ รวมถึงในเว็บก็ยังมีส่วนที่นำเสนอบทความที่เกี่ยวข้องกับงานวิจัยทางด้านสิ่งแวดล้อม ซึ่งถือเป็นสิ่งที่ดีที่ผู้ผลิตแสดงความสนใจกับกิจกรรมทางด้านนี้ด้วย

สุดท้ายนี้ผมต้องขอขอบคุณ AirGradient ที่ส่งอุปกรณ์มาให้รีวิวในครั้งนี้ และสามารถสั่งซื้อ AirGradient ONE เวอร์ชันที่ประกอบและทดสอบการทำงานแล้ว (fully assembled and tested) เวอร์ชัน 9 นั้นจำหน่ายราคา $195 หรือประมาณ 9,600฿ ที่เว็บไซต์ของผู้ผลิต

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
โฆษณา