สารบัญ:

ตัวตรวจสอบมลพิษระดับ CPC: 10 ขั้นตอน
ตัวตรวจสอบมลพิษระดับ CPC: 10 ขั้นตอน

วีดีโอ: ตัวตรวจสอบมลพิษระดับ CPC: 10 ขั้นตอน

วีดีโอ: ตัวตรวจสอบมลพิษระดับ CPC: 10 ขั้นตอน
วีดีโอ: ทำไมเเม่ไม่บอกกันเลย😂 #แป้งวิงค์ไวท์ 2024, พฤศจิกายน
Anonim
ตัวตรวจสอบมลพิษระดับ CPC
ตัวตรวจสอบมลพิษระดับ CPC
ตัวตรวจสอบมลพิษระดับ CPC
ตัวตรวจสอบมลพิษระดับ CPC
ตัวตรวจสอบมลพิษระดับ CPC
ตัวตรวจสอบมลพิษระดับ CPC

สวัสดี ฉันเป็นนักเรียนจากเบลเยียม และนี่เป็นโครงการใหญ่โครงการแรกของฉันสำหรับระดับปริญญาตรี! คำแนะนำนี้เป็นเกี่ยวกับวิธีการสร้างเครื่องวัดมลพิษทางอากาศสำหรับห้องปิดโดยเฉพาะห้องเรียน!

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

โครงการของฉันจะแก้ไขปัญหานี้และทำให้นักเรียนอัลมีสมาธิมากขึ้นในขณะที่อยู่ในบทเรียน

เสบียง

1 xRaspberry Pi 4 (55 ยูโร)

1 x สเต็ปเพนมอเตอร์พร้อมคนขับ (€5)

แบตเตอรี่ 2 x 12v 6800 mAh (2x €20)

โมดูลสเต็ปดาวน์ 2 x (2x €5)

1 x 16x2 LCD (€ 1.5)

เซนเซอร์: 1x MQ8, 1x MQ4, 1x MQ7, 1x MQ135, 1x HNT11, 1x TMP36 (1 x €23)

IC: 1x MCP3008, 2x 74hc595AG (1x €2.30, 2x €0.40)

ไฟ LED: สีเขียว 2x สีแดง 2x สีเหลือง 3x (พบได้ในฮาร์ดแวร์เก่าบางรุ่น ปกติชิ้นละ 0.01 ยูโร)

คอนเนคเตอร์สำหรับแบตเตอรี่ (2 x €0.35)

สายต่อ f-to-f 40 เส้น (€1.80)

สายเชื่อมต่อ f-to-m 40 เส้น (€1.80)

สายต่อยาว 20 ม. (1.80 ยูโร)

2 x PCB เพื่อบัดกรี (2x €0.70)

เครื่องมือ:

หัวแร้ง (แนะนำ 60 วัตต์)

ดีบุกเพื่อประสาน

แผ่นอลูมิเนียม 50x20

ปลอก (ฉันใช้เคสคอมพิวเตอร์ขนาดเล็กเก่า)

นี่อาจเป็น MDF หรือไอเดียของตัวเองได้ง่ายๆ

ขั้นตอนที่ 1: การตั้งค่า RPi. ของคุณ

การตั้งค่า RPi. ของคุณ
การตั้งค่า RPi. ของคุณ

ดังนั้นหัวใจของเรา สมองและจิตวิญญาณของเราจึงอยู่ในผลิตภัณฑ์นี้ คุกคามให้ดีเพราะมันสามารถทำร้ายคุณได้ไม่ทางใดก็ทางหนึ่ง ฉันใช้ RPi 4B 4gb รุ่นอื่นน่าจะใช้ได้ คุณสามารถคาดหวังให้รุ่นเก่ามีความล่าช้ามากขึ้น

เราได้รับระบบปฏิบัติการจากโรงเรียนของเราพร้อมซอฟต์แวร์ที่ติดตั้งไว้ล่วงหน้า เช่น phpMyAdmin

ก่อนอื่น ตรวจสอบให้แน่ใจว่าคุณสามารถเชื่อมต่อกับ Raspberry Pi ของคุณผ่าน ssh เราต้องการเวลาอีกมาก

ดังนั้นก่อนอื่น เราควรเปิดใช้งานบัส SPI, พิน GPIO และปิดใช้งานบัสอื่น ๆ เราจะไม่ต้องการมัน

คุณสามารถทำได้ในเมนู raspi-config ไปที่อินเทอร์เฟซและเปิดใช้งาน GPIO และ SPI ตามปกติ คุณไม่จำเป็นต้องดำเนินการใดๆ ในขณะที่คุณอยู่ที่นี่ ให้ขยายพื้นที่เก็บข้อมูลของคุณโดยไปที่ขั้นสูง แล้วกด Enter ที่พื้นที่จัดเก็บแบบขยาย

ตอนนี้รีบูต เราจำเป็นต้องมีส่วนขยายบางอย่างเพื่อใช้ VS Code บน pi ของเรา เพื่อเรียกใช้เซิร์ฟเวอร์และฐานข้อมูลของเรา

ขั้นตอนการติดตั้งสำหรับ VS Code Extension สามารถพบได้ที่นี่

ตอนนี้เราจะติดตั้งส่วนขยายสำหรับเซิร์ฟเวอร์และฐานข้อมูลของเรา ใช้เทอร์มินัลแล้วพิมพ์ 'python install flask, flask-cors, mysql-python-connector, eventlet' รอจนกว่าจะเสร็จสิ้น

ตอนนี้เราสามารถเริ่มต้นด้วยการทำโครงการ

ขั้นตอนที่ 2: MCP3008 + TMP36

MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36
MCP3008 + TMP36

เรามีเซ็นเซอร์ 6 ตัว: แก๊ส 4 ตัว, ความชื้น + อุณหภูมิ 1 ตัว และเซ็นเซอร์อุณหภูมิ 1 ตัว เป็นงานจริงที่จะให้พวกเขาทำงาน เซ็นเซอร์ทั้งหมดเป็นเซ็นเซอร์แอนะล็อก เราจึงต้องแปลงสัญญาณแอนะล็อกเป็นสัญญาณดิจิทัล นั่นเป็นเพราะ RPi (Rasberry Pi) สามารถ "เข้าใจ" ได้เฉพาะสัญญาณดิจิทัลเท่านั้น สำหรับข้อมูลเพิ่มเติมคลิกที่นี่.

ในการทำงานนั้นให้สำเร็จ คุณจะต้องมี MCP3008 สิ่งนี้จะทำงานได้ดีมาก!

มี 16 พอร์ต นับจากด้านบน (ฟองเล็ก) ซ้าย ลง อีกด้านหนึ่ง และขึ้น Pin1-8 เป็นอินพุตสำหรับสัญญาณแอนะล็อกจากเซ็นเซอร์ของเรา พิน 9 อีกด้านหนึ่งคือ GND ซึ่งต้องเชื่อมต่อกับ GND ของวงจรทั้งหมด มิฉะนั้นจะไม่ทำงาน พิน 10-13 จะต้องเชื่อมต่ออย่างระมัดระวังมากขึ้น สิ่งเหล่านี้จะส่งข้อมูลไปและกลับจาก RPi พิน 14 เป็นอีกหนึ่ง GND และพิน 15 และ 16 เป็น VCC เหล่านี้ต้องเชื่อมต่อกับด้านบวกของวงจร

นี่คือเลย์เอาต์สำหรับการเดินสาย thr:

  • MCP3008 VDD เป็นภายนอก 3.3V MCP3008 VREF เป็นภายนอก 3.3V
  • MCP3008 AGND เป็น GND. ภายนอก
  • MCP3008 DGND ถึงภายนอกGND
  • MCP3008 CLK เป็นขา Raspberry Pi 18
  • MCP3008 DOUT ถึง Raspberry Pi pin 23
  • MCP3008 DIN ถึง Raspberry Pi ขา 24
  • MCP3008 CS/SHDN เป็นขา Raspberry Pi 25

นี่เป็นเวลาที่ดีในการเชื่อมต่อ GND จาก RPI กับ GND ภายนอก ซึ่งจะทำให้กระแสไฟฟ้าไหลออกจาก RPi

นี่คือวิธีการเชื่อมต่ออย่างถูกวิธี

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

รหัสชิ้นแรกมาอยู่ที่นี่

คุณสามารถคัดลอกรหัสของฉันจากโครงการ github ของฉันภายใต้ models. Analog_Digital

ที่ด้านล่างของหน้า คุณจะพบซอร์สโค้ดเพื่อให้ใช้งานได้

แต่เราต้องการเซ็นเซอร์ตัวแรก เพื่อที่จะทดสอบได้

เราจำเป็นต้องทดสอบเซ็นเซอร์ของเราว่าใช้งานได้หรือไม่ เชื่อมต่อแหล่งจ่ายไฟ 3.3V หรือ 5V เข้ากับด้านบวกของ TMP36 อย่าลืมเชื่อมต่อกับ GND ด้วย มันอาจจะเป็นเรื่องงี่เง่าที่จะเกิดขึ้น แต่เชื่อฉันเถอะ นั่นคือความจริง;) คุณสามารถทดสอบเอาต์พุตของเซ็นเซอร์ด้วยมัลติมิเตอร์ได้ นี่คือพินกลาง ด้วยสมการง่ายๆ นี้ คุณสามารถตรวจสอบอุณหภูมิในหน่วย °C ได้ ((มิลลิโวลต์*แรงดันไฟอินพุต)-500)/10 และ voila donne! ลาก่อน! ไม่หรอก ฮ่าฮ่า เราต้องการ MCP3008 เชื่อมต่อพินอะนาล็อกสำหรับ TMP36 ของคุณกับอินพุตพินแรกของ MCP3008 นี่คือพิน 0

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

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

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

อันดับแรก เราต้องคิดก่อนว่าเราจะได้อะไรเป็นข้อมูลป้อนเข้า และถ้าเราต้องการบันทึกบางอย่าง เช่น สถานะของวัตถุบางอย่าง

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

สำหรับการขยายในอนาคต ฉันได้เพิ่มตารางผู้ใช้

ดังนั้นความคิดของฉันสำหรับตารางคืออะไร: ค่าตาราง, ที่อยู่ตาราง (เชื่อมโยงกับห้อง), ห้องตาราง (เชื่อมโยงกับค่า), หน้าต่างตาราง (เชื่อมโยงกับค่า), เซ็นเซอร์ตาราง (เชื่อมโยงกับค่า) และตารางในป่า ผู้ใช้

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

นี่คือลักษณะที่ปรากฏในขณะนี้ นี่คือสิ่งที่ฉันใช้สำหรับโครงการที่เหลือ

ขั้นตอนที่ 4: HNT11 สำหรับ Real Boys

เนื่องจากเราไม่ได้รับอนุญาตให้ใช้ห้องสมุดทุกประเภท เราต้องตั้งโปรแกรมทุกอย่างด้วยตัวเอง

HNT11 เป็นระบบแบบสายเดียว ซึ่งหมายความว่าคุณมี GND และ VCC เช่น อุปกรณ์อิเล็กทรอนิกส์อื่นๆ แต่พินที่ 3 เป็นพินขาเข้าและขาออก มันจึงค่อนข้างแปลก แต่ฉันได้เรียนรู้มากมายจากมัน

เชื่อมต่อ VCC กับ 3.3V ภายนอก และ GND กับ GND ภายนอก

เอกสารข้อมูลของ DHT11 มีทุกอย่างสำหรับใช้เซ็นเซอร์นี้

เราสามารถระบุได้ว่าบิตสูงประกอบด้วยบิตต่ำและสูง แต่ระยะเวลาของส่วนสูงกำหนดบิตของจริง หากส่วนสูงปล่อยออกมานานกว่า 100µs (ปกติ 127µs) บิตจะสูง บิตที่สั้นกว่า 100µs (ปกติประมาณ 78µs) บิตนั้นต่ำหรือไม่

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

ดังนั้นเราจึงต้องคำนวณระยะเวลาของแต่ละบิตเท่านั้นแล้วเสร็จ

ในซอร์สโค้ดภายใต้ DHT11 คุณจะพบวิธีการของฉันในการแก้ปัญหานี้

ขั้นตอนที่ 5: เซ็นเซอร์ก๊าซ (ในตำนานเท่านั้น)

เซนเซอร์แก๊ส (ในตำนานเท่านั้น)
เซนเซอร์แก๊ส (ในตำนานเท่านั้น)
เซนเซอร์แก๊ส (ในตำนานเท่านั้น)
เซนเซอร์แก๊ส (ในตำนานเท่านั้น)

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

ดังนั้นฉันจึงมีเซ็นเซอร์ก๊าซ 4 ตัว MQ135, MQ8, MQ4 และ MQ7 เซ็นเซอร์ทั้งหมดนี้มีก๊าซเฉพาะที่สามารถวัดได้ดีที่สุด แต่สิ่งเหล่านี้ล้วนแตกต่างกันในการกำหนดค่า

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

ฉันปล่อยให้มันพักสักครู่แล้วกลับมา

สิ่งที่ฉันทำเพื่อให้มันใช้งานได้กับเซ็นเซอร์ตัวเดียวคือ:

- ฉันใช้แผ่นข้อมูลเพื่อทำเครื่องหมายจุดของก๊าซที่ฉันต้องการวัด ดังนั้น 1 ro/rs ถึง 400ppm, 1.2 ถึง 600ppm …

- จากนั้นฉันใส่จุดทั้งหมดเหล่านั้นใน excell และแยกสูตรสำหรับเส้นโค้ง ฉันบันทึกไว้ในฐานข้อมูลของฉัน

- จากแผ่นข้อมูล ฉันยังอ่านค่าความต้านทานปกติและค่าความต้านทานอากาศบริสุทธิ์ด้วย ค่าเหล่านี้ยังบันทึกไว้ในฐานข้อมูล

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

ขั้นตอนที่ 6: Shiftregister, 74HC595AG

The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG
The Shiftregister, 74HC595AG

นี่ก็คือไอซี และทำหน้าที่พิเศษด้วยอุปกรณ์นี้ เป็นไปได้ที่จะใช้เอาต์พุต GPIO น้อยลงสำหรับสัญญาณเอาท์พุตเดียวกัน ฉันใช้สิ่งนี้สำหรับ LCD (Liquid Crystal Display) และไฟ LED ของฉัน ฉันจะแสดงที่อยู่ IP บนหน้าจอ LCD เพื่อให้ทุกคนสามารถท่องเว็บไซต์ได้

LED ถูกเลือกอย่างชาญฉลาด 2 สีแดง 3 สีเหลืองและ 2 สีเขียว ซึ่งจะแสดงคุณภาพอากาศในห้องได้ตลอดเวลา

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

วิธีการใช้ไอซี? คุณมีอินพุต 5 รายการและเอาต์พุต 9 รายการ 8 เอาต์พุตทางลอจิคัลสำหรับ 8 พินและพินที่ 9 เพื่อส่งข้อมูลที่เหลือไปยัง shiftregister อื่น

ดังนั้นเราจึงเชื่อมต่อพิน 16 กับ VCC ภายนอก พินถัดไปคือเอาต์พุตแรก ดังนั้นสำหรับ LCD เราจำเป็นต้องใช้.. พิน 14 คือสายข้อมูล เราจะส่งข้อมูลไปที่นี้ พินที่ 13 เป็นสวิตช์เปิด สัญญาณต่ำเปิดใช้งาน IC จำเป็นต้องมีสัญญาณสูงเพื่อปิด พิน 12 คือพินที่เราสามารถระบุได้ว่าเมื่อใดที่บิตถูกส่ง เมื่อคุณดึงพินนี้ลง ดังนั้นจากสูงไปต่ำ มันจะอ่านสถานะสัญญาณของพิน 13 และเก็บไว้ในหน่วยความจำ 8 บิต พิน 11 นั้นคล้ายกันเมื่อพินนี้ถูกตั้งค่าให้สูงแล้วต่ำ มันจะส่งออก 8 บิตไปยังพอร์ตของมัน และพินสุดท้าย พิน 10 คือมาสเตอร์รีเซ็ต พินนี้จะต้องอยู่ในระดับสูง มิฉะนั้นจะไม่ทำงาน การเชื่อมต่อสุดท้ายคือพิน GND 8 ที่เราจำเป็นต้องเชื่อมต่ออันนี้กับ GND ภายนอก

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

เมื่อคุณได้ผลลัพธ์ที่ถูกต้อง คุณสามารถประสานสิ่งนี้กับ PCB ด้วย LED และตัวต้านทาน 220 โอห์ม ประสานเอาต์พุตของ IC กับไฟ LED ที่เกี่ยวข้อง ตอนนี้คุณควรมีสิ่งนี้

คุณสามารถค้นหารหัสทดสอบของฉันได้ที่นี่ภายใต้ Shiftregister เมื่อคุณทำงานกับ 74HC595N คุณจะไม่ต้องการ MR ดังนั้นคุณจึงไม่ต้องเชื่อมต่อ

LCD ค่อนข้างเหมือนกัน มันค่อนข้างง่ายที่จะใช้กับ shiftregister เพราะอินพุตสำหรับ LCD เป็นอินพุตสำหรับ shiftregister ทุกประการ

สำหรับ LCD มีรหัสอื่นเพื่อให้ใช้งานได้ แต่ค่อนข้างเหมือนกับตัวเปลี่ยนรหัส คุณสามารถค้นหารหัสทดสอบได้ที่นี่ภายใต้ LCD

ขั้นตอนที่ 7: ส่วนหน้า บทเรียนที่มีค่า

ดังนั้นที่นี่ฉันจะเดินออกไป นี่คือส่วนหนึ่งของวิธีที่คุณควรทำ นี่คือสิ่งที่มีค่ามากที่ได้เรียนรู้

ทำ frontend ก่อน backend!!!!

ฉันทำในทางกลับกัน ฉันโทรหาฐานข้อมูลของฉันโดยเปล่าประโยชน์ ฉันใช้เวลามากกับสิ่งนี้

บนหน้า Landing Page ฉันต้องการอุณหภูมิและความชื้นในปัจจุบัน และค่าของเซ็นเซอร์ก๊าซทั้งหมดในแผนภูมิที่ดี ฉันต้องแสดงที่อยู่ IP ของ RPi ด้วย

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

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

อันดับแรก ฉันออกแบบเพื่อให้เริ่มทำงานในส่วนของการเขียนโค้ดได้อย่างง่ายดาย ฉันค่อยๆก้าวหน้าไปทีละอย่าง การบ้านต้องเคลื่อนที่ก่อน ดังนั้นฉันจะเน้นเรื่องนั้นก่อน จากนั้นฉันจะไปที่หน้าจอที่ใหญ่ขึ้น

คุณสามารถค้นหาหน้าของฉัน, css และ js ได้ใน Github ของฉัน

ขั้นตอนที่ 8: แบ็กเอนด์

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

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

นอกจากนี้ ยังมีเธรดต่างๆ ซึ่งเป็นส่วนหนึ่งของซอฟต์แวร์ที่ให้คุณเรียกใช้โค้ดแบบขนานได้ คุณสามารถเรียกใช้การเรียกเว็บไซต์ ฟังก์ชันการสร้างมูลค่า และ led+shiftregister ฟังก์ชันเหล่านี้ทำงานเป็นอิสระจากกันโดยสิ้นเชิง

ดังนั้นสำหรับผู้นำ ฉันสร้างมูลค่าที่ต่ำกว่า/ดีต่อสุขภาพสำหรับ CO2 ค่านี้มาจากแหล่งของรัฐบาลหลายแห่ง คุณค่าทางสุขภาพสำหรับห้องเรียนต่ำกว่า 600 ppm CO2 ต่อลูกบาศก์เมตร ค่าที่ไม่ดีต่อสุขภาพคือทุกอย่างที่สูงกว่า 2,000 ppm ดังนั้นไฟ LED จึงสร้างสะพาน หากค่าของเซ็นเซอร์ MQ4 เท่ากับ 1400 ระบบจะคำนวณระดับอันตรายโดยอัตโนมัติ 2000 - 600 = 1400 ดังนั้นช่วงทั้งหมดคือ 1400 /7 = 200 ดังนั้นเมื่อค่าถึง 550 จะแสดงไฟ LED สีเขียว 750 แสดงไฟ LED สีเขียว 2 ดวง 950 ไฟ LED สีเขียว 2 ดวงสีเหลือง 1 ดวง และอื่นๆ.

เมื่อค่าอยู่เหนือระดับกลาง หน้าต่างจะเปิดขึ้น ฉันใช้สเต็ปเพนมอเตอร์เพราะแรงบิดและความแม่นยำสูง และเมื่อค่ามากกว่า 2000 สัญญาณเตือนเล็กๆ จะดับลง นี่คือการปลุกคนในห้อง

นอกจากนี้เรายังสามารถตรวจจับก๊าซควันเมื่อเกิดเพลิงไหม้ มันลงทะเบียนนี้ด้วย เมื่อค่าสูงกว่าค่าที่กำหนด สัญญาณเตือนจะติดและไฟ LED จะกะพริบ

จอ LCD ส่วนใหญ่มีไว้เพื่อแสดงที่อยู่ IP เพื่อให้คุณสามารถท่องไปยังไซต์ได้

คุณสามารถค้นหาทุกอย่าง + รหัสภายใน Githubin ของฉันใน app.py

ขั้นตอนที่ 9: การสร้างเคส

การทำคดี
การทำคดี
การทำคดี
การทำคดี
การทำคดี
การทำคดี

ฉันพบเคสคอมพิวเตอร์ขนาดเล็กสำหรับส่วนประกอบทั้งหมดของฉัน

ฉันตัดแผ่นอลูมิเนียมให้ได้ขนาด และเจาะรูที่แผ่นจะพัก ซึ่งสอดคล้องกับรูของเมนบอร์ด

จากนั้นฉันก็ดูว่าทุกอย่างจะพอดีกับเคสอย่างไร ฉันวางทุกอย่างแล้วเริ่มเคลื่อนไหว

เมื่อฉันพอใจกับวิธีการทำงาน ฉันเริ่มทำเครื่องหมายรูที่ฉันต้องการสำหรับเซ็นเซอร์, RPi, PCB, โมดูลไฟฟ้า และโมดูลสเต็ปเพนมอเตอร์ รูสำหรับ PCB standoff จะทำให้มีพื้นที่บางส่วนเพื่อไม่ให้ชิ้นส่วนโลหะสัมผัสกับแผ่นอลูมิเนียม มันยังทำให้ดูดีอีกด้วย

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

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

สเต็ปเพนมอเตอร์, LCD และ LED จะออกมาจากด้านบนของเคส ดังนั้นฉันจึงวางฝาครอบเคสไว้ด้านบนอย่างระมัดระวังและทำเครื่องหมายรูแล้วเจาะด้วยสว่าน ทำให้เรามองเห็นทุกสิ่งได้ง่าย

เมื่อเคสเสร็จสิ้น เราจำเป็นต้องต่อสายทุกอย่าง คุณจะพบแผนผังการเดินสายได้ที่นี่

ขั้นตอนที่ 10: การประเมินและสรุปผล

การประเมินและสรุปผล
การประเมินและสรุปผล

นี่คือ / เป็นโครงการแรกของฉัน

มันดูโอเคนะผมว่า

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

โฟกัสไปที่ 1 สิ่งในแต่ละครั้ง คุณต้องการอุณหภูมิบนหน้าจอของคุณหรือไม่? ทำสิ่งนี้ สิ่งนี้และสิ่งนั้น อย่ารอหรือปล่อยให้มันผ่านไป มันจะไม่ช่วย และมันจะทำให้คุณเสียเวลาอันมีค่าไป

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

ฉันอาจจะมีความทะเยอทะยานเล็กน้อย: ฉันมีขนาดเล็กมาก ไม่มีเซ็นเซอร์ที่ใช้งานง่าย แบตเตอรี่ … ทำให้ง่ายขึ้นมากแล้วค่อย ๆ หนักขึ้นเรื่อย ๆ จากนั้นคุณจะได้รับต้นแบบ/ผลิตภัณฑ์ที่ดี

แนะนำ: