جدول المحتويات:

اكتشاف حالات الطوارئ - Qualcomm Dragonboard 410c: 7 خطوات
اكتشاف حالات الطوارئ - Qualcomm Dragonboard 410c: 7 خطوات

فيديو: اكتشاف حالات الطوارئ - Qualcomm Dragonboard 410c: 7 خطوات

فيديو: اكتشاف حالات الطوارئ - Qualcomm Dragonboard 410c: 7 خطوات
فيديو: الغاء مكالمات الطوارئ 🫣#TechItEasy #sos 2024, ديسمبر
Anonim
الكشف عن حالات الطوارئ - Qualcomm Dragonboard 410c
الكشف عن حالات الطوارئ - Qualcomm Dragonboard 410c
الكشف عن حالات الطوارئ - Qualcomm Dragonboard 410c
الكشف عن حالات الطوارئ - Qualcomm Dragonboard 410c
الكشف عن حالات الطوارئ - Qualcomm Dragonboard 410c
الكشف عن حالات الطوارئ - Qualcomm Dragonboard 410c

عند البحث عن أنظمة الأمان التي تعمل على مراقبة المواقف الطارئة ، من الممكن ملاحظة أنه من الصعب جدًا معالجة جميع المعلومات المسجلة. بالتفكير في ذلك ، قررنا استخدام معرفتنا في معالجة الصوت / الصورة ، وأجهزة الاستشعار والمحركات لإنشاء نظام واحد كامل يجعل من الممكن التنبؤ بالمواقف التي تكون فيها حياة الناس في خطر.

يحتوي هذا المشروع على مستشعر محلي وأجهزة بعيدة لجمع البيانات وإرسالها إلى dragonboard ، التي تتمتع بقدرة معالجة قادرة على استخراج المعلومات المهمة من البيانات المستلمة.

الجهاز البعيد عبارة عن لوحة Arduino مع وحدة HC-06 يمكن تحويلها لنقل جميع المعلومات ، وشبكة واسعة منخفضة التكلفة قادرة على معالجة كمية كبيرة من البيانات.

الخطوة 1: المكونات المطلوبة

بادئ ذي بدء ، يجب عليك تحديد المستشعرات والمحركات التي ستستخدمها ، وإنشاء رسم تخطيطي.

في حالتنا ، نستخدم هذه المستشعرات المتصلة في ARDUINO Pro Mini ، المدرجة أدناه:

  • PIR (الأشعة تحت الحمراء السلبية - مستشعر التواجد)
  • DHT 11 (مستشعر الرطوبة ودرجة الحرارة)
  • مستشعر أول أكسيد الكربون (مستشعر أول أكسيد الكربون)
  • مستشعر الضوضاء

المحركات:

  • محرك سيرفو
  • الجرس

تواصل:

وحدة البلوتوث HC-06

بالنسبة إلى Dragonboard 410c ، سيكون لدينا بعض المستشعرات والبرامج لمعالجة جميع مدخلات البيانات:

المستشعرات:

  • DHT 11
  • مستشعر ضوء الشمس

المحركات:

  • ترحيل
  • حالة الصمام
  • الجرس

الخطوة 2: عمل جهاز بعيد

صنع جهاز بعيد
صنع جهاز بعيد

حان الوقت الآن لتوصيل جميع المكونات التالية بلوحة Arduino ، وإنشاء جهاز يتلقى البيانات من البيئة المحيطة (الضوضاء ، والرطوبة ، ودرجة الحرارة ، وما إلى ذلك) ، وإرسالها إلى Dragonboard بواسطة وحدة البلوتوث HC-06.

من الضروري الانتباه إلى التوصيلات ، لأن جميع أجهزة الاستشعار لها أماكن محددة للاتصال.

على النظام ، من الممكن أن يكون لديك أكثر من جهاز واحد لجمع البيانات. كلما زاد عدد الأجهزة التي قمت بتثبيتها في البيئة ، زادت دقة التشخيصات الناتجة عن معالجة البيانات. لأنه سيكون من الممكن استخراج نطاق أوسع من المعلومات التي قد تكون مفيدة.

قررنا استخدام لوحة اردوينو نظرًا لوجود مستشعرات أكثر توافقًا ، ومن الممكن تثبيت هذه الأجهزة البعيدة في أماكن مختلفة ، وجمع المزيد من المعلومات.

الجهاز المحلي هو DragonBoard 410c ، الذي يعالج المعلومات الصوتية والفيديو والمعلومات الرقمية والتناظرية باستخدام معالج SnapDragon 410 القوي.

وضع المكونات (Remote Devide)

تحتوي قطعة واحدة على بعض المسامير التي يجب توصيلها في المسامير اليمنى على لوحة اردوينو برو الصغيرة.

وحدة بلوتوث HC-06 بها 4 دبابيس:

  • TX (ناقل) -> متصل على دبوس RX Arduino
  • RX (جهاز الاستقبال) -> متصل على دبوس TX Arduino
  • VCC -> متصل على 5 فولت
  • GND

يحتوي مستشعر DHT 11 على 4 دبابيس (لكن 3 فقط قيد الاستخدام):

  • إشارة -> متصلة على دبوس رقمي
  • VCC -> متصل على 5 فولت
  • GND

يحتوي مستشعر PIR على 3 دبابيس:

  • الإشارة -> متصل على دبوس رقمي
  • VCC -> متصل على 5 فولت
  • GND

مستشعر الغاز (MQ) له 4 دبابيس:

  • Digital OUT -> متصل على دبوس رقمي (إذا كنت تريد معلومات رقمية)
  • Analog OUT -> في حالتنا ، نحن نستخدم هذا الموصل على دبوس تمثيلي
  • VCC -> متصل على 5 فولت
  • GND

يحتوي مستشعر الضوضاء (KY-038) على 3 دبابيس:

  • الإشارة -> متصل على دبوس تمثيلي
  • VCC -> متصل على 5 فولت
  • GND

كود لجهاز Arduino البعيد:

/ * * Arduino يرسل البيانات من خلال Blutooth * * تتم قراءة قيمة المستشعرات وتوصيلها على سلسلة * وإرسالها عبر المنفذ التسلسلي. * / # تضمين "DHT.h" #define DHTPIN 3 #define DHTTYPE DHT22 #define PIRPIN 9 #define COPIN A6 DHT dht (DHTPIN، DHTTYPE) ؛ الرطوبة العائمة ، درجة الحرارة ؛ منطقي البير = 0 ؛ شارك int ، mic ؛ String msg = ""؛ شار نوم [40] ؛ إعداد باطل () {Serial.begin (9600) ؛ dht.begin () ، } حلقة فارغة () {humidaty = dht.readHumidity ()؛ درجة الحرارة = dht.readTemperature () ؛ pir = digitalRead (PIRPIN) ؛ co = analogRead (كوبين) ؛ هيئة التصنيع العسكري = analogRead (A0) ؛ msg = "# ؛" + سلسلة (humidaty) + "؛" + سلسلة (درجة حرارة) + "؛" + سلسلة (ميكروفون) + "؛" + سلسلة (بير) + "؛" + سلسلة (co) + "؛ #" + "\ n" ؛ Serial.print (msg) ؛ تأخير (2000) ؛ }

شرح الكود:

جميع المسامير المستخدمة في Arduino مذكورة في بداية الكود ويتم تهيئة المكتبات المعنية المطلوبة لتشغيل المستشعرات. سيتم تمرير جميع البيانات إلى المتغيرات ذات الصلة والتي ستتلقى القيم المقروءة من كل جهاز استشعار كل 2000 مللي ثانية ، ثم يتم تجميعها جميعًا في سلسلة ، ثم يتم كتابتها في المسلسل. من هناك ، من السهل جدًا استخدام كود pyton الموجود في DragonBoard لالتقاط مثل هذه البيانات.

الخطوة الثالثة: البرامج والمكتبات

لمعالجة جميع البيانات الواردة والتحكم في نظام الأمان ، من الضروري استخدام بعض البرامج والمكتبات في Qualcomm DragonBoard 410c.

في هذا المشروع الخاص نستخدم:

البرامج:

  • بايثون
  • اردوينو

Plataforms:

  • Amazon AWS -> خادم عبر الإنترنت
  • فانت -> خدمة بيانات المضيف

المكتبات:

  • OpenCV - معالجة الفيديو (https://opencv-python-tutroals.readthedocs.io/en/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)
  • نومبي (https://www.numpy.org)
  • SciKit1 - تدريب وتوقع التعلم الآلي (https://scikit-learn.org/stable/install.html)
  • cPickle - احفظ معلمات التعلم الآلي (https://pymotw.com/2/pickle/)
  • MRAA - استخدم GPIOs (https://iotdk.intel.com/docs/master/mraa/python/)
  • UPM - استخدم GPIOs (https://github.com/intel-iot-devkit/upm)
  • PySerial - استخدم للاتصال التسلسلي بجهاز Bluetooth (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 update && sudo apt-get install libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa

لتثبيت opencv للبيثون ، ما عليك سوى تشغيل الأمر:

sudo apt-get install python-opencv

لتثبيت PyAudio ، تحتاج إلى تشغيل الأمر:

sudo apt-get install python-pyaudio python3-pyaudio

تم تثبيت libs WAVE و AudioOp بالفعل في اللوحة. لتثبيت numpy ، تحتاج إلى تشغيل الأمر:

sudo apt-get install python-numpy python-scipy

آخر lib يجب عليك تثبيته هو scikit ، لتثبيته تحتاج إلى تثبيت pip. مما تحتاج فقط إلى تشغيل الأمر:

نقطة تثبيت scikit-lear

الخطوة 5: بروتوكول Bluetooth

بروتوكول بلوتوث
بروتوكول بلوتوث
بروتوكول بلوتوث
بروتوكول بلوتوث
بروتوكول بلوتوث
بروتوكول بلوتوث

اتصال DragonBoard مع Arduino عن طريق البلوتوث

تم توصيل وحدة Bluetooth (HC-06) مبدئيًا بـ Arduino Nano وفقًا للمثال التالي:

باستخدام واجهة Linaro (نظام التشغيل المستخدم في المشروع الحالي في DragonBoard) ، على الجانب الأيمن من الشريط السفلي ، انقر فوق رمز Bluetooth ثم انقر فوق "إعداد جهاز جديد" وقم بتكوين وحدة Bluetooth الخاصة بك مع تركها مقترنة. تحقق من أن الوحدة النمطية الخاصة بك متصلة بالفعل عن طريق النقر فوق رمز Bluetooth مرة أخرى ، وانقر فوق "الأجهزة …" وتحقق مما إذا كان اسم جهازك مدرجًا ومتصلًا. حدد الآن جهازك في شاشة "أجهزة Bluetooth" وانقر فوقه بزر الماوس الأيمن ولاحظ المنفذ الذي تتصل به وحدة Bluetooth (على سبيل المثال: "rfcomm0"). ملاحظة: سيكون اسم المنفذ الذي يتصل به جهازك مهمًا للخطوة التالية لتمكين تبادل البيانات.

إنشاء نظام تبادل البيانات دراغون بورد وبلوتوث

نحن في الأساس نتبع خطوة بخطوة من الرابط: https://www.uugear.com/portfolio/bluetooth-communi… لكننا لم ننفذ جزء الاقتران فقط لتنفيذ أكواد python و Arduino. في لغة python ، تم استخدام المكتبة التسلسلية التي تمت تهيئتها في المنفذ المتصل بالبلوتوث ، ومن ثم يقرأ كود Python بيانات المستشعرات المتصلة بـ arduino من خلال وحدة البلوتوث.

الخطوة 6: استخدام الميزانين على DragonBoard 410c

استخدام الميزانين على دراغون بورد 410 ج
استخدام الميزانين على دراغون بورد 410 ج

لإجراء الوصلات بين لوحة التنين والمكونات ، نستخدم نوعًا من الدرع يسمى Mezannine ، تم تطويره بواسطة 96boards.

باستخدام هذا الدرع ، يصبح توصيل الأجهزة الطرفية أسهل بكثير.

تستخدم الموصلات من مجموعة تطوير البستان ، لذا فهي تستخدم فقط كبلًا خاصًا يربط كلا الاتجاهين ،

يمكن العثور على جميع الأجزاء بسهولة في هذا الموقع:

نحن نستخدم هذه المجموعات أدناه:

  • جروف ريلاي
  • جهاز استشعار أشعة الشمس Grove
  • مقبس ليد غروف
  • جهاز استشعار درجة حرارة جروف وهومي
  • جروف الجرس

الخطوة 7: برنامج DragonBoard 410c

تم ترميز جزء البرنامج في DragonBoard بلغة Python وتم تطوير البرنامج المستخدم في Arduino بلغة C ++. كل دقيقتين ، يقرأ Arduino كل المستشعرات المتصلة به. من Arduino أرسل القراءة إلى DragonBoard عن طريق البلوتوث. تجمع لوحة DragonBoard بين القراءة التي جاءت من Arduino والقراءة التي تصدرها بواسطة درع الميزانين مع ميزات عينات الصوت والفيديو.

باستخدام هذه البيانات ، يحاول المجلس التنبؤ بما إذا كان يحدث حالة طوارئ. يرسل المجلس إلى Amazon Web Service باستخدام Phant البيانات الأولية والتنبؤ الذي قدمه. إذا توقعت اللوحة حدوث موقف غريب ، فحاول تحذير المستخدم من وميض مصباح ضوئي وجرس في الميزانين وعرضه في تطبيق الويب. في تطبيق الويب ، من الممكن أيضًا رؤية البيانات الأولية لفهم ما يحدث في هذا المجال.

موصى به: