สารบัญ:

AirPi - เซ็นเซอร์คุณภาพอากาศ: 8 ขั้นตอน
AirPi - เซ็นเซอร์คุณภาพอากาศ: 8 ขั้นตอน

วีดีโอ: AirPi - เซ็นเซอร์คุณภาพอากาศ: 8 ขั้นตอน

วีดีโอ: AirPi - เซ็นเซอร์คุณภาพอากาศ: 8 ขั้นตอน
วีดีโอ: ทำไมเเม่ไม่บอกกันเลย😂 #แป้งวิงค์ไวท์ 2024, พฤศจิกายน
Anonim
AirPi - เซ็นเซอร์คุณภาพอากาศ
AirPi - เซ็นเซอร์คุณภาพอากาศ

คุณเคยสงสัยหรือไม่ว่าทำไมคุณถึงปวดหัว? และถ้าเป็นเพราะคุณภาพอากาศไม่ดี? ด้วยอุปกรณ์นี้ คุณสามารถตรวจสอบว่าเป็นกรณีนี้หรือไม่ อุปกรณ์นี้วัดค่า CO2 ค่า TVOC อุณหภูมิและความชื้น คุณสามารถดูคุณภาพอากาศสดได้บนจอ LCD และดูตัวบ่งชี้ที่ชัดเจนว่ากำลังเข้าสู่ภาวะอันตรายหรือไม่ วิธีนี้ทำให้คุณสามารถเปิดหน้าต่างได้ทันเวลา

หากคุณป้อนที่อยู่ IP ซึ่งแสดงเมื่อคุณเริ่มต้นอุปกรณ์ในเบราว์เซอร์ของคุณ เว็บไซต์จะเปิดขึ้น คุณสามารถดูข้อมูลมากมายเกี่ยวกับสภาพแวดล้อมในร่มพร้อมกับกราฟของนาที/ชั่วโมงที่ผ่านมา นอกจากนี้ยังมีการแสดงสดและข้อมูลและเคล็ดลับบางอย่างบนแดชบอร์ด

โครงการนี้จัดทำโดยนักศึกษาที่ Howest Kortrijk, NMCT (New Media and Communication Technology)

ขั้นตอนที่ 1: วัสดุ

วัสดุ
วัสดุ

นี่คือทุกสิ่งที่ฉันซื้อเพื่อสร้างโครงการนี้ นี่เป็นโครงการที่ค่อนข้างถูก ขึ้นอยู่กับต้นทุนของการพิมพ์ 3 มิติ ถ้าคุณสามารถพิมพ์มันที่โรงเรียนได้ มันอาจจะถูกมากก็ได้ มิฉะนั้นก็ขึ้นอยู่กับว่าคุณพิมพ์ที่ไหนและวัสดุที่คุณพิมพ์ คุณจะสังเกตเห็นว่าฉันซื้อจำนวนมากเพียงเพราะมันยากที่จะหาตัวต้านทานหรือไฟ LED แต่ละตัวและทำให้ราคาถูกลงกว่าเดิม หากคุณมีเวลา คุณสามารถสั่งซื้อสินค้าส่วนใหญ่บน aliexpress.com ได้ การจัดส่งอาจใช้เวลาสักครู่ แต่วิธีนี้ คุณสามารถจำกัดค่าใช้จ่ายของคุณได้

หากไม่มีการพิมพ์ เงินที่ฉันใช้จ่ายในโครงการนี้คือ 81, 80 ยูโร

นี่คือวัสดุที่คุณต้องการ:

วงจร:

  • Raspberry Pi 3
  • การ์ด SD 8GB (ขั้นต่ำ)
  • CCS811 เซ็นเซอร์คุณภาพอากาศ
  • เซ็นเซอร์อุณหภูมิและความชื้น DHT22
  • โพเทนชิออมิเตอร์ (คอนทราสต์ LCD)
  • จอแอลซีดี 16x2
  • สายจัมเปอร์หญิงกับหญิง
  • LED สีเขียวและสีแดง
  • ตัวต้านทาน (2x470ohm และ 1 4700ohm)

กรณี:

  • 3D-print
  • สกรู
  • กาว 2 ส่วน (หรือกาวร้อนอื่น ๆ)
  • เครื่องมือตัดเกลียว

มีเพียงคุณเท่านั้นที่ใช้ PCB:

  • หัวแร้ง
  • ฟลักซ์ (ทำให้ง่ายขึ้น)
  • ดีบุก
  • ทดลอง pcb 2x4cm

ขั้นตอนที่ 2: การเชื่อมต่อ

การเชื่อมต่อ
การเชื่อมต่อ

ต่อสายไฟตามข้างบน คุณสามารถเห็นวงจรไฟฟ้าในไฟล์ fritzing มันไม่ใช่วงจรที่ซับซ้อนมาก แต่ถ้าคุณต้องการทำให้มันเล็กที่สุดเท่าที่จะเป็นไปได้ คุณต้องการทดลอง PCB Board อย่างแน่นอน การเดินสายจะเหมือนกัน ยกเว้น GND และ Vin จะเชื่อมต่อกับบอร์ด PCB เซ็นเซอร์จะเชื่อมต่อด้วยสายจัมเปอร์ตัวเมียหรือตัวผู้ที่มีการบัดกรี อย่าลืมบัดกรีตัวต้านทานบนเซ็นเซอร์ DHT22

ฉันยังแนะนำให้ใช้สายสั้น 10 ซม. ควรทำ มิฉะนั้นกล่องจะเต็มไปด้วยสายเคเบิลมากยิ่งขึ้น คุณไม่จำเป็นต้องยาวมากเพราะขนาดของงานพิมพ์จะเล็กที่สุด

ขั้นตอนที่ 3: 3D-print

3D-print
3D-print
3D-print
3D-print

สิ่งแรกๆ ที่ผุดขึ้นมาในหัวของฉันเมื่อฉันกำลังคิดถึงเคสคือการพิมพ์ 3 มิติ เนื่องจากพ่อของฉันได้พิมพ์รายการอื่น ๆ ที่เป็นเซิร์ฟเวอร์และเขาออกแบบเอง เราร่วมกันสร้างการออกแบบนี้และทุ่มเทในทุกด้าน มันควรจะเย็นพอทุกอย่างสามารถขันเข้าที่และถ้าไม่ก็สามารถผลักเข้าที่

เรายังวาดทุกองค์ประกอบเพื่อตรวจสอบว่าทุกอย่างลงตัวหรือไม่ ไฟล์นี้พร้อมให้ทุกคนใช้งานได้ และเรายินดีรับฟังความคิดเห็น เราพอใจมากกับผลลัพธ์ที่ได้

ขั้นตอนที่ 4: รหัส

รหัสสำหรับโครงการนี้สามารถพบได้บน Github หากคุณเคยใช้พินอื่นๆ (เช่น GPIO-pin อื่นสำหรับ LED's คุณจะต้องปรับตัวแปรเหล่านี้ จะมีสคริปต์ python สองตัวที่ทำงานอยู่ web.py สำหรับเว็บไซต์และ sensor.py เพื่ออ่านเซ็นเซอร์และอัปเดต ฐานข้อมูล เราจะนำเข้าคลาส LCD จาก lcd.py

ด้วย pi ราสเบอร์รี่ที่กำหนดค่าไว้ คุณสามารถเริ่มต้นได้ ก่อนอื่น คุณจะต้องอัปเดตและอัปเกรดแพ็คเกจทั้งหมด:

sudo apt-get update && sudo apt-get upgrade

หลังจากนั้น คุณจะต้องติดตั้งแพ็คเกจต่อไปนี้:

sudo apt ติดตั้ง -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

ตอนนี้สร้างสภาพแวดล้อมเสมือน:

me@my-rpi:~ $ python3 -m pip install --upgrade pip setuptools wheel virtualenv

me@my-rpi:~ $ mkdir project1 && cd project1 me@my-rpi:~/project1 $ python3 -m venv --system-site-packages env me@my-rpi:~/project1 $ source env/bin/ เปิดใช้งาน (env)me@my-rpi:~/project1 $ python -m pip ติดตั้ง mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

เนื่องจากเสร็จแล้ว คุณสามารถโคลนโค้ดจาก GitHub ของฉันไปยังสภาพแวดล้อมเสมือนของคุณได้ สามารถทำได้หลายวิธี

ในไดเร็กทอรี conf คุณจะพบไฟล์สี่ไฟล์ที่คุณจะต้องปรับหากจำเป็น คุณจะต้องเปลี่ยนผู้ใช้และโฮมไดเร็กทอรีในทุกไฟล์อย่างแน่นอน uWSGI ini น่าจะใช้ได้ตราบใดที่คุณไม่ได้เปลี่ยนรหัสของฉัน อย่าลืมเปลี่ยน user และ virtualenv หากจำเป็น

เนื่องจากเซ็นเซอร์ CCS811 ถูกใช้โดยเจตนาสำหรับ Arduino จึงไม่สามารถสื่อสารผ่านบัส i2c ด้วยความเร็วของ raspberry pi ได้ คุณจะต้องลดความเร็วเป็น 10,000 บอดเรต (ฉันใช้ 9600) ในไฟล์ปรับแต่ง

คุณจะต้องได้รับไลบรารีของเซ็นเซอร์ adafruit ด้วย ฉันสามารถอธิบายสิ่งนี้ได้ที่นี่ แต่มีคู่มือ adafruit ที่สมบูรณ์แบบที่อธิบายทั้งหมดนี้ได้ดีมาก

เนื่องจากเราต้องการให้สคริปต์หลามทำงานโดยอัตโนมัติเมื่อเชื่อมต่อราสเบอร์รี่ คุณจะต้องใช้บริการ พวกเขาควรจะใช้ได้ถ้าคุณเก็บรหัสของฉัน สิ่งที่คุณต้องทำเพื่อให้เรียกใช้ได้คือเปิดใช้งาน ก่อนที่คุณจะทำสิ่งสุดท้าย

เนื่องจากเราใช้เว็บเซิร์ฟเวอร์ nginx เราจึงต้องปิดใช้งานค่าเริ่มต้นและแทนที่ด้วยการกำหนดค่าของเราเอง ในการดำเนินการตามขั้นตอนเหล่านี้ควรปฏิบัติตาม:

  • คัดลอก conf/nginx ไปที่ *sites-available*
  • ลบลิงค์ไปยัง default-config
  • เพิ่มลิงก์ไปยังการกำหนดค่าใหม่
  • รีสตาร์ท nginx เพื่อบันทึกการเปลี่ยนแปลง

me@my-rpi:~/project1 $ sudo cp conf/project1-*.service /etc/systemd/system/

me@my-rpi:~/project1 $ sudo systemctl daemon-reload me@my-rpi:~/project1 $ sudo systemctl start project1-* me@my-rpi:~/project1 $ sudo systemctl status project1-*

Nginx และ mysql ควรทำงานตลอดเวลา พวกเขาเริ่มต้นด้วยราสเบอร์รี่ pi สคริปต์เว็บและสคริปต์เซ็นเซอร์ยังไม่หมดแค่นี้

ในการดำเนินการนี้ คุณยังต้องเปิดใช้งานบริการทั้งสองนี้ด้วยคำสั่งเหล่านี้:

sudo systemctl เปิดใช้งาน project1-flask.service

sudo systemctl เปิดใช้งาน project1-sensor.service

ขั้นตอนที่ 5: ฐานข้อมูล

ฐานข้อมูล
ฐานข้อมูล

ฐานข้อมูลของฉันประกอบด้วยสามตาราง ผู้ใช้ไม่มีความสัมพันธ์กับตารางอื่น ใช้เพื่อเข้าสู่ระบบและให้สิทธิ์การเข้าถึงเว็บไซต์เท่านั้น เมื่อเปิดอุปกรณ์ ค่า CO2 และค่า TVOC จะถูกเขียนไปยังฐานข้อมูลทุกๆ 50 วินาที อุณหภูมิและความชื้นทุกๆ 5 นาที วิธีนี้ทำให้เราได้ภาพรวมที่ชัดเจนของอดีต

ไฟล์ SQL สามารถพบได้ที่นี่ แต่หากต้องการรับฐานข้อมูลบน raspberry pi คุณควรทำตามขั้นตอนเหล่านี้:

หลังจากการติดตั้งแพ็คเกจในขั้นตอนก่อนหน้า mariadb/mysql ควรทำงานทันที คุณสามารถตรวจสอบสิ่งนี้ด้วยบรรทัดนี้:

me@my-rpi:~ $ sudo systemctl status mysql

ในการสร้างฐานข้อมูลและผู้ใช้ คุณสามารถเรียกใช้ sql-scripts ในโค้ดจาก GitHub หากคุณทำอย่างถูกต้อง คุณจะเห็นตารางของคุณโดยใช้คำสั่งนี้:

me@my-rpi:~ $ echo 'แสดงตาราง;' | mysql project1 -t -u project1-admin -p

ตอนนี้เราพร้อมแล้ว คุณสามารถทดสอบได้โดยไม่ต้องใส่เคสเพื่อให้แน่ใจว่าทุกอย่างใช้งานได้ เว้นแต่คุณจะเชื่อมต่อกับ wifi คุณจะต้องเชื่อมต่อด้วยสายอีเทอร์เน็ตและเรียกใช้ด้วยตนเอง

ขั้นตอนที่ 6: เชื่อมต่อกับ Wi-Fi

เปิดไฟล์การกำหนดค่า wpa-supplicant ใน nano (ไม่สำคัญหรอก เพียงให้แน่ใจว่าคุณสามารถใช้โปรแกรมแก้ไขข้อความได้)

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

ไปที่ด้านล่างของไฟล์และเพิ่มสิ่งต่อไปนี้ (แทนที่ ssid-name และ password-name ของคุณเอง):

เครือข่าย={

ssid="ssid-name" psk="รหัสผ่าน-ชื่อ" }

ในการสร้างรหัสผ่านที่เข้ารหัส คุณสามารถใช้ wpa_passphrase และเพียงคัดลอกลงใน wpa_supplicant.conf psk เพื่อทำให้ทุกอย่างปลอดภัยยิ่งขึ้น

wpa_passphrase "ssid-name" "ชื่อรหัสผ่าน"

หากคุณต้องการให้เชื่อมต่อกับเครือข่าย Wi-Fi นี้โดยอัตโนมัติ และยังมีไฟล์อื่น ๆ ในไฟล์กำหนดค่า ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนลำดับความสำคัญเป็นระดับที่สูงกว่าโดยเพิ่มบรรทัดนี้ในเครือข่ายในไฟล์กำหนดค่า:

ลำดับความสำคัญ=2

อย่าลืมกำหนดค่าอินเทอร์เฟซใหม่ด้วย:

wpa_cli -i wlan0 กำหนดค่าใหม่

ตอนนี้คุณพร้อมและเชื่อมต่อกับเครือข่าย wifi แล้ว

ขั้นตอนที่ 7: รวบรวมทุกอย่างเข้าด้วยกัน

รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน

เนื่องจากทุกอย่างถูกต่อสายและบัดกรี เราจึงสามารถทำเคสได้ ซึ่งได้รับการออกแบบมาเพื่อให้คุณสามารถเปิดเคสได้โดยไม่ต้องมีสายหลวม ซึ่งหมายความว่าทุกอย่างแนบกับส่วนล่าง สิ่งแรกที่ต้องทำคือการปรับราสเบอรี่เล็กน้อย มีรูอยู่ทุกมุม แต่ไม่ใหญ่เท่าที่ควร เส้นผ่านศูนย์กลางน่าจะเพียงพอสำหรับใส่สกรู 3 มม. ด้านใน เราต้องขัดรูให้กว้างขึ้นเล็กน้อย

สิ่งที่สองที่ต้องทำคือการตัดเกลียวเกลียวในแต่ละรู อาจฟังดูยากแต่สามารถทำได้ง่ายด้วยเครื่องมือที่เหมาะสม ฉันขอแนะนำให้ทำสิ่งนี้ที่ร้านฮาร์ดแวร์ในพื้นที่ เพียงขอเครื่องมือตัดเกลียว เนื่องจากพ่อของฉันเป็นช่างทอง เขามีเครื่องมือในการทำงาน ฉันอาจอัปโหลดไฟล์ stl ใหม่เพื่อพิมพ์ในภายหลัง แต่จะต้องใช้เครื่องพิมพ์ที่แม่นยำมาก

ขั้นตอนที่สามคือการขัน pi เข้ากับส่วนล่าง คุณจะต้องใช้สกรูยาว 4 7 มม. ที่มีเส้นผ่านศูนย์กลาง 3 มม. หลังจากนี้คุณสามารถดันบอร์ด PCD เข้าไปในตำแหน่งที่จัดไว้ให้ที่ด้านบนของส่วนล่าง สามารถดันเซ็นเซอร์ CCS811 เข้าในตำแหน่งที่ให้ไว้ทางด้านซ้าย และสามารถติด DHT11 เข้ากับเพลทด้านขวาได้ ทั้งคู่แยกจากกันและระบายอากาศได้เพียงพอ แต่หลังจากนั้นเราสังเกตเห็นว่าภายในยังร้อนอยู่ เพิ่มเติมเกี่ยวกับเรื่องนี้ในภายหลัง

จากนั้นคุณต้องต่อ LED เข้ากับหลอด เราทำสิ่งนี้ด้วยกาว 2 ส่วนประกอบ แต่คุณสามารถทำมันได้ตามที่คุณต้องการ ตรวจสอบให้แน่ใจว่าพวกเขาติดอยู่ที่นั่น

ตอนนี้คุณสามารถติดจอแสดงผล LCD ได้ คุณจะต้องใช้สกรูที่มีเส้นผ่านศูนย์กลางเท่ากับอันก่อน แต่ให้ยาวกว่าเล็กน้อย ของผมสูง 1 ซม. หากขันสกรูทั้งสี่ตัวเข้าไป มีเพียงสิ่งเดียวที่ต้องทำ แนบส่วนบน สิ่งที่คุณต้องมีคือสกรูสี่ตัวที่มีเส้นผ่านศูนย์กลางเท่ากันและมีขนาด 2 ซม. ตอนนี้ทุกอย่างควรจะเข้าที่และคุณสามารถเริ่มต้นได้

ขั้นตอนที่ 8: เริ่มต้นขึ้น

กระบวนการเริ่มต้นของโครงการนี้ง่ายมาก:

  1. ต่อสายไฟเข้ากับด้านซ้ายของเคส มองไม่เห็นมากนักแต่สามารถมองผ่านช่องระบายอากาศได้ ถ้าได้ครั้งเดียวก็ไม่ใช่ปัญหาอีกต่อไป
  2. ให้เวลามันเริ่มต้นขึ้น
  3. ที่อยู่ IP จะปรากฏขึ้นบนหน้าจอเป็นเวลาสิบวินาที สิ่งเดียวที่คุณต้องทำคือตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อกับเครือข่ายเดียวกันและป้อนที่อยู่ IP ลงในแถบที่อยู่ของเบราว์เซอร์ของคุณ
  4. ตอนนี้คุณอยู่ในเว็บไซต์แล้ว คุณยังไม่มีบัญชี ให้สร้างบัญชี
  5. หากคุณลงทะเบียนแล้ว ให้เข้าสู่ระบบ
  6. เสร็จแล้ว! คุณสามารถดูข้อมูลทั้งหมดบนเว็บเพจและจอ LCD แสดงคุณภาพอากาศในปัจจุบัน

เนื่องจากความร้อนสูงขึ้น เราจึงวางเซ็นเซอร์ไว้ที่ด้านล่างของเคส วิธีนี้อุณหภูมิจะไม่ส่งผลกระทบอย่างมากต่อค่าที่บันทึกไว้ ดังนั้นสำหรับการวัดที่เหมาะสมที่สุด ให้ตั้งอุปกรณ์ขึ้นหรือแขวนไว้กับผนังก็ได้

แนะนำ: