สารบัญ:

ระบบขยะ : 7 ขั้นตอน
ระบบขยะ : 7 ขั้นตอน

วีดีโอ: ระบบขยะ : 7 ขั้นตอน

วีดีโอ: ระบบขยะ : 7 ขั้นตอน
วีดีโอ: คอมช้า ค้างบ่อย win 7 ทํายังไง ช้าผิดปกติ ช้ามาก ลบไฟล์ขยะ เพิ่มพื้นที่ เห็นผลจริง l ครูหนึ่งสอนดี 2024, พฤศจิกายน
Anonim
ระบบขยะ
ระบบขยะ

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

เสบียง

เซ็นเซอร์อัลตราโซนิก (HC-SR04)

Raspberry Pi (เราใช้ Pi 4 Model B)

เขียงหั่นขนม

สายจัมเปอร์

ตัวต้านทานสองตัว (3 x 1k ohm)

ขั้นตอนที่ 1: เชื่อมต่อ HC-SR04

การเชื่อมต่อ HC-SR04
การเชื่อมต่อ HC-SR04

เนื่องจากเราใช้ Raspberry Pi เราจึงต้องใช้ตัวแบ่งแรงดันไฟฟ้าเพื่อควบคุมแรงดันไฟฟ้าที่จะเข้าสู่พิน GPIO ของ Pi เนื่องจากอนุญาตให้ใช้แรงดันไฟเพียง 3.3v เท่านั้น HC-SR04 ใช้ 5V แต่ต้องลดระดับลงเหลือ 3.3V เมื่อเชื่อมต่อกับ Pi เชื่อมต่อ 5V และหมุดกราวด์ตามลำดับและตามโปรแกรมของคุณให้แนบหมุดสะท้อนและทริกเกอร์เข้ากับหมุดที่เคารพ ในโปรแกรมของเราเราใช้พิน 23 และ 24 สำหรับเสียงสะท้อนและทริกเกอร์ตามลำดับ

ขั้นตอนที่ 2: ยุงและปาโฮ MQTT

ก่อนที่เราจะเริ่มเขียนโปรแกรมบน Python เพื่อให้เซ็นเซอร์อัลตราโซนิกทำงานกับ Pi เราควรติดตั้งแอปพลิเคชันเหล่านี้เพื่อให้เซ็นเซอร์อัลตราโซนิกสื่อสารกับซอฟต์แวร์การเขียนโปรแกรม Node-RED ของเรา Mosquitto เป็นโบรกเกอร์ MQTT ที่คุณสามารถใช้ได้บน Pi ในขณะที่ Paho MQTT คือไลบรารีที่ให้คุณเขียนโค้ดใน Python เพื่อให้เซ็นเซอร์สื่อสารกับโบรกเกอร์ MQTT หากต้องการติดตั้งทั้งสองสิ่งนี้ คุณจะต้องพิมพ์คำสั่งเหล่านี้บนเทอร์มินัล Pi ของคุณ

sudo apt อัปเดต

sudo apt install -y mosquitto mosquitto-clients

sudo apt-get ติดตั้ง python3-pip

sudo pip3 ติดตั้ง paho-mqtt

ขั้นตอนที่ 3: โปรแกรม Python สำหรับ Ultrasonic Sensor

นี่คือโปรแกรมที่ฉันใช้ในการอ่านข้อมูลขาเข้าจากเซ็นเซอร์และเผยแพร่ไปยังโบรกเกอร์ MQTT

ขั้นตอนที่ 4: Node-RED

โหนด-RED
โหนด-RED
โหนด-RED
โหนด-RED
โหนด-RED
โหนด-RED
โหนด-RED
โหนด-RED

บางโหนดไม่ได้ติดตั้งไว้ล่วงหน้าในโปรแกรม ดังนั้นคุณอาจต้องติดตั้งจากจานสี สิ่งที่คุณต้องติดตั้งคือ node-red-dashboard และ node-red-node-sqlite

นี่คือจุดที่เราเริ่มใช้ซอฟต์แวร์การเขียนโปรแกรมและเซ็นเซอร์ของเรา โหนดแรกที่คุณต้องการคือ MQTT-in Node ซึ่งช่วยให้เราใช้เซ็นเซอร์ของเราที่รันโปรแกรมจากด้านบนเพื่อส่งข้อมูลไปยังซอฟต์แวร์นี้ โหนดช่วงที่เราใช้พลิกค่าที่เรามี (เช่น 5 ซม. เต็มจากโปรแกรมดังนั้นเราจึงพลิกเป็น 100%) ตามช่วงโหนด เรามี 2 โหนดฟังก์ชัน โหนดหนึ่งแสดงข้อความไปยังแดชบอร์ดของเรา และอีกโหนดหนึ่งเพื่อแสดงภาพที่ขยะเต็ม มีการแนบโปรแกรมสำหรับโหนดฟังก์ชัน

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

ขั้นตอนที่ 5: การบันทึกข้อมูล

บันทึกข้อมูล
บันทึกข้อมูล
บันทึกข้อมูล
บันทึกข้อมูล
บันทึกข้อมูล
บันทึกข้อมูล

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

ขั้นตอนในการสร้างและบันทึกข้อมูลมีดังนี้:

1. สร้างฐานข้อมูล

2. บันทึกข้อมูล

3. ดึงข้อมูลมาแสดงบนแดชบอร์ดของเรา

4. ล้างและลบข้อมูล

วิธีการทำงานของ SQL คือ คุณต้องสร้างการดำเนินการตามหัวข้อ ได้แก่ CREATE TABLE, INSERT INTO, SELECT FROM และ DELETE FROM การใช้โหนดประทับเวลาเราสามารถดำเนินการหัวข้อไปยังโหนด sqlite ซึ่งทำหน้าที่แต่ละอย่าง (สร้าง แทรก เลือก และลบ) เราจำเป็นต้องสร้างฐานข้อมูลเพียงครั้งเดียวและเมื่อเสร็จแล้ว เราสามารถบันทึกข้อมูลลงในฐานข้อมูลได้ เมื่อสร้างฐานข้อมูลแล้ว เราสามารถบันทึกข้อมูลและเราใช้อินพุตของผู้ใช้อีกครั้งเพื่อบันทึกเมื่อรถบรรทุกมาถึง เราจัดทำขึ้นเพื่อไม่ให้คุณบันทึกข้อมูลได้จนกว่ารถบรรทุกจะได้รับอนุญาตให้เข้ามา ซึ่งเป็นขยะ 5 ที่ความจุ 80% (ถือว่าเต็ม) นอกจากนี้เรายังใช้โหนดช่วงอีกครั้งเพื่อปรับขนาด 500 กลับไปเป็น 0-100% จากนั้นเรามีตัวเลือกในการลบข้อมูลทั้งหมดออกจากฐานข้อมูลหากต้องการ โหนดตาราง UI เป็นโหนดที่ช่วยให้เราเห็นตารางในรูปแบบที่สวยงามบนแดชบอร์ดของเรา

ขั้นตอนที่ 6: เค้าโครง

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

ขั้นตอนที่ 7: บทสรุป

เมื่อทำโปรเจกต์นี้เสร็จแล้ว ก็มีจุดที่เราสามารถเห็นได้ว่าโปรแกรมนั้นเติบโตขึ้นอีก ฉันไม่เคยพบวิธีที่จะทำให้การบันทึกโดยอัตโนมัติ เนื่องจากวิธีเดียวที่เราสามารถทำได้คือการบันทึกตามช่วงเวลา และเราจะไม่จำเป็นต้องมีตัวเลขซ้ำอีกหากรถบรรทุกขยะมาครั้งเดียว ฉันคิดว่าส่วนหนึ่งเป็นเพราะวิธีที่เราตัดสินใจทำให้มันต้องพึ่งพาโหนดฟังก์ชันและการเขียนโปรแกรมเป็นอย่างมาก เนื่องจากเรารู้สึกสบายใจกับการเขียนโปรแกรมนั้นมากขึ้น หลังจากสำรวจหลังจากที่เราทำเสร็จแล้ว เป็นที่ชัดเจนว่ามีโหนดที่สร้างขึ้นสำหรับทุกสิ่ง และอาจทำให้ชีวิตง่ายขึ้นมากหากเราพบฟังก์ชันของโหนดสวิตช์และโหนด rbe ก่อนหน้านี้ นอกจากนี้ยังมีโหนดที่สร้างขึ้นสำหรับเซ็นเซอร์อัลตราโซนิกซึ่งเราไม่ได้ทำงาน มันจะทำให้สิ่งต่าง ๆ ง่ายขึ้นเนื่องจากไม่จำเป็นต้องใช้ MQTT หรือโปรแกรม Python เนื่องจากเป็นเพียงโหนดที่มีทริกเกอร์และหมุดสะท้อน เราตัดสินใจที่จะแก้ไขด้วยการสร้างโปรแกรม Python อย่างที่คุณเห็นด้านบน เคล็ดลับใหญ่สำหรับทุกคนที่ต้องการดำดิ่งสู่ Node-RED คือ คุณควรใช้โหนดดีบักจำนวนมากเพื่อดูว่าแต่ละโฟลว์ทำงานและแสดงผลสิ่งที่คุณต้องการ/ต้องการหรือไม่

แนะนำ: