วันนี้เห็นน้อง ๆ ในบริษัทถือเครื่องวัดค่า PM2.5 มา
ก็เลยถามว่า เราสามารถดึงข้อมูลจากเครื่องมาได้ไหม ?
น้องบอกว่า ได้สิ
ดังนั้นความอยากรู้อยากลองจึงเกิดขึ้น ว่าต้องทำอย่างไรบ้าง ?
มาเริ่มกันเลย
ขั้นตอนที่ 1 ต้องติดตั้ง Mi Home App บนมือถือก่อน
ใช้สำหรับการ config ค่าต่าง ๆ ของเครื่องวัดค่า PM2.5
เครื่องวัดมันคือ Xiaomi Smart Air Quality Monitor PM2.5 Detector
ตรงนี้ไม่ขออธิบายมากนัก เพราะว่าทำตามขั้นตอนใน app ได้เลย
- Login เข้า app
- ในขั้นตอนเลือก region ให้เลือกเป็น Main Chaina (เท่าที่น้องมันบอก แต่ละ region มันไม่เหมือนกันอีก ต้องดูอีกว่าซื้อมาจากไหน ชีวิตดูยากนะ !!)
- ทำการเพิ่ม device
- ขั้นตอนที่สำคัญคือการเลือก WIFI network ซึ่งน้องบอกมาว่า support 2.4GHz เท่านั้น
- เมื่อผ่านแล้วก็ device จะสร้าง WIFI network ใหม่ขึ้นมา ชื่อแนว ๆ นี้ zhimi.airmonitor.v1_xxxx
- ถ้าเจอก็เปลี่ยนมาใช้ เพื่อใช้ติดต่อไปยัง device เท่านี้ก็จบ ซึ่ง app จะทำการ connect และ config ค่าต่าง ๆ ของ device ให้เอง
ขั้นตอนที่ 2 ดึงข้อมูล device ออกมาอย่างไร ?
จากที่น้องบอกมา มีคนเข้าทำไว้ให้แล้วเยอะเลย
หนึ่งในนั้นคือ miio ซึ่งเป็น project ที่พัฒนาด้วยภาษา NodeJS
การใช้งานก็ไม่ยาก แต่เอกสารไม่ update เลย โครตแย่ !!
เพียงเท่านี้ก็ได้ข้อมูล PM2.5 ที่ต้องการแล้ว
แต่ยังไม่พอ เรามาเขียน code เพื่อดึงข้อมูลมาจัดเก็บเพื่อประมวลผล
รวมทั้งเอามาแสดงข้อมูลแบบสวย ๆ กัน ดีกว่า
ขั้นตอนที่ 3 เขียน code เพื่อดึงข้อมูล PM2.5 จาก device
แน่นอนว่าใช้ libary miio นั่นเอง
ถามว่าเขียนง่ายไหม ตอบว่าง่ายนะแต่ถามว่าเอกสารของ library ช่วยไหม
ตอบได้เลยว่าไม่เลย ห่วยสุด ๆ ไม่ update เลย
โดยค่า default แล้วนั้น library นี้จะทำการดึงข้อมูลทุก ๆ 30 วินาที
ลองไปเปลี่ยนให้เร็วขึ้นตามเอกสาร แต่ก็ไม่เปลี่ยน ดังนั้นใช้ค่า default ก็แล้วกัน
เมื่อได้ข้อมูล PM2.5 ทุก ๆ 30 วินาทีแล้ว
ก็ทำการจัดเก็บลงใน data store ให้เรียบร้อยตามความต้องการของเรา
ขั้นตอนที่ 4 จัดเก็บและแสดงผลข้อมูล PM2.5 ของ device
ในตอนที่ทำก็ไม่ได้คิดอะไรมาก ไหลไปเรื่อย ๆ
ในหัวเลยคิดว่าเอาไปเก็บที่ง่าย ๆ เร็ว ๆ
ก็เลยคิดถึง Firebase Realtime Database เลยเนื่องจากฟรี ง่ายและเร็ว
ที่สำคัญคือ ข้อมูลเปลี่ยนแล้วคนดึงข้อมูลได้ข้อมูลล่าสุดทันทีเลยเท่านี้ก็โดนในแล้ว
ก็เลยไปเขียน code เพิ่มเติมนิดหน่อยคือ
- การบันทึกข้อมูล PM2.5 ไปที่ Firebase Realtime Database
- การดึงหรืออ่านข้อมูลจาก Firebase Realtime Database ซึ่งผมเขียน JavaScipt + HTML ทั่วไป และเอาไป deploy บน Firebase Hosting ไปเลย จบงาน !!
ในส่วนนี้เป็น code ตามเอกสารของ Firebase เลย
ไม่มีอะไรมากผลที่ได้ก็ กาก ๆ ประมาณนี้ ใส่สีนิดหน่อย
หมดไป 1 วันสำหรับการลองของใหม่ ๆ ที่ไม่เคยทำ
มันสนุกดีนะ
จากนี้ก็อยู่ที่จินตนาการของเราแล้วว่าจะเอาไปทำอะไร
เช่น ไปเชื่อมต่อกับ Slack และ LINE เลยดีไหม ?
เช่น เก็บข้อมูลแบบ time serie เพื่อเอามาวิเคราะห์ และแสดงผลต่อไป ?
ที่สำคัญ Xiaomi device มันก็สนุกและง่ายดีนะ