สารบัญ:

การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c: 7 ขั้นตอน
การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c: 7 ขั้นตอน

วีดีโอ: การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c: 7 ขั้นตอน

วีดีโอ: การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c: 7 ขั้นตอน
วีดีโอ: กฎหมายว่าด้วยรถยนต์และกฎหมายว่าด้วยการจราจรทางบก 1 2024, พฤศจิกายน
Anonim
การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c
การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c
การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c
การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c
การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c
การตรวจจับสถานการณ์ฉุกเฉิน - Qualcomm Dragonboard 410c

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

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

อุปกรณ์ระยะไกลคือบอร์ด Arduino ที่มีโมดูล HC-06 ที่สามารถเปลี่ยนข้อมูลทั้งหมดได้ และเน็ตกว้างต้นทุนต่ำที่สามารถประมวลผลข้อมูลจำนวนมากได้

ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น

ก่อนอื่น คุณต้องตัดสินใจว่าจะใช้เซ็นเซอร์และแอคทูเอโทตัวใด และสร้างภาพร่างสถาปัตยกรรม

ในกรณีของเรา เรากำลังใช้เซ็นเซอร์เหล่านี้ที่เชื่อมต่อกับ ARDUINO Pro Mini ตามรายการด้านล่าง:

  • PIR (Passive Infrared -- เซ็นเซอร์แสดงตน)
  • DHT 11 (เซนเซอร์วัดความชื้นและอุณหภูมิ)
  • CO Sensor (เซนเซอร์คาร์บอนมอนอกไซด์)
  • เซ็นเซอร์เสียงรบกวน

แอคทูเอเตอร์:

  • มอเตอร์เซอร์โว
  • ออด

การสื่อสาร:

โมดูลบลูทูธ HC-06

สำหรับ Dragonboard 410c เราจะมีเซ็นเซอร์และซอฟต์แวร์บางตัวเพื่อประมวลผลอินพุตข้อมูลทั้งหมด:

เซนเซอร์:

  • DHT 11
  • ซันไลต์เซนเซอร์

แอคทูเอเตอร์:

  • รีเลย์
  • สถานะไฟ LED
  • Buzzer

ขั้นตอนที่ 2: การสร้างอุปกรณ์ระยะไกล

การสร้างอุปกรณ์ระยะไกล
การสร้างอุปกรณ์ระยะไกล

ตอนนี้ได้เวลาเชื่อมต่อส่วนประกอบทั้งหมดต่อไปนี้กับบอร์ด Arduino สร้างอุปกรณ์ที่จะรับข้อมูลจากบรรยากาศ (เสียง ความชื้น อุณหภูมิ ฯลฯ) และส่งไปที่ Dragonboard โดยใช้โมดูลบลูทูธ HC-06

จำเป็นต้องให้ความสนใจกับส่วนเชื่อมต่อ เนื่องจากเซ็นเซอร์ทั้งหมดมีจุดเชื่อมต่อเฉพาะ

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

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

อุปกรณ์ในพื้นที่คือ DragonBoard 410c ซึ่งประมวลผลข้อมูลเสียง วิดีโอ ดิจิตอลและแอนะล็อกด้วยโปรเซสเซอร์ SnapDragon 410 อันทรงพลังของคุณ

การจัดวางส่วนประกอบ (Remote Devide)

ชิ้นหนึ่งมีหมุดบางตัวที่ต้องต่อเข้ากับหมุดด้านขวาบนบอร์ด Arduino pro mini

โมดูลบลูทูธ HC-06 มี 4 พิน:

  • TX (Transmissor) -> เชื่อมต่อกับพิน RX Arduino
  • RX (ตัวรับ) -> เชื่อมต่อกับพินของ TX Arduino
  • VCC -> เชื่อมต่อกับ5v
  • GND

