วันศุกร์ที่ 8 มีนาคม พ.ศ. 2567

สร้างระบบวัด PM 2.5 แสดงข้อมูลบนเว็บแบบ Real-time โดยใช้ Flask เฟรมเวิร์ก

        




        ปัญหา PM2.5 (Particulate Matter 2.5) เป็นหนึ่งในปัญหาสุขภาพที่สำคัญและถูกติดตาม มีการพิจารณาอย่างสม่ำเสมอทั้งในระดับท้องถิ่นและระดับโลก และนี่คือบางปัญหาที่เกี่ยวข้องกับ PM2.5

  1. สุขภาพของมนุษย์:

    • PM2.5 เป็นอนุภาคขนาดเล็กมีความเข้มข้นสูง สามารถเข้าสู่ระบบทางเดินหายใจได้ง่าย. การสูบหายใจ PM2.5 สามารถทำให้เกิดโรคทางระบบทางเดินหายใจ, โรคหัวใจ, และปัญหาสุขภาพอื่น ๆ

  2. มลพิษทางอากาศ:

    • PM2.5 มีการรวมตัวของสารพิษที่มีผลกระทบต่อสุขภาพ, เช่น โลหะหนัก, สารเคมี, และสารพิษทางอากาศอื่น ๆ ที่มีขึ้นต่อมาจากการเผาไหม้, การจราจร, และจากกิจกรรมทางอุตสาหกรรม

  3. สภาพอากาศและการเปลี่ยนแปลงสภาพภูมิอากาศ:

    • การเผาไหม้ป่า การผลิตพลังงาน และกิจกรรมทางอุตสาหกรรมอื่น ๆ สามารถเป็นต้นเหตุที่ทำให้มีการปล่อย PM2.5 ได้มากขึ้น ก

        การลดปัญหา PM2.5 ควรมีการทำงานร่วมกันระหว่างภาครัฐ, ภาคเอกชน, และประชาชน. นอกจากนี้, การใช้เทคโนโลยีเพื่อวัดและติดตามระดับ PM2.5 สามารถช่วยในการจัดการปัญหานี้ได้

        บทความนี้ขอนำเสนอการนำเทคโนโลยีมาใช้ เพื่อการวัดค่า PM2.5 เพื่อการวิเคราะห์ และพัฒนาต่อไป


รายการอุปกรณ์ และเครื่องมือการพัฒนา

    1. - Raspberry Pi (ในตัวอย่างนี้ใช้ Raspberry Pi 3 Model B)
    2. - GP2Y1014AU0F PM2.5 Dust Sensor
    3. - MySQL Database
    4. -Flask (Python Web Framework)
    5. -Chart.js (JavaScript Library สำหรับกราฟ)
    6. -Bootstrap
    7. - HTM
  1. Flask เป็นเฟรมเวิร์ก (framework) สำหรับพัฒนาเว็บแอปพลิเคชัน (web applications) ด้วยภาษา Python Flask ถูกออกแบบมาเพื่อง่ายต่อการใช้งาน และมีความเป็นระเบียบ และมีความยืดหยุ่น

การใช้ Flask เพื่อสร้างเว็บแอปพลิเคชันที่สามารถให้ข้อมูลแบบ Real-time หรือในเวลาจริงได้. การให้ข้อมูลแบบ Real-time ถือเป็นสิ่งสำคัญในการพัฒนาเว็บแอปพลิเคชันที่ต้องการให้ผู้ใช้ดูข้อมูลทันทีหรือในขณะเกิดเหตุการณ์ ณ เวลานั้น.

Flask มีความยืดหยุ่นมาก, และนักพัฒนาสามารถใช้หลายวิธีในการทำให้เว็บแอปพลิเคชันมีการอัปเดตข้อมูลแบบ Real-time ได้, ซึ่งอาจเป็นผลมาจากการใช้เทคโนโลยี WebSocket, Server-Sent Events (SSE), หรือการให้ API Endpoint ที่ทำให้ผู้ใช้สามารถดึงข้อมูลใหม่ๆ มาทุกๆ ระยะเวลา

นอกจากนี้, หากต้องการให้ข้อมูล Real-time มีหลายวิธีในการออกแบบและการปรับให้เข้ากับความต้องการของโปรเจกต์. การใช้ JavaScript และไลบรารีที่เชี่ยวชาญเกี่ยวกับการจัดการการอัปเดตแบบ Real-time เช่น Socket.IO สามารถช่วยในกรณีนี้

สร้างเว็บแอปพลิเคชัน Flask ที่สามารถให้ข้อมูล Real-time ไม่ใช่แค่การให้ข้อมูลตาม request ปกติเท่านั้น, แต่ยังการอัปเดตข้อมูลโดยอัตโนมัติทุกครั้งที่มีการเปลี่ยนแปลงค่าที่ต้องการแสดงผลไปยังผู้ใช้


GP2Y1014AU0F เป็นเซ็นเซอร์วัดค่า PM2.5 (Particulate Matter 2.5) ซึ่งเป็นอนุภาคละเอียดขนาดเล็กที่มีขนาดไม่เกิน 2.5 ไมโครเมตร (μm). PM2.5 เป็นอนุภาคที่เล็กมีความเสี่ยงต่อสุขภาพมนุษย์เนื่องจากสามารถเข้าสู่ระบบทางเดินหายใจได้ง่ายและมีผลกระทบต่อระบบทางเลือก

เซ็นเซอร์ GP2Y1014AU0F ถูกออกแบบมาเพื่อวัดค่า PM2.5 โดยใช้หลักการของการวัดการสะสมของอนุภาค. เมื่ออนุภาค PM2.5 สะสมในตัวเซ็นเซอร์, มันจะส่งสัญญาณไปยังอุปกรณ์อิเล็กทรอนิกส์เพื่อทำการวัดค่า


หลักการทำงานของ GP2Y1014AU0F มีดังนี้

  1. การสะสมของอนุภาค

    • เซ็นเซอร์จะใช้กรองในการทำให้อนุภาคขนาดเล็กสะสมไว้ในตัวของเซ็นเซอร์.
  2. วัดค่าและส่งสัญญาณ

    • เมื่ออนุภาคสะสมถึงระดับที่เพียงพอ, เซ็นเซอร์จะทำการวัดค่าและส่งสัญญาณไปยังอุปกรณ์อิเล็กทรอนิกส์
  3. อ่านค่า

    • อุปกรณ์อิเล็กทรอนิกส์จะอ่านค่าที่ได้จากเซ็นเซอร์และนำมาประมวลผล
  4. แสดงผลหรือการแจ้งเตือน:

    • ค่าที่ได้จากเซ็นเซอร์สามารถนำไปแสดงผลที่หน้าจอหรือใช้ในการสร้างระบบแจ้งเตือนเมื่อค่า PM2.5 เกินค่าที่กำหนด

GP2Y1014AU0F มักถูกนำมาใช้ในโปรเจกต์ที่ต้องการวัดและตรวจวัดค่า PM2.5 เพื่อตรวจสอบคุณภาพอากาศและดูแลสุขภาพของผู้ใช้


การใช้ GP2Y1014AU0F กับ Raspberry Pi หรือ Arduino

1. Raspberry Pi

วงจรต่อเซ็นเซอร์ GP2Y1014AU0F กับ Raspberry Pi

  • VCC (ขา 1 ของ GP2Y1014AU0F) เชื่อมต่อกับ 5V (ขา 2) ของ Raspberry Pi
  • GND (ขา 4 ของ GP2Y1014AU0F) เชื่อมต่อกับ GND (ขา 6) ของ Raspberry Pi
  • Vo (ขา 3 ของ GP2Y1014AU0F) เชื่อมต่อกับขา Analog Input ของ Raspberry Pi (ตามต้องการ)



2. Arduino

วงจรต่อเซ็นเซอร์ GP2Y1014AU0F กับ Arduino:

  • VCC (ขา 1 ของ GP2Y1014AU0F) เชื่อมต่อกับ 5V ของ Arduino
  • GND (ขา 4 ของ GP2Y1014AU0F) เชื่อมต่อกับ GND ของ Arduino
  • Vo (ขา 3 ของ GP2Y1014AU0F) เชื่อมต่อกับขา Analog Input ของ Arduino (ตามต้องการ)

โปรแกรม Arduino:




ขั้นตอนการเชื่อมต่อระบบโดยใช้ Raspberry Pi

- เชื่อมต่อ GP2Y1014AU0F PM2.5 Dust Sensor

  • ติดตั้ง GP2Y1014AU0F ตามคู่มือหรือแผนผังการต่อวงจรที่มากับเซ็นเซอร์.
  • ต่อขา Vcc ของ GP2Y1014AU0F กับขา 5V ของ Raspberry Pi.
  • ต่อขา GND ของ GP2Y1014AU0F กับขา GND ของ Raspberry Pi.
  • ต่อขา Vo ของ GP2Y1014AU0F กับขา A0 (หรือตัวอื่น ๆ ที่คุณต้องการใช้) ของ Raspberry Pi

- ติดตั้ง MySQL Database:

  • ติดตั้ง MySQL บน Raspberry Pi
  • sudo apt-get update sudo apt-get install mysql-server

  • สร้างฐานข้อมูลและตารางสำหรับเก็บข้อมูล PM2.5
  • CREATE DATABASE pm25_data; USE pm25_data; CREATE TABLE pm25_reading ( id INT AUTO_INCREMENT PRIMARY KEY, value FLOAT, timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

- ติดตั้งไลบรารีสำหรับ Python ในการทำงานกับ MySQL

    sudo pip install mysql-connector-python

- ติดตั้ง Flask สำหรับสร้างเว็บเซิร์ฟเวอร์
        sudo pip install flask

-ติดตั้ง Chart.js

  • สามารถดาวน์โหลด Chart.js จาก เว็บไซต์ Chart.js.
  • หรือใช้ CDN ในหัวข้อ <head> ของ HTML เพื่อเรียกใช้ Chart.js:
- โค้ด Python สำหรับ Raspberry Pi (pm25_monitor_flask.py)


- HTML Template (templates/index.html) ดาวน์โหลดที่นี่ html


การรัน:

  • บันทึกไฟล์ Python ใน Raspberry Pi ด้วยชื่อ pm25_monitor_flask.py
  • บันทึกไฟล์ HTML ใน Raspberry Pi ในโฟลเดอร์ templates ด้วยชื่อ index.html
  • เปิด Terminal และรันคำสั่ง
  • python pm25_monitor_flask.py

    เข้าเว็บไซต์ผ่านบราวเซอร์ที่ URL: http://raspberry_pi_ip:5000/ (แทน raspberry_pi_ip ด้วยที่อยู่ IP ของ Raspberry Pi)

หมายเหตุ:

  • ในโค้ดตัวอย่าง, ค่า PM2.5 ถูกกำหนดเป็นค่าคงที่ 25.5 เพื่อการทดสอบ. คุณต้องปรับแต่งการอ่านข้อมูลจาก GP2Y1014AU0F ตามคู่มือของเซ็นเซอร์และการต่อวงจรของคุณ


ผลการทดลอง





ทางผู้เขียนหวังว่าผู้อ่านจะได้รับประโยชน์ไม่มากก็น้อย หากมีข้อผิดพลาดประการใดต้องขออภัยไว้ ณ ที่นี้

หากสนใจสั่งทำติดต่อ หรือปรึกษาฟรีที่ LINE หรือ เพจ Facebook