mmWave Human Detection Sensor Kit ของ Seeed Studio ออกมาสักพักหนึ่งแล้ว คิดจะหามาลองอยู่เพราะเทคโนโลยี mmWave radar ดูแล้วมีศักยภาพที่น่าจะเอามาใช้กับงานวิจัยด้าน smart home ได้ พอดีเจอประกาศของ CNX Software อยากหาคนมารีวิวตัวผลิตภัณฑ์ให้หน่อย เลยถือโอกาสสมัครมาลองเขียนรีวิวและขอตัดบทแบบรวดเร็วด้วย DHL กล่องอุปกรณ์ก็ส่งมาถึงที่ทำงานอย่างปลอดภัย
เมื่อเปิดกล่อง ก็เจอกล่องของ mmWave Human Detection Sensor Kit มาพร้อมกับบอร์ดเสริมคือ MR60FDA1 60GHz mmWave Sensor – Fall Detection Module Pro ซึ่งจะใช้คลื่นความถี่ในย่าน 60 GHz ในขณะที่ บอร์ด mmWave Radar ที่มาในชุดจะเป็น MR24HPC1 24GHz mmWave Sensor – Human Static Presence Module Lite ตัวโมดูล mmWave sensor ในชุด sensor kit จะใช้คลื่นความถี่ในย่าน 24 GHz ซึ่งจะมีราคาถูกกว่า ($6.9 หรือ ฿240) และเหมาะกับการตรวจจับวัตถุที่มีขนาดใหญ่กว่า เช่น ร่างกายของมนุษย์ ในตลาดก็จะเจออีกหลายเจ้า เช่น Socionext MN87900 24 GHz radio wave radar module ที่เน้นการตรวจจับคนในพื้นที่
แกะกล่อง (ของจริง)
ข้างในกล่อง มีตัว sensor kit ที่เป็นกล่องพลาสติกทรงสี่เหลี่ยม สีขาว วัสดุจับแล้วดูแข็งแรงดี ของที่มาด้วยคือ สาย USB Type C ไขควงปลายแฉก ถุงใส่สกรูไว้ยึดบอร์ดเสริมข้างในกล่อง และตัวกาว 2 หน้าของ 3M สำหรับยึดอุปกรณ์กับผนัง ความรู้สึกแรกหลังเห็นของในกล่องคือ ดูเป็นผลิตภัณฑ์ที่เน้นกลุ่มเป้าหมายที่เป็นคนยุคใหม่ ซึ่งอยากได้ gadget ล้ำๆมาใส่บ้านตัวเอง แล้วก็รู้สึกเพิ่มขึ้นตอนพบว่าไขควงที่ให้มาแงะฝาปิดรูของสกรูไม่ได้ ต้องไปหามีดมาแงะฝาปิดออก แถมด้วยการไปหาไขควงใหม่มาขัน เพราะขันสกรูมาได้แน่นมากเมื่อเทียบกับขนาดไขควงที่ให้มา แต่พอเปิดกล่องออกได้ ความรู้สึกแบบ maker ก็กลับมาทันทีเมื่อเห็นสิ่งที่อยู่ในตัว sensor kit
ข้างในตัว sensor kit มีบอร์ด Xiao ESP32-C3 เป็นหน่วยประมวลผลถูกบัดกรียึดกับบอร์ดฐาน ส่วนโมดูล 24GHz mmWave Sensor จะเสียบอยู่บนขา header เลยสามารถสลับโมดูล mmWave sensor อื่นมาแทนได้ บอร์ดฐานมีที่ว่างสำหรับเอาอุปกรณ์อื่นมาเติมได้ โดยเชื่อมต่อผ่านทางหัวต่อ Grove แบบ analog และ I2C ที่มาอย่างละหนึ่ง ตอนแรกก็สงสัยอยู่ว่าทำไมส่วนฝาของตัวเคส sensor kit ถึงต้องมีรูเล็กๆอยู่ 3 รู เลยคิดได้ว่าน่าจะเตรียมไว้สำหรับอุปกรณ์เสริมพวกโมดูลวัดสภาพแวดล้อมที่ต้องมีอากาศเข้ามาได้
เทคโนโลยี FMCW radar
ก่อนจะไปดูรายละเอียดและการใช้งานตัว sensor kit ขอมาเล่าเกี่ยวกับเทคโนโลยี FMCW radar (Frequency-Modulated Continuous Wave radar) ก่อน เพื่อให้เข้าใจว่าทำไม mmWave sensor ถึงเป็นอุปกรณ์ที่น่าจะมาชดเชยจุดอ่อนของเซ็นเซอร์ตรวจจับการเคลื่อนไหวแบบ PIR (passive infrared) ที่ครองตลาดด้วยข้อได้เปรียบของราคา แต่มีจุดอ่อนหลายด้าน เช่น ระยะทางที่ตรวจจับได้จำกัด มีปัญหากับสภาพแวดล้อมที่มีอุณหภูมิสูง และบอกได้แค่มีวัตถุเคลื่อนไหว ในขณะที่เทคโนโลยี mmWave sensor ใช้การส่งคลื่นแม่เหล็กไฟฟ้าด้วยความถี่สูงมาก (ตรงแถบสีทองคือเสาอากาศ) แล้วตรวจจับการสะท้อนเพื่อประเมินสถานะ doppler effect (ความถี่เปลี่ยนเมื่อสิ่งที่สะท้อนเคลื่อนที่เข้าหรือออก) นอกจากนี้ การมีตัวส่งสัญญาณ (transmitter) และ/หรือ ตัวรับสัญญาณ (receiver) มากกว่า 1 ตัวทำให้สามารถได้รับสัญญาณมากกว่า 1 ชุด จากนั้นใช้เทคนิคการประมวลผลสัญญาณเพื่อจำแนกรูปแบบพิเศษของการเคลื่อนไหวได้ ตัว mmWave sensor จึงเปิดกว้างสำหรับหลายงานที่ PIR ไม่ตอบโจทย์ เช่น โซนที่มีแดดส่อง หรือต้องการข้อมูลระยะและความเร็วของสิ่งที่เคลื่อนไหวด้วย
ทาง Seeed Studio ออกผลิตภัณฑ์ mmWave radar ออกมาหลายตัว ซึ่งแตกต่างกันในแง่ความถี่และซอฟต์แวร์ที่ประมวลผล จึงเลือกมาใช้ในงานที่แตกต่างกันได้ เกณฑ์เบื้องต้นคือ ความถี่ของสัญญาณสูงกว่าจะมีความละเอียดในการตรวจจับดีขึ้น แต่ระยะทางที่ตรวจจับได้จะลดลง ในขณะที่มุมมอง (field of view) จะขึ้นอยู่กับจำนวนและการเรียงตัวของเสาอากาศ ตัวโมดูล Human Static Presence ที่มาใน sensor kit จะมีข้อจำกัดมากหน่อยคือ ตรวจสอบได้เฉพาะการเคลื่อนไหวของร่างกายในสถานการณ์ทั่วไป เช่น คนที่อยู่ในห้อง ส่วนโมดูล MR60FDA1 จะมีเฟิร์มแวร์ข้างในสำหรับตรวจจับสถานะการล้ม (ความเร็วในแนวดิ่ง) จึงเหมาะสำหรับการติดในห้องน้ำ
รายละเอียดของผลิตภัณฑ์
ข้อดีของ sensor kit เมื่อเทียบการซื้อโมดูล mmWave sensor มาทำเอง คือ ตัวบอร์ด Xiao ESP32-C3 ถูกโปรแกรมให้รองรับโมดูล mmWave sensor รุ่นต่างๆอยู่แล้ว แปลว่าตัวเจ้าของไม่ต้องมาวุ่นวายหาบอร์ดมาพัฒนาเฟิร์มแวร์เอง นอกจากนี้ เฟิร์มแวร์ของ sensor kit ถูกพัฒนาให้รองรับ ESPHome และ Home Assistant จึงสามารถเชื่อมต่อเข้าระบบ smart home ของตัวเองได้สะดวก แต่ใครอยากลองอะไรที่ท้าทาย สามารถไปศึกษาโพรโทคอลสื่อสารผ่านพอร์ท UART ของตัวโมดูล mmWave radar ได้
ตัวโมดูล mmWave sensor ที่จะมารีวิวมี 2 ตัวคือ โมดูล MR24HPC1(24 GHz) ในตัว sensor kit เอง และโมดูล MR60FDA1 (60 GHz) ทั้งสองโมดูลจะเหมือนกันในแง่ของขนาดและการเชื่อมต่อ จึงสามารถสลับแทนกันได้
- ขนาด 35 mm x 30 mm
- ไฟเลี้ยง 4.5 – 6.0 โวลต์
- พอร์ท UART ความเร็ว 115,200 bps
- หัวต่อ SWD (Serial Wire Debug) สำหรับโปรแกรมเฟิร์มแวร์
เกณฑ์การเลือกโมดูล mmWave sensor มาใช้งาน ควรต้องพิจารณาพื้นที่ตรวจจับของโมดูลที่พิจารณาได้จากระยะทางและมุมในการตรวจจับ ค่าของระยะทางและมุมตรวจจับของโมดูล MR24HPC1 คือ
- ย่านการตรวจจับ (range): 5 เมตร
- มุมตรวจจับแนวนอน (horizontal detection angle): 90 องศา
- มุมตรวจจับแนวตั้ง (vertical detection angle): 60 องศา
โมดูลนี้เน้นที่ราคาถูก แต่จำกัดเฉพาะการอ่านค่าพื้นฐาน เช่น ระยะทาง ความเร็ว การเคลื่อนไหว การใช้งานจึงไปทับซ้อนกับเซ็นเซอร์ PIR เช่น การตรวจคนเข้า/ออกร้าน การใช้กับประตูอัตโนมัติ และการปิด/เปิดไฟในห้อง
โมดูล MR60FDA1 ใช้ย่านความถี่ 60 GHz จีงมีความละเอียดในการตรวจจับวัตถุมากกว่าโมดูล MR24HPC1 (24 GHz) เนื่องจากขึ้นกับความยาวคลื่นที่จะสะท้อน
- ย่านการตรวจจับ (range) : 6 เมตร (การเคลื่อนไหว) 3 เมตร (สถานะคนล้ม)
- มุมตรวจจับแนวนอน (horizontal detection angle): 60 องศา
- มุมตรวจจับแนวตั้ง (vertical detection angle): 60 องศา
จุดเด่นของโมดูล MR60FDA1 คือ การมีเฟิร์มแวร์เพิ่มเติมสำหรับตรวจจับสถานะคนล้ม จึงเหมาะกับการนำไปใช้ใน smart home โดยเฉพาะบ้านที่มีผู้สูงอายุ แต่การตรวจจับทำได้ในกรณีที่มีเพียง 1 คนภายในพื้นที่ตรวจจับ รวมทั้งการมีระยะและมุมตรวจจับที่แคบ จึงน่าจะเหมาะสำหรับการใช้ในห้องน้ำมากกว่าห้องอื่นๆของบ้าน หรืออาจต้องใช้การติดตั้งตัว mmWave sensor ในหลายตำแหน่งเพื่อให้ครอบคลุมพื้นที่ภายในห้อง
การใช้งานกับ smart home
บอร์ด Xiao ESP32-C3 ในตัว sensor kit เป็นหน่วยประมวลผลที่เชื่อมต่อแบบไร้สายได้ทั้งแบบ WiFi และ Bluetooth จึงรองรับการผนวกเข้ากับเทคโนโลยี Internet of Things ทาง Seeed Studio เองได้พัฒนาเฟิร์มแวร์สำหรับเชื่อมต่อเข้ากับบริการ ESPHome ที่จะเชื่อมต่อไปยัง Home Assistant ได้ ดังนั้น เราจึงสามารถตั้งระบบ smart home ให้รายงานสถานะที่ตรวจจับจาก sensor kit ผ่านทางช่องทางต่างๆ เช่น สมาร์ทโฟน ได้
เปิดบริการ Home Assistant
Home Assistant เป็นซอฟต์แวร์โอเพนซอร์สสำหรับสร้างระบบ smart home (ใครไม่คุ้นชื่อนี้ แนะนำให้ลองอ่านบทความแนะนำ) ข้อดีของ Home Assistant เกิดจากความเข้มแข็งของชุมชนนักพัฒนารวมถึงผู้ประกอบการ (ส่วนใหญ่รายเล็กหน่อย) ที่อยากใช้แพลตฟอร์มที่มีบริการพื้นฐานของ smart home อยู่แล้ว จึงมีอุปกรณ์ที่เข้ากันได้อยู่พอสมควร ใครสนใจว่ามีอุปกรณ์อะไรบ้างที่ใช้ได้ สามารถไปดูตามรายการของ review นี้ได้
การเอา Home Assistant มาใช้ต้องเริ่มจากการตั้งเซิร์ฟเวอร์ภายในบ้านตัวเองก่อน ซึ่งทำได้ทั้งแบบซื้ออุปกรณ์ที่มีซอฟต์แวร์ในตัวเอง เช่น Home Assistant Green หรือออกแรงติดตั้งตัวเซิร์ฟเวอร์เอง สำหรับส่วน UI สามารถไปใช้ Companion App ของสมาร์ทโฟนที่มีทั้ง iOS และ Android หรือไปใช้ dashboard ที่เข้าผ่านทาง web ด้วยเบราเซอร์ ผมเลือกที่จะติดตั้งบน Raspberry Pi 400 เพื่อลดความวุ่นวายในการติดตั้ง ESPHome และคิดว่าจะไปลองเปิดบริการอื่นๆในบทความตอน 2 การติดตั้งทำได้ง่ายมากเพราะโปรแกรม Raspberry Pi Imager มีตัวเลือกสำหรับ Home Assistant อยู่แล้ว สามารถเลือกเขียนลงใน SD card สำหรับบูตระบบได้เลย หลังเสียบ SD card และบูต Raspberry Pi 400 ต้องรอสักพักใหญ่ๆ (หน้าจอตอนทดลองเขียนว่า 20 นาที) เพื่อให้มีการดาวน์โหลดไฟล์ต่างๆมาติดตั้ง การตรวจสอบสถานะการติดตั้งและพร้อมใช้งานจะใช้การเข้าถึงผ่านเบราเซอร์โดยพิมพ์ URL ว่า homeassistant:8123 หรือใช้แอพพลิเคชัน Home Assistant Companion บน iOS หรือ Android ที่ต่อเข้าเครือข่าย WiFi วงเดียวกัน
หลังจากการติดตั้งเสร็จ เราจะเห็นเบราเซอร์แสดงหน้าเว็บ onboarding.html ซึ่งขั้นต่อไปจะเป็นการตั้งค่าการทำงานต่างๆของอุปกรณ์ภายในตัว smart home เอง
เชื่อมต่อ ESPHome
การใช้งาน mmWave radar จะต้องเชื่อมต่อกับบริการ ESPHome ซึ่งจะเริ่มด้วยการติดตั้ง ESPHome Add-on เข้ามาใน Home Assistant ตัว ESPHome จะเป็นบริการที่รองรับการเชื่อมต่อกับอุปกรณ์ต่างๆที่มีหน่วยประมวลผล ESP8266 หรือ ESP32 แล้วเพิ่มเข้าในบริการ Home Assistant เหมือนเป็น gadget ที่ขายโดยบริษัททั่วไป หรือเรียกได้ว่าเป็นช่องทาง DIY สำหรับ Home Assistant นั่นเอง การจัดการอุปกรณ์ในวง ESPHome สามารถทำได้ผ่านทาง web UI ของตัว Home Assistant เองหลังจากติดตั้ง add-on แล้ว
การเพิ่ม mmWave sensor kit เข้าใน ESPHome เริ่มด้วยการเสียบสาย USB เข้ากับอะแดปเตอร์ จากนั้นบอร์ด ESP32-C3จะเปิด WiFi access point ชื่อ mmwave-kit ขั้นตอนถัดมาคือ การตั้งค่า WiFi ด้วยการใช้คอมพิวเตอร์หรือสมาร์ทโฟนเชื่อมเข้า AP แล้วใช้เบราเซอร์เข้า 192.168.4.1 ไปตั้งค่า SSID/passphrase เมื่ออุปกรณ์รีบูตแล้วไปเชื่อมเครือข่าย WiFi แล้ว จะสามารถใช้ web UI ของ ESPHome ในการเพิ่ม mmWave sensor kit เข้ามาใน Home Assistant ในกรณีที่มีปัญหา add ตัว mmWave sensor kit ไม่ได้ ให้ทำการแฟลชตัวเฟิร์มแวร์ใหม่เพื่อรีเซ็ตการทำงาน แล้วไปรีบูตการทำงานของ Home Assistant อีกครั้ง
หลังจากเพิ่ม mmWave sensor kit เข้ามาใน ESPHome ก็จะสามารถใช้เมนู Settings > Devices & services เพื่อเข้ามาดูรายละเอียดของตัวอุปกรณ์ได้ รายการของค่าที่ตั้งการทำงานได้จะแสดงอยู่ในกรอบ Controls ส่วนรายการของค่าที่อ่านได้จะแสดงอยู่ในกรอบ Sensors ลองสแกนดูตัวเลือกเลยเห็นว่ามีอะไรที่ปรับแต่งและอ่านค่ามาทำได้เยอะมาก ซึ่งเรียกได้ว่าเป็นคนละเรื่องกับกลุ่มเซ็นเซอร์ PIR ที่มีตัวสัญญาณออกแค่พัลส์เมื่อตรวจพบการเคลื่อนไหว
ปรับแต่ง Dashboard
ในตอนที่เพิ่มอุปกรณ์เข้ามาจะมีการเพิ่ม entity เข้าในส่วน Dashboard โดยอัตโนมัติ ซึ่งจะแสดงรายการของค่าต่างๆที่อ่านได้ด้วยการคลิกที่ PRESS การเอามาใช้ให้เป็นประโยชน์เลยต้องปรับ Dashboard ของ Home Assistant ให้อ่านและแสดงค่าต่างๆได้ ตัวเลขที่ผมลองดูแล้วคิดว่าน่าสนใจคือ ค่า distance ที่แบ่งออกเป็น static distance (ระยะไปยังวัตถุที่ไม่เคลื่อนไหว) และ motion distance (ระยะไปยังวัตถุที่เคลื่อนไหว) ตอนทดลองขยับหน้าเซ็นเซอร์พบว่าค่า motion distance จะเปลี่ยนแปลงได้ภายใน 1-2 วินาที โดยความละเอียดที่อ่านได้อยู่ที่ 0.5 เมตร
อีกตัวเลขหนึ่งที่น่าสนใจคือ motion energy ที่เป็นการรายงานระดับการเคลื่อนไหว ซึ่งแม้จะพยายามค่อยๆขยับตัว ค่าตัวเลขก็เพิ่มขึ้นจากระดับน้อยกว่า 10 ไปสู่ค่ามากกว่า 100 ความไวในการตรวจจับก็ค่อนข้างน่าทึ่งเพราะทดลองขยับนิ้วไปมาที่ระยะประมาณ 2 เมตร ยังเห็นการขยับของตัวเลขบนตัวเกจเอง กรอบของพื้นที่การตรวจจับ motion energy ครอบคลุมระยะด้านข้างด้วย ซึ่งน่าจะเป็นไปตามกรอบของมุม 90 องศา ที่ระบุไว้ในตัวสเปคของโมดูล MR24HPC1
คิดอย่างไรหลังลองใช้งาน
หลังได้ทดลองใช้งาน mmWave sensor kit มา 2-3 วัน ความคิดเห็นส่วนตัวคือ อุปกรณ์นี้ไม่ค่อยเหมาะกับการขายเป็น smart gadget ให้กับคนทั่วไป เพราะตอนลองใช้งานยังต้องออกแรงพอสมควรกว่าจะเชื่อมต่อเข้ามาในส่วนของ Dashboard ของ Home Assistant ได้ แต่ในอีกมุมมองหนึ่งคือ หากเป็นคนที่มีประสบการณ์ในการตั้งระบบ Home Assistant สำหรับ smart home ตัวอุปกรณ์นี้ อาจจะกลายเป็นฟีเจอร์ที่น่าสนใจเมื่อเทียบกับเซ็นเซอร์ตรวจจับการเคลื่อนไหวแบบ PIR ที่ขายทั่วไปในตลาด การมีตัวเลขของ motion energy และระยะ static/motion distance น่าจะตอบโจทย์การตรวจจับในสถานการณ์พิเศษได้ นอกจากนี้ การเผยแพร่ส่วนโค้ดของ Xiao ESP32-C3 ภายในตัว mmWave sensor kit บน GitHub หมายถึงโอกาสในการ custom เฟิร์มแวร์ให้กลายเป็นผลิตภัณฑ์เฉพาะได้ จุดนี้น่าจะเป็นช่องทางการตลาดที่ Seeed Studio คาดหวังไว้มากกว่าการขายอุปกรณ์นี้ในฐานะ gadget ทั่วไป
บทความตอน 1 นี้ จะยังไม่ทดลองใช้ในส่วนของโมดูล MR60FDA1 เพราะเนื้อความแค่การลองใช้งานก็ยาวพอสมควรแล้ว เลยจะเขียนส่วนของโมดูลตรวจจับการล้มแยกออกไปอีกตอน แต่ตอน 2 นี้คงจะมีเนื้อหาที่ออกไปทางเทคนิคมากขึ้น เพราะอยากจะเจาะไปที่การทดลองนำเข้าค่าสัญญาณมาแสดงบนคอมพิวเตอร์ด้วย ซึ่งจำเป็นสำหรับการประยุกต์สร้างการตรวจจับสถานการณ์พิเศษ
ขอขอบคุณบริษัท Seeed Studio ที่ส่ง mmWave Human Detection Sensor Kit มาให้เราทดลองใช้งาน, สามารถหาซื้อชุดอุปกรณ์ได้ที่ร้านค้าออนไลน์ของบริษัท สำหรับ mmWave Human Detection Sensor Kit ที่มี MR24HPC1 24GHz จำหน่ายในราคา $26.99(~950฿) และบอร์ดเสริม MR60FDA1 60GHz mmWave Sensor ราคา $37.00 (~1,300฿)
Assistant Professor at the Department of Electrical and Computer Engineering, Thammasat University, THAILAND. Also, I work as a volunteer and member of technical committees for the Thai Embedded Systems Association and Technology Promotion Association (Thailand-Japan).