فهرست مطالب:

تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c: 7 مرحله
تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c: 7 مرحله

تصویری: تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c: 7 مرحله

تصویری: تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c: 7 مرحله
تصویری: شیر قطع اضطراری (Emergency shotdown valve)##شیر قطع اضطراری 2024, نوامبر
Anonim
تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c
تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c
تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c
تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c
تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c
تشخیص شرایط اضطراری - Qualcomm Dragonboard 410c

با جستجوی سیستم های امنیتی که برای نظارت بر شرایط اضطراری کار می کنند ، ممکن است متوجه شوید که پردازش تمام اطلاعات ثبت شده بسیار سخت است. با فکر کردن به این موضوع ، ما تصمیم گرفتیم از دانش خود در پردازش صدا/تصویر ، حسگرها و محرک ها برای ایجاد یک سیستم کامل که امکان پیش بینی موقعیت هایی را که جان افراد در خطر است ، استفاده کنیم.

این پروژه دارای سنسورهای محلی و دستگاه های از راه دور برای جمع آوری داده ها و ارسال به dragonboard است ، که دارای قدرت پردازش قادر به استخراج اطلاعات مهم از داده های دریافت شده است.

دستگاه از راه دور یک برد آردوینو با ماژول HC-06 است که برای انتقال تمام اطلاعات امکان پذیر است و دارای شبکه ای کم هزینه است که می تواند حجم زیادی از داده ها را پردازش کند.

مرحله 1: اجزای مورد نیاز

اول از همه ، شما باید تصمیم بگیرید که از کدام سنسورها و محرک ها استفاده خواهید کرد و طرح معماری را ایجاد کنید.

در مورد ما ، ما از سنسورهای متصل شده در ARDUINO Pro Mini استفاده می کنیم که در زیر ذکر شده است:

  • PIR (مادون قرمز منفعل-حسگر حضور)
  • DHT 11 (سنسور رطوبت و دما)
  • سنسور CO (سنسور مونوکسید کربن)
  • حسگر صدا

محرک ها:

  • سرو موتور
  • buzzer

ارتباطات:

ماژول بلوتوث HC-06

در Dragonboard 410c ، ما چند حسگر و نرم افزار برای پردازش تمام ورودی های داده خواهیم داشت:

سنسورها:

  • DHT 11
  • سنسور نور خورشید

محرک ها:

  • رله
  • وضعیت رهبری
  • Buzzer

مرحله 2: ساخت دستگاه از راه دور

ساخت دستگاه از راه دور
ساخت دستگاه از راه دور

اکنون وقت آن است که همه اجزای زیر را به برد آردوینو متصل کرده و دستگاهی را ایجاد کنید که داده ها را از محیط دریافت می کند (سر و صدا ، رطوبت ، دما و غیره) و توسط ماژول بلوتوث HC-06 به Dragonboard ارسال می شود.

لازم است به اتصالات توجه شود ، زیرا همه سنسور مکانهای مشخصی برای اتصال دارند.

در سیستم ، ممکن است بیش از یک دستگاه برای جمع آوری داده ها وجود داشته باشد. هرچه دستگاههای بیشتری در محیط نصب کرده باشید ، تشخیص تشخیص داده شده توسط پردازش داده ها دقیق تر است. از آنجا که امکان استخراج طیف وسیع تری از اطلاعات وجود دارد که ممکن است مفید باشد.

ما تصمیم گرفتیم که از یک برد آردوینو استفاده کنیم زیرا سنسورهای سازگاری بیشتری دارد و این امکان وجود دارد که این دستگاه های راه دور را در مکان های مختلف نصب کرده و اطلاعات بیشتری را جمع آوری کنیم.

دستگاه محلی DragonBoard 410c است که اطلاعات صوتی ، تصویری ، دیجیتال و آنالوگ را با پردازنده قدرتمند SnapDragon 410 پردازش می کند.

قرار دادن اجزاء (Remote Devide)

در هر قطعه تعدادی پین وجود دارد که باید آنها را در پین های راست روی برد کوچک arduino pro متصل کنید.

ماژول بلوتوث HC-06 دارای 4 پین است:

  • TX (فرستنده) -> روی پین RX آردوینو متصل شده است
  • RX (گیرنده) -> روی پین TX Arduino متصل شده است
  • VCC -> روی 5 ولت متصل شده است
  • GND

سنسور DHT 11 دارای 4 پین است (اما فقط 3 پین در حال استفاده است):

  • سیگنال -> روی یک پین دیجیتال متصل شده است
  • VCC -> روی 5 ولت متصل شده است
  • GND

سنسور PIR دارای 3 پین است:

  • سیگنال -> روی پین دیجیتال متصل شده است
  • VCC -> روی 5 ولت متصل شده است
  • GND

سنسور گاز (MQ) دارای 4 پین است:

  • Digital OUT -> متصل به پین دیجیتال (اگر اطلاعات دیجیتالی می خواهید)
  • خروجی آنالوگ -> در مورد ما ، ما از این متصل به پین آنالوگ استفاده می کنیم
  • VCC -> روی 5 ولت متصل شده است
  • GND

سنسور نویز (KY-038) دارای 3 پین است:

  • سیگنال -> روی پین آنالوگ متصل شده است
  • VCC -> روی 5 ولت متصل شده است
  • GND

کد دستگاه از راه دور آردوینو:

/ * * آردوینو داده ها را از طریق Blutooth ارسال می کند * * ارزش سنسورها خوانده می شوند ، روی * String متصل می شوند و از طریق پورت سریال ارسال می شوند. */ #شامل "DHT.h" #تعریف DHTPIN 3 #تعریف DHTTYPE DHT22 #تعریف PIRPIN 9 #تعریف COPIN A6 DHT dht (DHTPIN ، DHTTYPE) ؛ رطوبت شناور ، دما ؛ boolean pir = 0؛ int co، mic؛ msg = ""؛ char nome [40]؛ void setup () {Serial.begin (9600)؛ dht.begin ()؛ } void loop () {humidaty = dht.readHumidity ()؛ دما = dht.readTemperature ()؛ pir = digitalRead (PIRPIN)؛ co = analogRead (COPIN) ؛ mic = analogRead (A0) ؛ msg = "#؛" + رشته (مرطوب) + "؛" + رشته (دما)+ "؛"+ رشته (میکروفون)+ "؛"+ رشته (پیر)+ "؛" + رشته (co) + "؛#" + "\ n"؛ Serial.print (msg)؛ تاخیر (2000) ؛ }

توضیح کد:

تمام پین های مورد استفاده در آردوینو در ابتدای کد ذکر شده اند و کتابخانه های مربوطه مورد نیاز برای عملکرد سنسورها مقداردهی می شوند. همه داده ها به متغیرهای مربوطه منتقل می شوند که مقادیر خوانده شده از هر سنسور را هر 2000 میلی ثانیه دریافت می کنند ، سپس همه آنها در یک رشته متصل می شوند ، سپس به صورت سریال نوشته می شوند. از آنجا کد پایتون موجود در DragonBoard بسیار آسان است که چنین داده هایی را ضبط کند.

مرحله 3: نرم افزارها و کتابخانه ها

برای پردازش تمام داده های دریافتی و کنترل سیستم امنیتی ، لازم است از برخی نرم افزارها و کتابخانه ها در Qualcomm DragonBoard 410c استفاده کنید.

در این پروژه خاص ما از موارد زیر استفاده می کنیم:

نرم افزارها:

  • پایتون
  • آردوینو

پلتفرم ها:

  • Amazon AWS -> سرور آنلاین
  • Phant -> سرویس داده میزبان

کتابخانه ها:

  • OpenCV-پردازش ویدئو (https://opencv-python-tutroals.readthedocs.io/fa/latest/)
  • PyAudio - پردازش صدا (https://people.csail.mit.edu/hubert/pyaudio/)
  • Wave (https://www.physionet.org/physiotools/wave-installation.shtm)
  • AudioOp (https://docs.python.org9https://scikit-learn.org/stable/install.html/2/library/audioop.html)
  • Numpy (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 می توانید از طریق SHH به Dragonboard دسترسی داشته باشید ، برای این کار باید یک ترمینال را در رایانه ای که در همان شبکه برد متصل است باز کنید. در ترمینال می توانید دستور را اجرا کنید:

ssh linaro@{IP}

(باید آدرس IP را که در Dragonboard دریافت می کنید {IP} را جایگزین کنید).

اولین lib که باید نصب کنید mraa lib است. برای این کار باید دستور زیر را در ترمینال اجرا کنید:

sudo add-apt-repository ppa: mraa/mraa && sudo apt-ge؛ t update && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa

برای نصب opencv برای پایتون فقط باید دستور را اجرا کنید:

sudo apt-get python-opencv را نصب کنید

برای نصب PyAudio باید دستور زیر را اجرا کنید:

sudo apt-get python-pyaudio python3-pyaudio را نصب کنید

LBS WAVE و AudioOp قبلاً در برد نصب شده اند. برای نصب numpy باید دستور زیر را اجرا کنید:

sudo apt-get python-numpy python-scipy را نصب کنید

آخرین lib که باید نصب کنید scikit است ، برای نصب آن باید pip را نصب کنید. فقط باید دستور را اجرا کنید:

pip install scikit-lear

مرحله 5: پروتکل بلوتوث

پروتکل بلوتوث
پروتکل بلوتوث
پروتکل بلوتوث
پروتکل بلوتوث
پروتکل بلوتوث
پروتکل بلوتوث

اتصال DragonBoard با آردوینو از طریق بلوتوث

ماژول بلوتوث (HC-06) طبق مثال زیر به Arduino Nano متصل شد:

با استفاده از رابط گرافیکی Linaro (سیستم عامل مورد استفاده در پروژه فعلی در DragonBoard) ، در سمت راست نوار پایین روی نماد بلوتوث و سپس روی "راه اندازی دستگاه جدید" کلیک کنید و با ماژول بلوتوث خود پیکربندی کنید و آن را جفت کنید. با کلیک مجدد بر روی نماد بلوتوث ، روی ماژول خود در واقع متصل شوید ، روی "دستگاهها …" کلیک کنید و ببینید آیا نام دستگاه شما فهرست شده و وصل شده است. اکنون دستگاه خود را در صفحه "دستگاه های بلوتوث" انتخاب کرده و روی آن راست کلیک کرده و پورت را که ماژول بلوتوث شما به آن متصل شده است (مانند: "rfcomm0") توجه کنید. توجه: نام پورتی که دستگاه شما به آن متصل است در مرحله بعد برای فعال کردن تبادل داده مهم خواهد بود.

ایجاد تبادل داده DragonBoard و بلوتوث

اساساً ما پیوند را مرحله به مرحله دنبال می کنیم: در پایتون از کتابخانه سریال استفاده می شود که در پورت متصل به بلوتوث راه اندازی می شود ، بنابراین کد پایتون اطلاعات سنسورهایی را که از طریق ماژول بلوتوث به آردوینو متصل شده اند ، می خواند.

مرحله 6: استفاده از Mezzanine در DragonBoard 410c

استفاده از Mezzanine در DragonBoard 410c
استفاده از Mezzanine در DragonBoard 410c

برای ایجاد ارتباطات بین dragonboard و اجزای سازنده ، ما از نوعی سپر به نام Mezannine استفاده می کنیم که توسط 96board ساخته شده است.

با استفاده از این سپر ، اتصال لوازم جانبی بسیار ساده تر می شود.

اتصالات مورد استفاده از کیت توسعه grove است ، بنابراین فقط از یک کابل especif استفاده می کند که هر دو راه را به هم متصل می کند ،

همه قطعات را می توان به راحتی در این وب سایت یافت:

ما از این کیت ها در زیر استفاده می کنیم:

  • رله گروو
  • سنسور نور خورشید Grove
  • سوکت led Grove
  • سنسور دما و هومی Grove
  • Grove Buzzer

مرحله 7: نرم افزار DragonBoard 410c

بخشی از برنامه موجود در DragonBoard در پایتون کدگذاری شده است و برنامه مورد استفاده در Arduino به زبان C ++ توسعه یافته است. هر 2 دقیقه آردوینو تمام سنسور متصل به آن را می خواند. از آردوینو با بلوتوث خوانده شده را به DragonBoard ارسال کنید. DragonBoard قرائتی را که از آردوینو گرفته شده است با قرائتی که توسط سپر Mezzanine ساخته می شود و ویژگی های نمونه های صوتی و تصویری ترکیب می کند.

با این داده ها ، هیئت مدیره سعی می کند پیش بینی کند که آیا در شرایط اضطراری رخ می دهد یا خیر. هیئت مدیره با استفاده از Phant داده های خام و پیش بینی های انجام شده را به سرویس وب آمازون ارسال می کند. اگر هیئت مدیره پیش بینی می کند که در حال وقوع یک وضعیت عجیب است ، سعی کنید به کاربر در هنگام چشمک زدن به led و buzzer در Mezzanine و نمایش آن در برنامه وب هشدار دهید. در برنامه وب نیز می توانید داده های خام را مشاهده کنید تا بفهمید در این منطقه چه می گذرد.

توصیه شده: