สารบัญ:

เครื่องตรวจจับการอุดตันของท่อระบายน้ำ: 11 ขั้นตอน (พร้อมรูปภาพ)
เครื่องตรวจจับการอุดตันของท่อระบายน้ำ: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครื่องตรวจจับการอุดตันของท่อระบายน้ำ: 11 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครื่องตรวจจับการอุดตันของท่อระบายน้ำ: 11 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: วิธีแก้ไขท่อน้ำทิ้งอุดตัน ไม่ต้องทะลวงท่อPVC #ท่อตันทำอย่างไร #ท่อน้ำตันใช้อะไร 2024, กรกฎาคม
Anonim
Image
Image

อย่าปล่อยให้ท่อระบายน้ำอุดตันช้าลง! กลับมาจากวันหยุดพักร้อน ฉันและภรรยาประหลาดใจกับน้ำที่ท่วมพื้นอพาร์ตเมนต์ของเรา และเราพบว่าไม่ใช่น้ำสะอาดด้วยซ้ำ หลังจากล้างท่อระบายน้ำและทำความสะอาดพื้น ฉันมีคำถามนี้: ทำไมเราถึงไม่มีระบบเตือนว่าท่อระบายน้ำอาจอุดตัน? ท่อระบายน้ำที่อุดตันไม่เพียงแต่จะทำให้บ้านของคุณต้องหยุดชะงักเท่านั้น แต่ยังต้องใช้ค่าใช้จ่ายเพิ่มเติมจากกระเป๋าของคุณ โดยเฉลี่ย 206 ดอลลาร์สหรัฐฯ คือค่าใช้จ่ายในการเคลียร์ท่อระบายน้ำที่อุดตันตาม HomeAdvisor นอกเหนือจากค่าใช้จ่ายแอบแฝงของพรมที่เสียหาย เฟอร์นิเจอร์ไม้ ฯลฯ แนวคิดของเราคือให้เจ้าของบ้านและองค์กรต่างๆ เช่น แผนกบำรุงรักษาเมือง/สารประกอบ และผู้ให้บริการเฉพาะทาง มีระบบที่มีประสิทธิภาพและชาญฉลาด ซึ่งจะแจ้งเตือนใครก็ตามที่รับผิดชอบโดยเร็วที่สุดเพื่อดำเนินการ ซึ่งมีส่วนช่วยในการเสริมสร้างเมืองอัจฉริยะด้วยปัจจัยสำคัญ ลักษณะเฉพาะ.

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

เครดิตสำหรับ

  • โมฮาเหม็ด ฮัสซัน
  • อาเหม็ด เอมาม

โปรเจ็กต์โดยละเอียดมีการดำเนินการ 3 เฟสในโปรเจ็กต์นี้: การรวบรวมข้อมูล การเรียนรู้ & การทำนาย

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

และในวิดีโอหน้านี้จะแสดงให้เห็นว่าเราทำการทดสอบระบบและรุ่นอย่างไร ในโหมดเปิด จากนั้นในโหมดอุดตัน และกลับสู่โหมดเปิดอย่างไร

ดังนั้น มาสำรวจการใช้งานของเราทีละขั้นตอน:

ขั้นตอนที่ 1: การทดลอง

การทดลอง
การทดลอง
การทดลอง
การทดลอง
การทดลอง
การทดลอง
การทดลอง
การทดลอง

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

ขั้นตอนที่ 2: ฮาร์ดแวร์

ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์

I- Arduino

ในการตรวจจับเสียงของน้ำภายในท่อ เราจำเป็นต้องมีเซ็นเซอร์เสียง อย่างไรก็ตาม Raspberry Pi 3 ไม่มี Analog GPIO เพื่อจัดการกับปัญหานี้ เราใช้ Arduino เนื่องจาก Arduino มี GPIO แบบอะนาล็อก ดังนั้นเราจึงเชื่อมต่อเซ็นเซอร์ Grove Sound กับ Grove Arduino shield และเชื่อมต่อ Shield กับ Arduino UNO 3 จากนั้นเราเชื่อมต่อ Arduino & Raspberry โดยใช้สาย USB หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับเซ็นเซอร์ Grove Sound คุณสามารถตรวจสอบเอกสารข้อมูลได้ คุณสามารถดูโค้ดตัวอย่างวิธีการอ่านค่าเซ็นเซอร์ได้ในแผ่นข้อมูล รหัสตัวอย่างที่เกือบจะใช้งานจะมีการเปลี่ยนแปลงเล็กน้อย ในรหัสด้านล่างเราเชื่อมต่อเซ็นเซอร์กับ A0 ในตัวป้องกัน ในการเขียนแบบอนุกรม เราใช้ฟังก์ชัน Serial.begin() ในการสื่อสารกับ Raspberry baud rate ที่ตั้งค่าเป็น 115200ข้อมูลจะถูกส่งไปยัง Raspberry หากสูงกว่าเกณฑ์ที่กำหนดในการตัดเสียงรบกวน มีการทดลองหลายครั้งเพื่อเลือกเกณฑ์ & ค่าการหน่วงเวลาที่ต้องการ เกณฑ์พบว่าเป็น 400 และค่าหน่วงเวลาเป็น 10 มิลลิวินาที เกณฑ์ได้รับเลือกเพื่อกรองสัญญาณรบกวนปกติ และทำให้แน่ใจว่าเฉพาะข้อมูลที่มีความหมายเท่านั้นที่จะถูกส่งไปยังระบบคลาวด์ มีการเลือกใช้การหน่วงเวลาเพื่อให้แน่ใจว่าเซ็นเซอร์ตรวจจับการเปลี่ยนแปลงใดๆ ของเสียงการไหลภายในหลอดทันที

II- Raspberry Pi 3 ในการดาวน์โหลดสิ่งของ Android บน Raspberry คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดได้จาก Android Things Console ในโครงการนี้ เราใช้เวอร์ชัน: OIR1.170720.017 ทำตามขั้นตอนในไซต์ Raspberry เพื่อติดตั้งระบบปฏิบัติการบนราสเบอร์รี่ สำหรับ windows คุณสามารถใช้ขั้นตอนเหล่านี้ หลังการติดตั้ง คุณสามารถเชื่อมต่อ Raspberry กับคอมพิวเตอร์ของคุณโดยใช้ USB จากนั้นในคอนโซลคอมพิวเตอร์ของคุณให้ใช้คำสั่งด้านล่างเพื่อรับ Raspberry IP

nmap -sn 192.168.1.*

หลังจากได้รับ IP แล้ว ให้เชื่อมต่อกับ Raspberry ของคุณโดยใช้คำสั่งด้านล่าง

เชื่อมต่อ adb

ในการเชื่อมต่อ Raspberry ของคุณกับ Wifi (เพิ่ม SSID และรหัสผ่านของคุณ)

adb am startservice

-n com.google.wifisetup/. WifiSetupService

-a WifiSetupService. Connect

-e ssid *****

-e ข้อความรหัสผ่าน ****

ขั้นตอนที่ 3: Google Cloud - การลงทะเบียน

Google Cloud - การลงทะเบียน
Google Cloud - การลงทะเบียน
Google Cloud - การลงทะเบียน
Google Cloud - การลงทะเบียน
Google Cloud - การลงทะเบียน
Google Cloud - การลงทะเบียน
Google Cloud - การลงทะเบียน
Google Cloud - การลงทะเบียน

Google เสนอระดับฟรีสำหรับผู้ใช้ทั้งหมดเป็นเวลาหนึ่งปีโดยมีเพดาน 300$ ขอบคุณ Google:) ทำตามหน้าจอเพื่อสร้างโครงการใหม่ใน Google Cloud

ขั้นตอนที่ 4: Google Cloud - Pub/Sub

Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub
Google Cloud - Pub/Sub

Google Cloud Pub/Sub เป็นบริการส่งข้อความแบบเรียลไทม์ที่มีการจัดการเต็มรูปแบบ ซึ่งช่วยให้คุณส่งและรับข้อความระหว่างแอปพลิเคชันอิสระได้

ขั้นตอนที่ 5: Google Cloud - IOT Core

Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core
Google Cloud - IOT Core

II- IOT CoreA บริการที่มีการจัดการเต็มรูปแบบเพื่อการเชื่อมต่อ จัดการ และนำเข้าข้อมูลจากอุปกรณ์ที่กระจายไปทั่วโลกได้อย่างง่ายดายและปลอดภัย IOT Core ยังคงเป็นรุ่นเบต้า หากต้องการเข้าถึง คุณต้องส่งคำขอด้วย Justification to Google เราได้ทำการร้องขอ เหตุผลของเราคือการแข่งขันครั้งนี้ Google อนุมัติแล้ว ขอบคุณ Google อีกครั้ง:) Raspberry จะส่งข้อมูลเซ็นเซอร์ไปยัง IOT Core ซึ่งจะส่งต่อการอ่านไปยังหัวข้อ PubSub ที่สร้างในขั้นตอนก่อนหน้า

ขั้นตอนที่ 6: Google Cloud - ฟังก์ชั่นคลาวด์

Google Cloud - ฟังก์ชันระบบคลาวด์
Google Cloud - ฟังก์ชันระบบคลาวด์
Google Cloud - ฟังก์ชันระบบคลาวด์
Google Cloud - ฟังก์ชันระบบคลาวด์

Cloud Functions เป็นสภาพแวดล้อมแบบไร้เซิร์ฟเวอร์สำหรับสร้างและเชื่อมต่อบริการคลาวด์ ทริกเกอร์สำหรับฟังก์ชันนี้คือหัวข้อ PubSup ที่สร้างขึ้นในขั้นตอนที่ 1;; ฟังก์ชันนี้จะถูกทริกเกอร์เมื่อเขียนค่าใหม่ใน PubSup และเขียนลงใน Cloud DataStore ด้วยชนิด "SoundValue"

ขั้นตอนที่ 7: Google Cloud - Cloud DataStore

Google Cloud Datastore เป็นฐานข้อมูลเอกสาร NoSQL ที่สร้างขึ้นสำหรับการปรับขนาดอัตโนมัติ ประสิทธิภาพสูง และความง่ายในการพัฒนาแอปพลิเคชัน แม้ว่าอินเทอร์เฟซ Cloud Datastore จะมีคุณลักษณะหลายอย่างที่เหมือนกันกับฐานข้อมูลแบบเดิม เนื่องจากฐานข้อมูล NoSQL จะแตกต่างจากคุณลักษณะดังกล่าวในลักษณะที่อธิบายความสัมพันธ์ระหว่างออบเจ็กต์ข้อมูล ไม่จำเป็นต้องตั้งค่าใดๆ เนื่องจากเมื่อ Cloud Functions เขียนค่าเซ็นเซอร์ไปยัง DataStore แล้ว ข้อมูลจะถูกเพิ่มไปยัง DataStore

ขั้นตอนที่ 8: Google Cloud - BigQuery

Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery
Google Cloud - BigQuery

เรารวบรวมตัวอย่าง 10 นาทีจากท่อปกติและ 10 นาทีจากท่อที่ถูกบล็อกโดยมีความแตกต่าง 1 ชั่วโมงระหว่างการวนซ้ำ 2 ครั้ง หลังจากดาวน์โหลด DataStore และทำการปรับเปลี่ยนเพื่อเพิ่มการจัดประเภทสำหรับแต่ละแถว ตอนนี้เรามีไฟล์ csv 2 ไฟล์สำหรับแต่ละหมวดหมู่ ตามแนวทางปฏิบัติที่ดีที่สุดให้อัปโหลดไฟล์ CSV ข้อมูลไปยัง Cloud Storage ก่อน ในหน้าจอด้านล่าง เราสร้างที่เก็บข้อมูลใหม่ & อัปโหลดไฟล์ CSV 2 ไฟล์ เนื่องจากที่เก็บข้อมูลนี้จะใช้สำหรับการวิเคราะห์เท่านั้น ไม่จำเป็นต้องเลือกที่เก็บข้อมูลหลายภูมิภาค จากนั้นสร้างชุดข้อมูลใหม่และตารางใหม่ใน BigQuery แล้วอัปโหลดไฟล์ CSV 2 ไฟล์จากที่เก็บข้อมูลไปที่ โต๊ะใหม่

ขั้นตอนที่ 9: Google Cloud - Data Studio

Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio
Google Cloud - Data Studio

จากนั้น เราใช้ Data Studio เพื่อวาดข้อมูลเชิงลึก Data Studio จะอ่านข้อมูลจากตาราง BigQuery จากกราฟ เราจะเห็นความแตกต่างระหว่าง 2 หมวดหมู่ในจำนวน telemetries และผลรวมของค่าต่อนาที จากข้อมูลเชิงลึกเหล่านี้ เราสามารถออกแบบโมเดลอย่างง่ายได้ ท่อจะถูกพิจารณาว่าถูกบล็อกหากใน 3 นาทีติดต่อกัน จำนวนค่า telemetries ที่สูงกว่าเกณฑ์สัญญาณรบกวน (400) มากกว่า 350 telemetries และใน 3 นาทีติดต่อกัน จำนวนค่าเทเลมาตรที่สูงกว่าเกณฑ์จุดประกายไฟ (720) จะมากกว่า 10 เทเลมาตร

ขั้นตอนที่ 10: ระยะการทำนาย

ระยะทำนาย
ระยะทำนาย

เราหมายถึงค่าที่อ่านได้เมื่อเกินค่าที่กำหนด (THRESHOLD_VALUE) ซึ่งตั้งค่าเป็น 350 ที่กรองสัญญาณรบกวนและลดอัตราการไหลของน้ำในท่อจากการพิจารณาเป็นค่าที่อ่านได้

การวิเคราะห์ข้อมูลแสดงให้เห็นว่าในโหมดเปิด จำนวนการอ่านจะน้อยกว่า 100 แต่ในโหมดอุดตัน ค่าจะสูงกว่ามาก (ถึง 900 ต่อนาที) แต่ในบางกรณีที่ไม่ค่อยพบก็น้อยกว่า 100 อย่างไรก็ตาม กรณีเหล่านี้จะไม่เกิดซ้ำ และเป็นเวลาสามนาทีที่ตามมา จำนวนการอ่านทั้งหมดจะเกิน 350 เสมอ การมีโหมดเปิดในสามนาทีเดียวกันจะรวมกันได้น้อยกว่า 300 เราสามารถวางกฎนี้อย่างมั่นใจ: กฎ # 1 สำหรับการอ่านข้อมูลดิบเป็นเวลาสามนาที หากการอ่านทั้งหมด > 350 จากนั้นตรวจพบการอุดตัน เราพบว่าค่าสูงสุดที่เข้าถึงได้ในโหมดเปิดไม่เกินค่าที่แน่นอน (SPARK_VALUE) ซึ่งพบว่าเป็น 770 ดังนั้นเราจึงเพิ่มกฎนี้: กฎ # 2 หากค่าการอ่าน > 350 แสดงว่ามีการอุดตันเป็นส่วนใหญ่

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

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

โค้ดทั้งหมดสำหรับ Arduino, Raspberry & Cloud Function มีอยู่ใน Github

สำหรับข้อมูลเพิ่มเติมคุณสามารถตรวจสอบลิงค์นี้

แนะนำ: