By Arnon Puitrakul - 05 พฤษภาคม 2023
สำหรับคนที่ได้ดูเรารีวิว Smart Home ไปแล้ว เรามีบอกว่า พวก Sensor ในการวัดคุณภาพอากาศต่าง ๆ เราใช้เป็นแบบ DIY เองทั้งหมด วันนี้เราจะมาเล่าให้อ่านกันว่า เราใช้อะไรบ้าง ทำยังไงอะไรบ้าง โดยที่เราไม่ต้องบัคกรี หรืออะไรทั้งสิ้นเลย เราแค่ประกอบเสียบ ๆ ทั้งหมดในราคาประมาณ 900 บาทเท่านั้น
ก่อนหน้านี้ เรามองหาเครื่องวัดคุณภาพอากาศในบ้านของเรามาสักพักใหญ่ ๆ แล้วละ ถ้าเราเข้าไปดูตาม E-Commerce Platform หลาย ๆ เจ้า เราก็จะเจอมันเยอะมาก ๆ ส่วนแรกเลยคือ เราไม่รู้เลยว่า พวกนี้ เขาใช้ Sensor ที่มันแม่นยำได้ขนาดไหน เราเคยซื้อมาเครื่องนึง แค่อุณหภูมิ มันยังวัดผิดไปไกลมาก ๆ หรือค่าฝุ่นเอง ตัว Mi Air Purifier และ Dyson Pure Cool วัดได้ 5 ug/m^3 แต่อีเครื่องนี่วัดได้ 35 ug/m^3 ไปเลย เรียกว่า ห่างกัน 7 เท่ากับ งงมาก ๆ
แล้วเครื่องนี้ ราคาไม่ได้ถูกเลยนะ 700 กว่าบาทได้เลย ถ้าบอกว่า คุณซื้อ Sensor และ Print PCB แบบ Mass Produce แบบนี้ เราว่า ราคามันจะต้องถูกมาก ๆ 700 กว่าบาท Sensor ที่ได้ควรจะมีคุณภาพประมาณนึงเลย แต่กลับได้ของแบบนี้เราก็เริ่มกลัวละ
หรือถ้าจะไปเล่นตัวดี ๆ เลยที่เราเคยรีวิวคือ Qingping Air Monitor Lite ตัวนั้น Sensor ทำงานได้โอเคเลยนะ แต่ก็แลกมากับค่าตัว 2,500 บาทเลย ก็คิดซะว่า เราซื้อหน้าตาละกันมีจอ มีลักษณะการออกแบบที่ดูดี วางที่ไหนมันก็เข้าเนอะ
อีกเหตุผลคือ Connectivity ถ้าเราดูตัวดี ๆ หน่อย มันก็จะสามารถเชื่อมต่อไปที่ Smart Home Platform ต่าง ๆ ได้ ถ้าเป็นฝั่งจีนก็ Ewelink ไม่ก็ Tuya สำหรับเราที่ใช้ Home Assistant การจะเอาอุปกรณ์ที่ต่อเข้า Platform พวกนี้เข้าไม่ใช่เรื่องยากเลย แต่บางที มันก็จะมีปัญหาพวก Latency กับ Measuring Interval ด้วยว่า มันจะวัดทุกกี่วินาที บางที เราอยากได้ให้มันถี่ ๆ หน่อยสัก 5 วินาที ได้ค่าสักตัวนึง ส่วนใหญ่ มันจะวัดไกลกว่านั้นเยอะมาก ทำให้เป็นอีกเหตุผลที่เราไม่พอใจเท่าไหร่
ดังนั้น Requirement ของเรา ก็เลยจะเริ่มจากว่า ต้องใช้ Sensor ที่มีคุณภาพดี ๆ จริง ๆ วัดได้เที่ยงตรง อาจจะไม่ต้องตรงมาก แต่ต้องไม่หลุดความเป็นจริงไปไกลแบบ ลิบ จนไม่ได้อะไรเลย และ ความถี่ในการวัด จะต้องได้ช้าสุด ๆ ที่ 5 วินาที อันนี้ต้องการมาก ๆ
ถัดไปคือ เราเรียนจบ ICT มาเนอะ ทำ Search Engine ทำ AI ดังนั้นไอ้เรื่องที่เราจะไปบัคกรีนั่นนี่ ไปออกแบบ PCB ไม่ใช่ทางเราเท่าไหร่ งาน Electronics แมร่งไม่ใช่ทางเราเลย ทำให้อีก Requirement คือ เราจะต้องไม่มีงานทำแผ่น PCB หรือ ไปนั่งบัคกรีอะไรทั้งนั้น ต้องเป็นของที่เรา Plug & Play ได้เลย
ส่วนเรื่องพวกหน้าตานั่นนี่ เราไม่ติดนะ จะออกมาเป็นสายต่อ ๆ กันเละ ๆ เราก็ไม่ติด สุดท้าย เราก็จะวางในมุมแอบ ๆ ค่อนข้าง ทำให้มันหลบตาอยู่แล้ว จะหน้าตาเหมือนระเบิดก่อการร้าย เราก็ไม่ติดเลย กับเราเอามาวางในห้องต่าง ๆ ภายในบ้านไม่ต้องกันน้ำ ทำให้เราประหยัด Cost ในเรื่องของการทำพวก Housing ไปได้หมดเลย
ของที่เราจะใช้ อย่างแรกคือพวก Sensor อย่างแรกพวก อุณหภูมิ และ ความชื้น ด้วยความที่เราค่อนข้างคุ้นเคยกับ DHT22 อยู่แล้ว มันเป็น Sensor พื้นฐาน หาซื้อง่ายและราคาถูกมาก ใช้พวก ADC คุยกันง่าย ๆ และความแม่นยำ เราว่าไม่ได้แย่เลยนะ อาจจะเพี้ยนไปนิดหน่อย แต่อยู่ในระดับที่เรารับได้ เราโอเค เลยเลือกมาใช้ อันนึง แน่นอนว่า เราไม่ต้องการบัคกรี และต่อพวกตัวต้านทานนั่นนี่ เราเลยเลือกเป็นแบบ DHT22 Module มาเลย ร้านที่เราซื้อประจำก็ขายอยู่ 108 บาท
จากนั้น เราก็ไปหาพวก Sensor สำหรับวัด Particulate Matters หรือ ที่เราคุ้นปากกันว่า PM ทั้งหลายนั่นเอง อย่างน้อยที่เราต้องการคือความเข้มข้น ของ PM2.5 และ PM10 ในอากาศ ซึ่งมันก็จะมีหลายตัวให้เราเลือกเยอะมาก ๆ ใช้หลายหลักการมาก แต่เราอยากเลือกตัวที่มันใช้พวกการกระเจิงของแสงในการวัด มันน่าจะเป็น Gold Standard ในการวัดแล้วละ หลังจากไปอ่าน Paper มาหลายอัน ก็เจอกับ PMS5003 G5 เป็นตัวที่เชื่อมต่อผ่าน UART แปลว่า ในตัวของมันมีพวก Microprocessor Convert พวกข้อมูลที่ได้ออกมาแล้ว ดังนั้น เราไม่ต้องไปต่อตัวต้านทาน ทำ Pull Up Down อะไรเลย เราแค่เสียบ UART อ่านค่าตาม Brud Rate ที่เขากำหนดไว้แค่นั้นเลย อ่าาาา เข้ากับ Requirement ที่เราบอกไว้มาก ๆ หยิบมาสิ ราคาแพงหน่อยที่ 695 บาท
หลังจากเราได้ Sensor ครบแล้ว เรารู้ละว่า เราจะต้องเชื่อมต่อด้วย Protocol อะไรบ้าง เรามากำหนด Board ที่เราจะใช้ได้ละ กับ กำลังประมวลผล เราไม่ได้ต้องการอะไรเยอะ เพราะเราแค่อ่านข้อมูลจาก Sensor 2 ตัว แล้วส่งต่อเท่านั้นเอง เราเลยไปดูในกลุ่มที่เป็น Microcontroller ที่กินไฟน้อย ๆ มาก ๆ จะดีกว่าในระยะยาวด้วย ซึ่งในบ้านเรามี ESP8266 และ ESP32 เหลืออยู่พอดี แน่นอนว่า เราก็เอา ESP8266 สิ เพราะ Feature น้อยกว่าแต่เพียงพอกับการใช้งาน กินไฟน้อยกว่า ราคาถูกกว่าอีก ร้านที่เราซื้อขายอยู่ตัวละ 128 บาท
เพื่อความง่ายในการแพคของทั้งหมดเข้าด้วยกัน เราเลยหาซื้อ Breadboard อันเล็ก ๆ มาขนาดสัก 400 รู เอาแบบใสด้วยอะ กับด้านหลังเขามีพวกกาวให้ด้วย เราก็น่าจะสามารถเอาพวก Sensor ไปติดตรงนั้นให้มันเป็นชิ้นเดียว ไม่ห้อยโตงเตง ดูดีขึ้นมาหน่อยมั้ง ร้านที่เราซื้ออยู่ที่ 38 บาท
สุดท้ายคือพวกสายจั๊ม อันนี้เราไม่ขอคิดละกัน เพราะมันไม่กี่บาทเท่านั้นเอง แผงนึง 40 เส้น สัก 30 บาทเองมั้ง คือมันอันไม่ถึงบาทเลย ไม่นับละกันนะ
แปลว่า ทั้งหมด ราคาก็จะอยู่ที่ 969 บาท เท่านั้น ถามว่า โอเคแหละ ราคามันอาจจะพอๆ หรือมากกว่าพวก Sensor วัดคุณภาพอากาศบางตัวเลยนะ แต่อันนี้เรามั่นใจว่า Sensor ที่เราเอามาใช้คุณภาพดี ไม่มีปัญหาเรื่องความคลาดเคลื่อนมากเท่าไหร่ การเชื่อมต่อเอง เราก็เป็นคนเลือก Protocol เองได้หมด ไม่ต้องมานั่งพึ่ง IoT Platform ด้วย ซึ่งเราก็ไม่ชอบใจเท่าไหร่เหมือนกัน บางทีเน็ตแตก อย่างน้อยเราคุยบน Local ก็ย่อมดีกว่าแน่ ๆ
อย่างที่เราบอกไปใน Requirement เราจะต้องไม่มีพวกการบัคกรีใด ๆ ทั้งสิ้น เราแค่เน้น Plug & Play เท่านั้น ทำให้สิ่งที่เราทำ เราก็แค่เสียบ ๆ เข้าไปพวก Pinout ของ Board และ Sensor เราอ่านพวก Datasheet เอาได้ อ่านหนังสือออกเนอะ
เราก็แค่ไปหาว่า Board ที่เราซื้อมา มันเป็นแบบไหน เพราะ ESP8266 มันก็เอามาทำออกมาเป็น Board หลายรุ่นมาก ๆ เช่นรุ่นที่เรามีคือ ESP12-E ถามว่ารู้ได้ไง อ่านเอาที่บอร์ด มันเขียนอยู่
ในพวก Pinout มันก็จะบอกละแหละว่า Pin นี้เราเสียบเอามาทำอะไรบ้าง เช่น UART สำหรับ PMS5003 G5 มันก็จะมี UART 2 Channel ด้วยกัน ด้วยความที่เรากลัวว่า เอ๊ มันจะเป็นช่องสำหรับเชื่อมต่อกับคอมพิวเตอร์เรามั้ย เราเลยไปเลือก UART 2 ไป เป็น GPIO13,15 แทน เพื่อความสบายใจของเราละกัน ขี้เกียจแก้แล้ว ที่เหลือคือ DHT22 ก็ง่ายมาก ๆ ก็เลือกเอาสัก Pin ละกัน เราเลือก GPIO14 ก็เสียบ กับพวกเรื่องไฟเลี้ยงต่าง ๆ ด้วยความที่ Sensor มีไม่เยอะ เสียบตรงดึงจาก Board ก็ยังไหวอยู่แหละ DHT22 กิน 3.3V และ PMS5003 G5 ใช้ 5V ก็เสียบเอาได้เลย (ถ้าทำ Sensor เยอะ ๆ กระแสเยอะ ๆ อย่าเสียบแบบนี้นะ เดี๋ยวบอร์ดพังหมด)
เมื่อเราต่อเสร็จ เราก็จะเริ่ม Flash Program เข้าไปกันละ แน่นอนว่า เราขี้เกียจเขียนแน่ ๆ ขนาดตอนเรียน Embedded System ตอนป.ตรี ยังให้เพื่อนเขียนเลย (อย่าลอกเลียนแบบ ไม่ดีนะเด็ก ๆ) ฮ่า ๆ ให้เรามาเขียนอะไรพวกนี้ก็ยากไปสำหรับเราแน่ ๆ เราเลยไปใช้ ESPHome ดีกว่า เขาเตรียมพวก Sensor Library อะไรมาให้เราหมดแล้ว
esphome:
name: masterbedroom
esp8266:
board: esp12e
# Enable logging
logger:
# Enable Home Assistant API
api:
password: ""
ota:
password: ""
wifi:
ssid: "<your wifi ssid>"
password: "<your wifi password>"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Masterbedroom Fallback Hotspot"
password: "<captive portal password>"
captive_portal:
# Setup UART
uart:
rx_pin: GPIO13
tx_pin: GPIO15
baud_rate: 9600
sensor:
# PM Sensor
- platform: pmsx003
type: PMSX003
pm_1_0:
name: "PM1"
pm_2_5:
name: "PM2.5"
pm_10_0:
name: "PM10"
update_interval: 0ms
# DHT22 Sensor
- platform: dht
pin: GPIO14
model: DHT22
temperature:
name: "Temperature"
id: "dht22temp"
humidity:
name: "Humidity"
id: "dht22humid"
update_interval: 5s
สิ่งที่เราต้องทำก็คือ การเขียน Config File บอกว่า Board ของเรา Model ไหน พวก Sensor เรามีอะไรบ้างอยู่ Pin ไหนบ้างแค่นั้นแหละ นอกจากนั้น มันยังรองรับการเชื่อมต่อหลายอย่างมาก ๆ นะ เช่น เราอาจจะมี MQTT Broker อยู่แล้ว เราก็คุยผ่าน MQTT ก็ได้ หรือถ้าเราใช้กับ Home Assistant ง่ายมาก เราก็ตั้ง API Password กับต่อ WiFi ไว้ ก็เรียบร้อย ถามว่าพวก Config เราเอามาจากไหน ง่ายมาก ๆ เราก็เข้าไปในเว็บของ ESPHome แล้วก๊อป Config เขามาเลย อยากได้อะไรก็ก๊อป ๆ มา แค่นั้น ฮ่า ๆ
จากนั้น ESPHome มันจะอ่าน Config File ของเรานี่แหละ แล้ว ทำการ Compile ออกมาเป็น Program และ Flash เข้ากับ Board ของเราได้เลย ง่ายมาก ๆ เราไม่ต้องเขียนโปรแกรมอะไรเอง ไม่ต้อง Maintain Source Code อะไรเองทั้งนั้น
เราเคยรีวิวไปแล้วละว่า บ้านเราใช้ Home Assistant เป็นระบบ Smart Home หลังจากเรา Flash แล้ว ตัวบอร์ดมันก็จะต่อ WiFi เข้าเครือข่ายของบ้านเรา จากนั้นถ้าเราเข้าไปใน Home Assistant มันก็จะ Auto Detect อุปกรณ์ให้เราเลย โคตรสะดวกเลย
เมื่อต่อเข้ามาใน Home Assistant แล้วเราก็จะได้ออกมาเป็น Sensor เพื่อให้เราเรียกค่าได้ง่าย ๆ ไปใส่ใน Dashboard ของเราได้เลย
หรือเราจะให้ Home Assistant ยิงเข้า InfluxDB แล้ว Visualise ผ่าน Grafana เลยยังได้
การมานั่งทำ Sensor สำหรับวัดคุณภาพอากาศในบ้านแบบ DIY จริง ๆ นะ สำหรับคนทั่ว ๆ ไป จ่ายเงินซื้อเอาเถอะ มันหาทำกเกินไป แต่สำหรับเราที่อยากลองก็เรียกว่าเป็น Project เล็ก ๆ ที่สนุกดีนะ แล้วก็ใช้ได้จริง ๆ จนทุกวันนี้ เราใช้งานมาเป็นเดือน ๆ มันก็ยังทำงานได้แบบไม่มีปัญหาเลย และคิดว่าจะใช้ไปอีกนานเลยละ นอกจากนั้น เรายังสามารถดัดแปลง เพิ่ม Sensor พวก MQ Sensor อาจจะเป็น MQ Sensor ที่วัดพวก LPG แล้วเอาไว้ในห้องครัว เพื่อให้มันแจ้งเตือนบางที ที่เราอาจจะลืมปิดแก๊สก็ทำได้เหมือนกัน เรียกว่าต้องพัฒนาอีกเยอะ วันนี้เป็นก้าวแรกที่เราจะมาเรียนรู้อะไรสนุก ๆ อีกครั้งละกัน
เวลามันผ่านไปเร็วมาก ๆ เรายังจำวันที่ Macbook Pro M1 Max ของเรามาส่งที่บ้านได้อยู่เลยว่า เรารู้สึกตื่นเต้นมาก ๆ เวลาผ่านไป 3 ปี หมดประกันเรียบร้อยแล้ว วันนี้เราจะมาเล่ากันว่า สภาพตอนนี้มันเป็นอย่างไร และยังจะสามารถใช้ได้อีกนานหรือไม่...
ไหน ๆ Apple Watch เข้าเลขสองหลักกันแล้ว มีหรือเราจะพลาด เพื่อเป็นการฉลองก็เลยจัดมาเลยเรือนนึง เป็น Apple Watch เรือนที่ 3 ของเราละ ผ่านมา 10 Series จะมีอะไรใหม่ ใส่แล้วเป็นอย่างไร วันนี้เราจะมารีวิวเล่าให้อ่านกัน...
จาก Part ที่แล้วเราเล่าไปส่วนหนึ่งแล้ว แต่ยังขาดประเด็นสำคัญนั่นคือ Performance ของ M4 Max ว่า มันเข้ามาเปลี่ยนแปลงการทำงาน หรือทำให้การทำงานของเราเร็วขึ้นได้อย่างไร วันนี้จะเน้น Benchmark และพยายามมาหาสาเหตุกันว่า ทำไมมันถึงเป็นแบบนั้นกัน...
หลังจาก Apple Transition ไปสู่ Apple Silicon มาจนถึงจุดที่การเปลี่ยนผ่านเสร็จสิ้น เราก็ไม่ได้รู้สึกตื่นเต้นอะไรกับ Apple Silicon อีกเลย จนกระทั่งตอนที่ M4 ออกนี่แหละ ที่เราคิดว่า มันถึงจุดที่ใช่ละ ฤกษ์มันมาแล้ว ก็จัดเลยสิครับ มาดูกันว่าฤกษ์มันจะตรงอย่างที่เราคิดหรือไม่...