สารบัญ:
- ขั้นตอนที่ 1: ฮาร์ดแวร์
- ขั้นตอนที่ 2: การเดินสาย Raspbery Pi
- ขั้นตอนที่ 3: รวบรวมข้อมูลจากเซ็นเซอร์
- ขั้นตอนที่ 4: การตั้งค่าบริการบ้านอัตโนมัติ
- ขั้นตอนที่ 5: ผลลัพธ์
- ขั้นตอนที่ 6: บทสรุป
วีดีโอ: ระบบตรวจสอบและควบคุมสภาพอากาศในร่ม Raspberry Pi: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
ผู้คนต้องการความสะดวกสบายภายในบ้านของพวกเขา เนื่องจากสภาพอากาศในพื้นที่ของเราอาจไม่เหมาะกับเรา เราจึงใช้เครื่องใช้หลายอย่างเพื่อรักษาสภาพแวดล้อมภายในอาคารให้แข็งแรง เช่น เครื่องทำความร้อน เครื่องทำความเย็น เครื่องเพิ่มความชื้น โหมดสัมผัสสิ่งแวดล้อมและควบคุมตนเอง อย่างไรก็ตาม:
- หลายคนมีราคาแพงเกินไป / ไม่คุ้มกับเงินที่จ่ายไป
- วงจรไฟฟ้าของพวกเขาหักได้ง่ายกว่าและเปลี่ยนได้ยากกว่าชิ้นส่วนเครื่องจักรกลทั่วไป
- อุปกรณ์ต้องได้รับการจัดการโดยแอปของผู้ผลิต เป็นเรื่องปกติที่จะมีอุปกรณ์อัจฉริยะสองสามเครื่องในบ้านของคุณและแต่ละเครื่องมีแอพของตัวเอง โซลูชันของพวกเขาคือการรวมแอปเข้ากับแพลตฟอร์มต่างๆ เช่น Alexa, Google Assistant และ IFTTT เพื่อให้เรามีตัวควบคุมแบบ "รวมศูนย์"
- สิ่งสำคัญที่สุดคือผู้ผลิตมีข้อมูลของเรา และ Google/Amazon/IFTTT/ฯลฯ มีข้อมูลของเรา เราไม่ คุณอาจไม่สนใจความเป็นส่วนตัว แต่บางครั้งเราทุกคนอาจต้องการดูรูปแบบความชื้นในห้องนอนของคุณ เช่น เพื่อตัดสินใจว่าจะเปิดหน้าต่างเมื่อใด
ในบทช่วยสอนนี้ ฉันสร้างต้นแบบของตัวควบคุมสภาพอากาศในร่มที่ใช้ Raspberry Pi ที่มีราคาค่อนข้างต่ำ RPi สื่อสารกับอุปกรณ์ต่อพ่วงผ่านอินเทอร์เฟซ SPI/I2C/USB:
- เซ็นเซอร์บรรยากาศใช้ในการเก็บอุณหภูมิ ความชื้น และความกดอากาศ
- เซ็นเซอร์คุณภาพอากาศที่มีความแม่นยำสูงให้ข้อมูลฝุ่นละอองในบรรยากาศ (PM2.5 และ PM10) ที่ใช้ในการคำนวณดัชนีคุณภาพอากาศ (AQI)
ตัวควบคุมจะประมวลผลข้อมูลที่ได้มาและทริกเกอร์การทำงานของอุปกรณ์โดยส่งคำขอไปยังบริการอัตโนมัติของ IFTTT Webhook ซึ่งควบคุมปลั๊ก WiFi Smart ที่รองรับ
ต้นแบบถูกสร้างขึ้นในลักษณะที่สามารถเพิ่มเซ็นเซอร์ เครื่องใช้ และบริการอัตโนมัติอื่นๆ ได้อย่างง่ายดาย
ขั้นตอนที่ 1: ฮาร์ดแวร์
ฮาร์ดแวร์ที่แนะนำในการสร้างสิ่งนี้:
- Raspberry Pi (รุ่นใดก็ได้) พร้อม WiFi ฉันสร้างสิ่งนี้โดยใช้ RPi B+ RPi ZeroW ทำได้ดีและมีราคา ~15$
- เซ็นเซอร์ BME280 สำหรับอุณหภูมิ ความชื้น ความกดอากาศ ~5$
- โมดูลเซนเซอร์ตรวจจับคุณภาพอากาศ Nova SDS011 เลเซอร์ PM2.5/PM10 ความแม่นยำสูง ~25$
- จอแสดงผล LED/LCD ฉันใช้หน้าจอ OLED ขนาด 2.23 นิ้ว SSD1305 ~15$
- WiFi/ZigBee/Z-Wave Smart Sockets บางตัว 10-20$ ต่อคน
- เครื่องฟอกอากาศ, เครื่องทำความชื้น, เครื่องลดความชื้น, เครื่องทำความร้อน, เครื่องทำความเย็น ฯลฯ พร้อมสวิตช์ทางกล ตัวอย่างเช่น ฉันใช้เครื่องฟอกอากาศราคาถูกเพื่อทำบทช่วยสอนนี้
ค่าใช้จ่ายทั้งหมดข้างต้นคือ <100$ ซึ่งน้อยกว่าเครื่องกรองอัจฉริยะที่มีราคา 200$ มาก
ขั้นตอนที่ 2: การเดินสาย Raspbery Pi
แผนภาพวงจรแสดงวิธีการต่อ RPi กับเซ็นเซอร์ BME280 โดยใช้อินเทอร์เฟซ I2C และ OLED แสดงผล HAT โดยใช้อินเทอร์เฟซ SPI
สามารถติดตั้ง Waveshare OLED HAT ที่ด้านบนของ GPIO ได้ แต่คุณต้องมีตัวแยกสัญญาณ GPIO เพื่อแชร์กับอุปกรณ์ต่อพ่วงอื่นๆ สามารถกำหนดค่าให้ใช้ I2C ได้โดยการบัดกรีตัวต้านทานที่ด้านหลัง
ข้อมูลเพิ่มเติมเกี่ยวกับ SSD1305 OLED HAT สามารถพบได้ที่นี่
ต้องเปิดใช้งานอินเทอร์เฟซทั้ง I2C และ SPI ใน RPi ด้วย:
sudo raspi-config
เซ็นเซอร์ตรวจจับฝุ่น Nova SDS011 เชื่อมต่อกับ RPi ผ่านพอร์ต USB (ด้วยอะแดปเตอร์ Serial-USB)
ขั้นตอนที่ 3: รวบรวมข้อมูลจากเซ็นเซอร์
ข้อมูลบรรยากาศซึ่งดูค่อนข้างตรงไปตรงมาถูกรวบรวมจากเซ็นเซอร์ BME280 จากสคริปต์หลาม
21-พ.ย.-20 19:19:25 - INFO - ชดเชยการอ่าน (id=6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, เวลาประทับ=2020-11-21 19:19:25.604317 อุณหภูมิ=20.956 °C ความดัน=1019.08 hPa ความชื้น=49.23 % rH)
ข้อมูลเซ็นเซอร์ฝุ่นต้องการการประมวลผลเพิ่มเติมเล็กน้อย โมดูลเซ็นเซอร์ดูดตัวอย่างอากาศบางส่วนเพื่อตรวจจับอนุภาค ดังนั้นควรทำงานชั่วขณะ (30 วินาที) เพื่อให้ได้ผลที่เชื่อถือได้ จากการสังเกตของฉัน ฉันพิจารณาเฉพาะค่าเฉลี่ยของ 3 ตัวอย่างสุดท้าย กระบวนการนี้มีอยู่ในสคริปต์นี้
21-พ.ย.-20 19:21:07 - DEBUG - 0. PM2.5: 2.8, PM10: 5.9
21-Nov-20 19:21:09 - DEBUG - 1. PM2.5: 2.9, PM10: 6.0 21-Nov-20 19:21:11 - DEBUG - 2. PM2.5: 2.9, PM10: 6.0 21- 20 พ.ย. 19:21:13 น. - DEBUG - 3. PM2.5: 2.9, PM10: 6.3 21-Nov-20 19:21:15 - DEBUG - 4. PM2.5: 3.0, PM10: 6.2 21-Nov- 20 19:21:17 - DEBUG - 5. PM2.5: 2.9, PM10: 6.4 21-Nov-20 19:21:19 - DEBUG - 6. PM2.5: 3.0, PM10: 6.6 21-Nov-20 19:21:21 - DEBUG - 7. PM2.5: 3.0, PM10: 6.8 21-Nov-20 19:21:23 - DEBUG - 8. PM2.5: 3.1, PM10: 7.0 21-Nov-20 19:21:25 - DEBUG - 9. PM2.5: 3.2, PM10: 7.0 21-Nov-20 19:21:28 - DEBUG - 10. PM2.5: 3.2, PM10: 7.1 21-Nov-20 19:21:30 น. - DEBUG - 11. PM2.5: 3.2, PM10: 6.9 21-Nov-20 19:21:32 - DEBUG - 12. PM2.5: 3.3, PM10: 7.0 21-Nov-20 19:21:34 - DEBUG - 13 PM2.5: 3.3, PM10: 7.1 21-Nov-20 19:21:36 - DEBUG - 14. PM2.5: 3.3, PM10: 7.1
เซ็นเซอร์ฝุ่นให้ดัชนี PM2.5 และ PM10 เท่านั้นในการคำนวณ AQI เราจำเป็นต้องมีโมดูล python-aqi:
aqi_index = aqi.to_aqi([(aqi. POLLUTANT_PM25, dust_data[0]), (aqi. POLLUTANT_PM10, dust_data[1])])
การรวบรวม การแสดงข้อมูล และการควบคุมอุปกรณ์จะดำเนินการพร้อมกันและไม่พร้อมกัน ข้อมูลถูกบันทึกในฐานข้อมูลท้องถิ่น เราไม่จำเป็นต้องเรียกใช้บ่อยๆ หากสภาพแวดล้อมไม่เปลี่ยนแปลงเร็วเกินไป สำหรับฉันช่วงเวลา 15 นาทีก็เพียงพอแล้ว นอกจากนี้ โมดูลเซ็นเซอร์ฝุ่นยังสะสมฝุ่นอยู่ภายใน เราจึงไม่ควรใช้มากเกินไปเพื่อหลีกเลี่ยงงานทำความสะอาด
ขั้นตอนที่ 4: การตั้งค่าบริการบ้านอัตโนมัติ
มีแพลตฟอร์ม Home Automation มากมายและควรติดตั้งแพลตฟอร์มที่รองรับโดยซ็อกเก็ตอัจฉริยะที่คุณมี หากคุณกังวลเกี่ยวกับความเป็นส่วนตัว คุณควรตั้งค่าระบบของคุณเอง มิฉะนั้น คุณสามารถใช้แพลตฟอร์มยอดนิยมที่รองรับ WiFi สมาร์ทซ็อกเก็ตส่วนใหญ่ได้ เช่น Google Assistant, Alexa หรือ IFTTT ลองเลือกแพลตฟอร์มซ็อกเก็ตที่มี API เพื่อโต้ตอบ (Webhook นั้นสมบูรณ์แบบสำหรับจุดประสงค์นี้)
ฉันใช้ IFTTT ในบทช่วยสอนนี้เพราะใช้งานง่ายมากแม้สำหรับมือใหม่ แต่โปรดทราบว่า: 1. มีซ็อกเก็ตอัจฉริยะจำนวนมากที่ไม่รองรับ IFTTT และ 2. ในขณะที่ฉันเขียนสิ่งนี้ IFTTT อนุญาตให้คุณสร้างแอปเพล็ต 3 ตัว (งานอัตโนมัติ) ได้ฟรีเท่านั้น ซึ่งเพียงพอสำหรับ 1 เครื่องใช้
นี่คือขั้นตอน:
1. สร้างแอปเพล็ตสองตัวใน IFTTT เพื่อเปิดและปิดเครื่องโดยใช้บริการ Webhook รายละเอียดสามารถพบได้ที่นี่
2. คัดลอกคีย์ API และคัดลอกไปยังสคริปต์หลาม ฉันขอแนะนำให้เก็บไว้ในไฟล์แยกต่างหากเพื่อความปลอดภัย
3. กำหนดตรรกะ/พารามิเตอร์การควบคุมในสคริปต์หลัก
ขั้นตอนที่ 5: ผลลัพธ์
ตกลง ตอนนี้เราทดสอบระบบ
จอแสดงผล OLED แสดงอุณหภูมิปัจจุบัน ความชื้น และดัชนีคุณภาพอากาศ (AQI) ที่คำนวณได้ นอกจากนี้ยังแสดงค่าต่ำสุดและสูงสุดในช่วง 12 ชั่วโมงที่ผ่านมา
ข้อมูลอนุกรมเวลาของ AQI ในไม่กี่วันแสดงให้เห็นสิ่งที่น่าสนใจ สังเกตการเพิ่มขึ้นในรูปแบบ AQI หรือไม่? เกิดขึ้นวันละสองครั้ง ยอดเขาเล็กๆ เวลาประมาณ 12:00 น. และยอดเขาสูงประมาณ 19:00 น. คุณคงเดาได้ว่านั่นคือตอนที่เราทำอาหาร กระจายอนุภาคจำนวนมากไปทั่ว เป็นเรื่องที่น่าสนใจที่จะเห็นว่ากิจกรรมประจำวันของเราส่งผลต่อสภาพแวดล้อมในร่มอย่างไร
นอกจากนี้การเพิ่มขึ้นครั้งสุดท้ายของตัวเลขยังสั้นกว่าครั้งก่อนมาก นั่นคือเมื่อเราเพิ่มเครื่องฟอกอากาศในระบบ เครื่องควบคุมสภาพอากาศ RPi ส่งคำขอ PURIFIER_ON เมื่อ AQI>50 และ PURIFIER_OFF เมื่อ AQI<20 คุณสามารถดูทริกเกอร์ IFTTT Webhook ได้ในขณะนั้น
ขั้นตอนที่ 6: บทสรุป
แค่นั้นแหละ!
ข้อมูลที่เก็บรวบรวมยังสามารถใช้เพื่อควบคุมเครื่องทำความร้อนด้วยอากาศ เครื่องทำความเย็น (de) เครื่องเพิ่มความชื้น ฯลฯ คุณเพียงแค่ต้องซื้อซ็อกเก็ตอัจฉริยะเพิ่มเติม และเครื่องใช้ไฟฟ้าเก่าทุกเครื่องจะกลายเป็น "อัจฉริยะ"
หากคุณต้องการควบคุมอุปกรณ์หลายอย่าง คุณอาจต้องพิจารณาอย่างรอบคอบว่าบริการระบบอัตโนมัติในบ้านใดที่คุณต้องการใช้ ฉันขอแนะนำอย่างยิ่งให้ตั้งค่าแพลตฟอร์มระบบอัตโนมัติในบ้านแบบโอเพนซอร์ส แต่ถ้ามันซับซ้อนเกินไป มีวิธีแก้ปัญหาที่ง่ายกว่า เช่น Google Assistant และ IFTTT Webhook หรือใช้ซ็อกเก็ตอัจฉริยะของ Zigbee
การใช้งานต้นแบบนี้อย่างสมบูรณ์สามารถพบได้ในที่เก็บ Github:
github.com/vuva/IndoorClimateControl
มีความสุข !!!
แนะนำ:
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
LED กะพริบด้วย Raspberry Pi - วิธีใช้พิน GPIO บน Raspberry Pi: 4 ขั้นตอน
LED กะพริบด้วย Raspberry Pi | วิธีใช้ GPIO Pins บน Raspberry Pi: สวัสดีทุกคนในคำแนะนำนี้เราจะเรียนรู้วิธีใช้ GPIO ของ Raspberry pi หากคุณเคยใช้ Arduino คุณอาจรู้ว่าเราสามารถเชื่อมต่อสวิตช์ LED ฯลฯ เข้ากับหมุดของมันและทำให้มันทำงานได้ ทำให้ไฟ LED กะพริบหรือรับอินพุตจากสวิตช์ดังนั้น
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: 4 ขั้นตอน
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: ในคำแนะนำนี้ เราจะเชื่อมต่อเซ็นเซอร์ ADXL335 (accelerometer) บน Raspberry Pi 4 กับ Shunya O/S
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 - เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: 4 ขั้นตอน
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 | เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: สวัสดี องค์กร Raspberry pi ที่เพิ่งเปิดตัว Raspbian OS ใหม่ที่เรียกว่า Raspbian Buster เป็นเวอร์ชันใหม่ของ Raspbian สำหรับ Raspberry pi ดังนั้นวันนี้ในคำแนะนำนี้ เราจะได้เรียนรู้วิธีติดตั้ง Raspbian Buster OS บน Raspberry pi 3 ของคุณ
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI - เริ่มต้นใช้งาน Raspberry Pi 3B - การตั้งค่า Raspberry Pi ของคุณ 3: 6 ขั้นตอน
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI | เริ่มต้นใช้งาน Raspberry Pi 3B | การตั้งค่า Raspberry Pi ของคุณ 3: อย่างที่พวกคุณบางคนรู้ว่าคอมพิวเตอร์ Raspberry Pi นั้นยอดเยี่ยมมากและคุณสามารถรับคอมพิวเตอร์ทั้งหมดได้บนบอร์ดเล็ก ๆ ตัวเดียว Raspberry Pi 3 Model B มี ARM Cortex A53 แบบ 64 บิตแบบ quad-core โอเวอร์คล็อกที่ 1.2 GHz ทำให้ Pi 3 ประมาณ 50