Much life tech(ของดีที่อยากแชร์)
วันพุธที่ 24 เมษายน พ.ศ. 2567
5 ไอเดียสร้าง Passive Income คุณก็ทำได้
วันจันทร์ที่ 11 มีนาคม พ.ศ. 2567
ระบบ Access control เปิดประตูด้วยกล้องด้วย Cv2(Open CV) และ Camera Module
ระบบ Access control เปิดประตูด้วยกล้องด้วย Cv2(Open CV) และ Camera Module
สวัสดีครับยทความวันนี้ขอนำเสนอโปรเจ็คเกี่ยวกับ การใช้เทคโนโลยี การประมวลผลทางภาพ (Image processing) มาพัฒนะระบบปลดล็อคประตู้ด้วยการสแกนใบหน้า ด้วยกล้อง Raspberry Pi Camera กับ OpenCV ทุกท่านสามารถอ่านได้จากบทความนี้ และนำไปพัฒนาต่อยอดได้ครับ
cv2
เป็นชื่อย่อของ OpenCV (Open Source Computer Vision Library) ซึ่งเป็นไลบรารีโอเพ่นซอร์สที่ถูกพัฒนาขึ้นเพื่อให้เพิ่มสามารถในการประมวลผลภาพ และวิดีโอเพื่อ การตรวจจับวัตถุ การระบุใบหน้า การวิเคราะห์ภาพการแสดงท่าทางต่างๆ และฟังก์ชันอื่น ๆ ที่เกี่ยวข้องกับการประมวลผลทางภาพ (Image processing)
ติดตั้ง OpenCV บน Raspberry Pi โดยใช้คำสั่ง
sudo pip3 install opencv-python
โดยบทความนี้เราจะใช้คู่กับไลบรารี face_recognition face_recognition
เป็นไลบรารีที่ใช้สำหรับการตรวจจับใบหน้า (face detection) และการระบุใบหน้า (face recognition) ใน Python. ไลบรารีนี้ถูกสร้างมาเพื่อง่ายต่อพัฒนา และสามารถทำงานร่วมกับไลบรารี OpenCV เพื่อประมวลผลภาพสำหรับการใช้ face_recognition
ต้องติดตั้งไลบรารีก่อนที่จะเริ่มใช้งาน คำสั่งติดตั้งไลบรารี face_recognition
คือ
pip install face_recognition
ท่านสามารถดาวน์โหลด Source ไปพัฒนาซึ่งการจะพัฒนาเมื่อนำ Source Code ไปรันแล้วอาจจะติดปัญหา เกี่ยวกับ Library หรือการ Config ต่างท่านต้องดูรายละเอียดการ Config ตามที่โปรแกรมได้ Debug
วันศุกร์ที่ 8 มีนาคม พ.ศ. 2567
สร้างระบบวัด PM 2.5 แสดงข้อมูลบนเว็บแบบ Real-time โดยใช้ Flask เฟรมเวิร์ก
ปัญหา PM2.5 (Particulate Matter 2.5) เป็นหนึ่งในปัญหาสุขภาพที่สำคัญและถูกติดตาม มีการพิจารณาอย่างสม่ำเสมอทั้งในระดับท้องถิ่นและระดับโลก และนี่คือบางปัญหาที่เกี่ยวข้องกับ PM2.5
สุขภาพของมนุษย์:
- PM2.5 เป็นอนุภาคขนาดเล็กมีความเข้มข้นสูง สามารถเข้าสู่ระบบทางเดินหายใจได้ง่าย. การสูบหายใจ PM2.5 สามารถทำให้เกิดโรคทางระบบทางเดินหายใจ, โรคหัวใจ, และปัญหาสุขภาพอื่น ๆ
มลพิษทางอากาศ:
- PM2.5 มีการรวมตัวของสารพิษที่มีผลกระทบต่อสุขภาพ, เช่น โลหะหนัก, สารเคมี, และสารพิษทางอากาศอื่น ๆ ที่มีขึ้นต่อมาจากการเผาไหม้, การจราจร, และจากกิจกรรมทางอุตสาหกรรม
สภาพอากาศและการเปลี่ยนแปลงสภาพภูมิอากาศ:
- การเผาไหม้ป่า การผลิตพลังงาน และกิจกรรมทางอุตสาหกรรมอื่น ๆ สามารถเป็นต้นเหตุที่ทำให้มีการปล่อย PM2.5 ได้มากขึ้น ก
การลดปัญหา PM2.5 ควรมีการทำงานร่วมกันระหว่างภาครัฐ, ภาคเอกชน, และประชาชน. นอกจากนี้, การใช้เทคโนโลยีเพื่อวัดและติดตามระดับ PM2.5 สามารถช่วยในการจัดการปัญหานี้ได้
บทความนี้ขอนำเสนอการนำเทคโนโลยีมาใช้ เพื่อการวัดค่า PM2.5 เพื่อการวิเคราะห์ และพัฒนาต่อไป
รายการอุปกรณ์ และเครื่องมือการพัฒนา
- - Raspberry Pi (ในตัวอย่างนี้ใช้ Raspberry Pi 3 Model B)
- - GP2Y1014AU0F PM2.5 Dust Sensor
- - MySQL Database
- -Flask (Python Web Framework)
- -Chart.js (JavaScript Library สำหรับกราฟ)
- -Bootstrap
- - HTM
- 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 มีดังนี้
การสะสมของอนุภาค
- เซ็นเซอร์จะใช้กรองในการทำให้อนุภาคขนาดเล็กสะสมไว้ในตัวของเซ็นเซอร์.
วัดค่าและส่งสัญญาณ
- เมื่ออนุภาคสะสมถึงระดับที่เพียงพอ, เซ็นเซอร์จะทำการวัดค่าและส่งสัญญาณไปยังอุปกรณ์อิเล็กทรอนิกส์
อ่านค่า
- อุปกรณ์อิเล็กทรอนิกส์จะอ่านค่าที่ได้จากเซ็นเซอร์และนำมาประมวลผล
แสดงผลหรือการแจ้งเตือน:
- ค่าที่ได้จากเซ็นเซอร์สามารถนำไปแสดงผลที่หน้าจอหรือใช้ในการสร้างระบบแจ้งเตือนเมื่อค่า PM2.5 เกินค่าที่กำหนด
GP2Y1014AU0F มักถูกนำมาใช้ในโปรเจกต์ที่ต้องการวัดและตรวจวัดค่า PM2.5 เพื่อตรวจสอบคุณภาพอากาศและดูแลสุขภาพของผู้ใช้
การใช้ GP2Y1014AU0F กับ Raspberry Pi หรือ Arduino
วงจรต่อเซ็นเซอร์ GP2Y1014AU0F กับ Raspberry Pi
- VCC (ขา 1 ของ GP2Y1014AU0F) เชื่อมต่อกับ 5V (ขา 2) ของ Raspberry Pi
- GND (ขา 4 ของ GP2Y1014AU0F) เชื่อมต่อกับ GND (ขา 6) ของ Raspberry Pi
- Vo (ขา 3 ของ GP2Y1014AU0F) เชื่อมต่อกับขา Analog Input ของ Raspberry Pi (ตามต้องการ)
วงจรต่อเซ็นเซอร์ 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 บน 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 );
-ติดตั้ง Chart.js
- สามารถดาวน์โหลด Chart.js จาก เว็บไซต์ Chart.js.
- หรือใช้ CDN ในหัวข้อ
<head>
ของ HTML เพื่อเรียกใช้ Chart.js:
การรัน:
- บันทึกไฟล์ Python ใน Raspberry Pi ด้วยชื่อ
pm25_monitor_flask.py
- บันทึกไฟล์ HTML ใน Raspberry Pi ในโฟลเดอร์
templates
ด้วยชื่อindex.html
- เปิด Terminal และรันคำสั่ง
- python pm25_monitor_flask.py
http://raspberry_pi_ip:5000/
(แทน raspberry_pi_ip
ด้วยที่อยู่ IP ของ Raspberry Pi)หมายเหตุ:
- ในโค้ดตัวอย่าง, ค่า PM2.5 ถูกกำหนดเป็นค่าคงที่ 25.5 เพื่อการทดสอบ. คุณต้องปรับแต่งการอ่านข้อมูลจาก GP2Y1014AU0F ตามคู่มือของเซ็นเซอร์และการต่อวงจรของคุณ