جدول المحتويات:
- الخطوة 1: المكونات المطلوبة
- الخطوة 2: عمل جهاز بعيد
- الخطوة الثالثة: البرامج والمكتبات
- الخطوة 4: استخدام SSH وتثبيت Libs
- الخطوة 5: بروتوكول Bluetooth
- الخطوة 6: استخدام الميزانين على DragonBoard 410c
- الخطوة 7: برنامج DragonBoard 410c
فيديو: اكتشاف حالات الطوارئ - Qualcomm Dragonboard 410c: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
عند البحث عن أنظمة الأمان التي تعمل على مراقبة المواقف الطارئة ، من الممكن ملاحظة أنه من الصعب جدًا معالجة جميع المعلومات المسجلة. بالتفكير في ذلك ، قررنا استخدام معرفتنا في معالجة الصوت / الصورة ، وأجهزة الاستشعار والمحركات لإنشاء نظام واحد كامل يجعل من الممكن التنبؤ بالمواقف التي تكون فيها حياة الناس في خطر.
يحتوي هذا المشروع على مستشعر محلي وأجهزة بعيدة لجمع البيانات وإرسالها إلى 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
لإجراء الوصلات بين لوحة التنين والمكونات ، نستخدم نوعًا من الدرع يسمى Mezannine ، تم تطويره بواسطة 96boards.
باستخدام هذا الدرع ، يصبح توصيل الأجهزة الطرفية أسهل بكثير.
تستخدم الموصلات من مجموعة تطوير البستان ، لذا فهي تستخدم فقط كبلًا خاصًا يربط كلا الاتجاهين ،
يمكن العثور على جميع الأجزاء بسهولة في هذا الموقع:
نحن نستخدم هذه المجموعات أدناه:
- جروف ريلاي
- جهاز استشعار أشعة الشمس Grove
- مقبس ليد غروف
- جهاز استشعار درجة حرارة جروف وهومي
- جروف الجرس
الخطوة 7: برنامج DragonBoard 410c
تم ترميز جزء البرنامج في DragonBoard بلغة Python وتم تطوير البرنامج المستخدم في Arduino بلغة C ++. كل دقيقتين ، يقرأ Arduino كل المستشعرات المتصلة به. من Arduino أرسل القراءة إلى DragonBoard عن طريق البلوتوث. تجمع لوحة DragonBoard بين القراءة التي جاءت من Arduino والقراءة التي تصدرها بواسطة درع الميزانين مع ميزات عينات الصوت والفيديو.
باستخدام هذه البيانات ، يحاول المجلس التنبؤ بما إذا كان يحدث حالة طوارئ. يرسل المجلس إلى Amazon Web Service باستخدام Phant البيانات الأولية والتنبؤ الذي قدمه. إذا توقعت اللوحة حدوث موقف غريب ، فحاول تحذير المستخدم من وميض مصباح ضوئي وجرس في الميزانين وعرضه في تطبيق الويب. في تطبيق الويب ، من الممكن أيضًا رؤية البيانات الأولية لفهم ما يحدث في هذا المجال.
موصى به:
حالات MIX و MATCH LCD: 5 خطوات
حالات MIX and MATCH LCD LCD: لن تسمح لك الزوجة بوضع أحدث إبداعاتك على طاولة القهوة … لأنها تبدو وكأنها شيء مخدر القط ؟؟؟ هذا سوف يصلح ذلك. امزج وتطابق مع حالات شاشات الكريستال السائل. واجهة واحدة أو اثنتان من شاشات الكريستال السائل مع خيار للوحات مفاتيح 10-12-0. مساحة لبطارية 9 فولت. بي دي إف
حالات Raspberry Pi: 4 خطوات
حالات Raspberry Pi: هذا مجرد مشروع صغير لعمل بعض حالات Raspberry Pi البسيطة
اكتشاف الكائن W / Dragonboard 410c أو 820c باستخدام OpenCV و Tensorflow: 4 خطوات
اكتشاف الكائن W / Dragonboard 410c أو 820c باستخدام OpenCV و Tensorflow: توضح هذه التعليمات كيفية تثبيت OpenCV و Tensorflow وأطر التعلم الآلي لـ Python 3.5 لتشغيل تطبيق Object Detection
بنك الطاقة في حالات الطوارئ - DIY Toolbox Solar: راديو + شاحن + ضوء للطوارئ!: 4 خطوات
بنك الطاقة في حالات الطوارئ - DIY Toolbox Solar: راديو + شاحن + ضوء للطوارئ !: أضف 28 مارس 2015: صنعت صندوق أدواتي لحالات الطوارئ ، واستخدم الآن بعد أن دفنت مدينتي في الوحل. كتجربة يمكنني القول إنني خدمت لشحن الهواتف والاستماع إلى الراديو ، صندوق أدوات قديم؟ مكبر صوت كمبيوتر قديم؟ بطارية غير مستخدمة بجهد 12 فولت؟ يمكنك صنع
مزود الطاقة في حالات الطوارئ: 3 خطوات
مزود الطاقة في حالات الطوارئ: حسنًا ، هذه أول تعليمات لي ، لذا احمل معي ، لقد قمت بذلك في مثل هذا الإخطار القصير لأنني كنت بحاجة إلى مصدر طاقة لاستخدامه في رحلات التخييم ، لذلك آمل أن يساعد الوقت الذي قضيته فيه شخصًا ما لأنني لم يكن لدي صندوق ر ضعه لذا استخدمت الصنبور الكهربائي