DHT 11 Sensor มี 4 พิน (แต่ใช้งานเพียง 3 อัน):

  • สัญญาณ -> เชื่อมต่อกับพินดิจิทัล
  • VCC -> เชื่อมต่อกับ5v
  • GND

PIR Sensor มี 3 ขา:

  • สัญญาณ -> เชื่อมต่อกับพินดิจิตอล
  • VCC -> เชื่อมต่อกับ5v
  • GND

เซ็นเซอร์ก๊าซ (MQ) มี 4 พิน:

  • Digital OUT -> conected บนพินดิจิทัล (ถ้าคุณต้องการข้อมูลดิจิทัล)
  • Analog OUT -> ในกรณีของเราเราใช้สิ่งนี้เชื่อมต่อกับพินอะนาล็อก
  • VCC -> เชื่อมต่อกับ5v
  • GND

เซ็นเซอร์เสียงรบกวน (KY-038) มี 3 พิน:

  • สัญญาณ -> เชื่อมต่อกับพินอะนาล็อก
  • VCC -> เชื่อมต่อกับ5v
  • GND

รหัสสำหรับอุปกรณ์ระยะไกล Arduino:

/* * Arduino ส่งข้อมูลผ่าน Blutooth * * ค่าของเซ็นเซอร์ถูกอ่าน ต่อกันที่ * String และส่งผ่านพอร์ตอนุกรม */ #include "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht(DHTPIN, DHTTYPE); ความชื้นลอย อุณหภูมิ; บูลีน pir = 0; int co, ไมค์; ข้อความสตริง = ""; ชื่อถ่าน [40]; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); dht.begin(); } วงเป็นโมฆะ () { ความชื้น = dht.readHumidity(); อุณหภูมิ = dht.readTemperature(); pir = digitalRead (PIRPIN); co = analogRead (COPIN); ไมค์ = analogRead (A0); msg = "#;" +สตริง(ความชื้น) + ";" + สตริง (อุณหภูมิ) +";"+ สตริง (ไมโครโฟน) +";"+ สตริง (pir)+ ";" + สตริง(co) + ";#" +"\n"; Serial.print(msg); ล่าช้า (2000); }

คำอธิบายรหัส:

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

ขั้นตอนที่ 3: ซอฟต์แวร์และไลบรารี

ในการประมวลผลข้อมูลทั้งหมดที่ได้รับและควบคุมระบบรักษาความปลอดภัย จำเป็นต้องใช้ซอฟต์แวร์และไลบรารีบางตัวใน Qualcomm DragonBoard 410c

ในโครงการนี้เราใช้:

โปรแกรม:

  • Python
  • Arduino

แพลตฟอร์ม:

  • Amazon AWS -> เซิร์ฟเวอร์ออนไลน์
  • แฟน -> บริการข้อมูลโฮสต์

ห้องสมุด:

  • OpenCV - การประมวลผลวิดีโอ (https://opencv-python-tutroals.readthedocs.io/en/latest/)
  • PyAudio - การประมวลผลเสียง (https://people.csail.mit.edu/hubert/pyaudio/)
  • เวฟ (https://www.physionet.org/physiotools/wave-installation.shtm)
  • AudioOp (https://docs.python.org9https://scikit-learn.org/stable/install.html/2/library/audioop.html)
  • นัมปี้ (https://www.numpy.org)
  • SciKit1 - ฝึกฝนและทำนายการเรียนรู้ของเครื่อง (https://scikit-learn.org/stable/install.html)
  • cPickle - บันทึกพารามิเตอร์การเรียนรู้ของเครื่อง (https://pymotw.com/2/pickle/)
  • MRAA - ใช้ GPIO (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM - ใช้ GPIO (https://github.com/intel-iot-devkit/upm)
  • PySerial - ใช้เพื่อสื่อสารกับอุปกรณ์บลูทูธแบบอนุกรม (https://pythonhosted.org/pyserial/)

ขั้นตอนที่ 4: การใช้ SSH และการติดตั้ง Libs

ก่อนอื่นคุณต้องรับที่อยู่ IP จาก Dragonboard เพื่อที่จะทำอย่างนั้นได้ คุณต้องเปิด DragonBoard ที่เชื่อมต่อด้วยเมาส์ คีย์บอร์ด และจอภาพ HDMI เมื่อบอร์ดเปิด คุณต้องเชื่อมต่อกับเครือข่าย กว่าที่คุณไปที่เทอร์มินัลแล้วรันคำสั่ง:

sudo ifconfig

หลังจากนั้นคุณจะได้รับที่อยู่ IP

ด้วยที่อยู่ IP คุณสามารถเข้าถึง Dragonboard ผ่าน SHH ได้ คุณต้องเปิดเทอร์มินัลในคอมพิวเตอร์ที่เชื่อมต่อในเครือข่ายเดียวกันกับบอร์ด ในเทอร์มินัลคุณสามารถเรียกใช้คำสั่ง:

ssh linaro@{IP}

(คุณควรแทนที่ {IP} ด้วยที่อยู่ IP ที่คุณได้รับใน Dragonboard)

lib แรกที่คุณต้องติดตั้งคือ mraa lib ในการทำเช่นนั้น คุณต้องเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล:

sudo add-apt-repository ppa:mraa/mraa && sudo apt-ge;t อัปเดต && sudo apt-get ติดตั้ง libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa

ในการติดตั้ง opencv สำหรับ python คุณจะต้องเรียกใช้คำสั่งเท่านั้น:

sudo apt-get ติดตั้ง python-opencv

ในการติดตั้ง PyAudio คุณต้องเรียกใช้คำสั่ง:

sudo apt-get ติดตั้ง python-pyaudio python3-pyaudio

libs WAVE และ AudioOp ได้รับการติดตั้งในบอร์ดแล้ว ในการติดตั้ง numpy คุณต้องเรียกใช้คำสั่ง:

sudo apt-get ติดตั้ง python-numpy python-scipy

lib สุดท้ายที่คุณต้องติดตั้งคือ scikit ในการติดตั้ง คุณต้องติดตั้ง pip กว่าคุณจะต้องรันคำสั่ง:

pip ติดตั้ง scikit-lear

ขั้นตอนที่ 5: โปรโตคอล Bluetooth

โปรโตคอลบลูทูธ
โปรโตคอลบลูทูธ
โปรโตคอลบลูทูธ
โปรโตคอลบลูทูธ
โปรโตคอลบลูทูธ
โปรโตคอลบลูทูธ

การเชื่อมต่อ DragonBoard กับ Arduino โดยใช้ Bluetooth

โมดูล Bluetooth (HC-06) เริ่มแรกเชื่อมต่อกับ Arduino Nano ตามตัวอย่างต่อไปนี้:

การใช้อินเทอร์เฟซกราฟิก Linaro (ระบบปฏิบัติการที่ใช้ในโปรเจ็กต์ปัจจุบันใน DragonBoard) ที่ด้านขวาของแถบด้านล่าง ให้คลิกที่สัญลักษณ์ Bluetooth จากนั้นคลิกที่ "ตั้งค่าอุปกรณ์ใหม่" และกำหนดค่าด้วยโมดูล Bluetooth ของคุณโดยปล่อยให้จับคู่ ตรวจสอบว่าโมดูลของคุณเชื่อมต่ออยู่จริงโดยคลิกที่สัญลักษณ์ Bluetooth อีกครั้ง คลิก "อุปกรณ์…" และดูว่าชื่ออุปกรณ์ของคุณอยู่ในรายการและเชื่อมต่อหรือไม่ ตอนนี้ เลือกอุปกรณ์ของคุณในหน้าจอ "อุปกรณ์บลูทูธ" และคลิกขวาบนมัน แล้วสังเกตพอร์ตที่โมดูล Bluetooth ของคุณเชื่อมต่ออยู่ (เช่น "rfcomm0") หมายเหตุ: ชื่อพอร์ตที่อุปกรณ์ของคุณเชื่อมต่อจะมีความสำคัญสำหรับขั้นตอนต่อไปเพื่อเปิดใช้งานการแลกเปลี่ยนข้อมูล

การสร้าง DragonBoard Data Exchange และ Bluetooth

โดยพื้นฐานแล้วเราทำตามขั้นตอนของลิงก์ทีละขั้นตอน: https://www.uugear.com/portfolio/bluetooth-communi… แต่เราไม่ได้ดำเนินการในส่วนของการจับคู่เฉพาะการดำเนินการของรหัสหลามและ Arduino ใน python มีการใช้ไลบรารีอนุกรมที่เริ่มต้นในพอร์ตที่เชื่อมต่อกับบลูทู ธ ดังนั้นรหัส python จะอ่านข้อมูลของเซ็นเซอร์ที่เชื่อมต่อกับ Arduino ผ่านโมดูลบลูทู ธ

ขั้นตอนที่ 6: การใช้ Mezzanine บน DragonBoard 410c

ใช้ Mezzanine บน DragonBoard 410c
ใช้ Mezzanine บน DragonBoard 410c

เพื่อสร้างความเชื่อมโยงระหว่างกระดานมังกรและส่วนประกอบต่างๆ เราใช้โล่ประเภทหนึ่งที่ Mezannine พัฒนาขึ้นโดย 96boards

การใช้โล่นี้ การเชื่อมต่ออุปกรณ์ต่อพ่วงจะง่ายขึ้นมาก

ตัวเชื่อมต่อใช้มาจากชุดพัฒนาของ Grove ดังนั้นจึงใช้สายเคเบิลเฉพาะที่เชื่อมต่อทั้งสองทาง

ชิ้นส่วนทั้งหมดสามารถพบได้ง่ายในเว็บไซต์นี้:

เรากำลังใช้ชุดนี้ร้อง:

  • โกรฟ รีเลย์
  • เซ็นเซอร์แสงแดดโกรฟ
  • ซ็อกเก็ตนำโกรฟ
  • เซ็นเซอร์อุณหภูมิและความชื้นของ Grove
  • Grove Buzzer

ขั้นตอนที่ 7: ซอฟต์แวร์ DragonBoard 410c

ส่วนหนึ่งของโปรแกรมใน DragonBoard ถูกเข้ารหัสด้วย Python และโปรแกรมที่ใช้ใน Arduino ได้รับการพัฒนาใน C++ ทุกๆ 2 นาที Arduino จะอ่านเซ็นเซอร์ทั้งหมดที่ต่ออยู่ กว่า Arduino ส่งการอ่านไปยัง DragonBoard โดย Bluetooth DragonBoard ผสมผสานการอ่านที่มาจาก Arduino กับการอ่านที่สร้างขึ้นโดย Mezzanine Shield พร้อมคุณสมบัติจากเสียงและวิดีโอตัวอย่าง

ด้วยข้อมูลนี้ คณะกรรมการพยายามคาดการณ์ว่ากำลังเกิดสถานการณ์ฉุกเฉินหรือไม่ คณะกรรมการส่งไปยัง Amazon Web Service โดยใช้ข้อมูลดิบของ Phant และการคาดการณ์ที่สร้างขึ้น หากคณะกรรมการคาดการณ์ว่าจะเกิดสถานการณ์แปลก ๆ จะพยายามเตือนผู้ใช้ให้กะพริบไฟ LED และออดใน Mezzanine และแสดงที่เว็บแอปพลิเคชัน ในเว็บแอปพลิเคชัน ยังสามารถดูข้อมูลดิบเพื่อทำความเข้าใจว่าเกิดอะไรขึ้นในพื้นที่นี้

แนะนำ: