
สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

เราตัดสินใจที่จะพยายามหาวิธีติดตามการเติมขยะในชุมชนในละแวกใกล้เคียงหรือเซ็นเซอร์ในขยะทุกแห่งในละแวกนั้นเพื่อพยายามทำให้การกำจัดขยะมีประสิทธิภาพมากขึ้น เราคิดว่าถ้ารถบรรทุกมารับของทุกๆ สองสัปดาห์ จะเกิดอะไรขึ้นถ้าฉันหรือเพื่อนบ้านทิ้งขยะเพียงเล็กน้อย การส่งรถบรรทุกไปโดยที่คนในละแวกนั้นไม่ได้ส่งถังขยะเต็มถังไปครึ่งหนึ่งจะถือว่าไม่มีประสิทธิภาพใช่หรือไม่ คงจะดีถ้าเป็นไปได้ที่จะเห็นขยะของเพื่อนบ้านเต็มแล้วใช้ขยะของพวกเขาถ้าของฉันเต็มและขยะของพวกเขาว่างเปล่าและในทางกลับกัน เราตัดสินใจใช้เซ็นเซอร์อัลตราโซนิก HC-SR04 ร่วมกับ Raspberry Pi เพื่อพยายามจัดการกับโครงการนี้
เสบียง
เซ็นเซอร์อัลตราโซนิก (HC-SR04)
Raspberry Pi (เราใช้ Pi 4 Model B)
เขียงหั่นขนม
สายจัมเปอร์
ตัวต้านทานสองตัว (3 x 1k ohm)
ขั้นตอนที่ 1: เชื่อมต่อ 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




บางโหนดไม่ได้ติดตั้งไว้ล่วงหน้าในโปรแกรม ดังนั้นคุณอาจต้องติดตั้งจากจานสี สิ่งที่คุณต้องติดตั้งคือ 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 คือ คุณควรใช้โหนดดีบักจำนวนมากเพื่อดูว่าแต่ละโฟลว์ทำงานและแสดงผลสิ่งที่คุณต้องการ/ต้องการหรือไม่
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน

การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน

การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน

วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน

การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน

เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง