جدول المحتويات:
- الخطوة 1: ما تحتاجه
- الخطوة 2: تجهيز وحدة البلوتوث
- الخطوة 3: تركيب الأجزاء
- الخطوة 4: الاقتران
- الخطوة 5: البرنامج
- الخطوة 6: الاختبار
فيديو: مستشعر الغبار Sodial على Android: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
قبل عام ، أقام صديق لي ورشة عمل في عطلة نهاية الأسبوع حول المراقبة البيئية. كان الهدف من ورشة العمل هو بناء مستشعر غبار متصل بلوحة raspberry pi لوضع بيانات القياس على بعض الخوادم التي توفر خرائط تركيز الغبار التي يتم تحديثها بشكل متكرر. سألني صديقي عما إذا كانت هناك طريقة للحصول على بيانات المستشعر مباشرة على هاتفه الذكي للمراقبة والتسجيل. لذلك قمت بحفر الإنترنت للحصول على ورقة بيانات ورأيت أن المستشعر يحتوي على واجهة UART بسيطة مع بروتوكول 9600Baud 8N1. ولكن كيف يتم توصيل UART بهاتف ذكي؟ حسنًا ، هذا سهل. كان عليّ فقط استخدام واحدة من وحدات البلوتوث الصغيرة المنتشرة في كل مكان والتي توفر توافقًا مقلدًا على نظام Android. الآن انظر كيف صنعتها.
الخطوة 1: ما تحتاجه
أنت بحاجة إلى الأجزاء التالية
- موصل تزاوج JST XH ذو 7 سنون للواجهة Sodial مع الأسلاك. اشتريت لي على موقع ئي باي.
- وحدة بلوتوث HC05 أو 06 متوافقة مع موصل UART
- محول تسلسلي USB بواجهة مستوى TTL. نستخدم هذا لمنح وحدة BT اسمًا فريدًا
- حساس الغبار Sodial SDS011. حصلت على خاصتي من موقع ئي باي
- قطعة من فيروبورد
- موصل USB-B
- الأسلاك
- قطعة من الخشب لتثبيت كل شيء عليها
بعد ذلك ستحتاج إلى بعض الأدوات البسيطة:
- منشار لقطع الخشب
- ملاقيط
- لحام الحديد وجندى
- قاطع الاسلاك
- مسدس الغراء الساخن
- قطعة من غلاف السيليكون 8 مم (ليس على الصورة)
يمكنك تنزيل ورقة بيانات Sodial SDS011 هنا ورقة بيانات Sodial SDS011
الخطوة 2: تجهيز وحدة البلوتوث
تحتوي وحدة BT-Module على واجهة UART بمستوى TTL. يمكن إعادة تكوينه بأوامر "AT" كما فعلنا مع أجهزة مودم الإنترنت في العصور القديمة. لتوصيله ببرنامج طرفي على جهازك ، تحتاج إلى تكييف UART مع جهاز الكمبيوتر الخاص بك. لقد استخدمت محول USB-RS232 اشتريته من أمازون. قمت بتطبيق موصل لوحدة BT وقمت بتوجيه مصدر الطاقة 3 و 3 فولت و GND من المحول إلى وحدة BT. ثم قمت بتوصيل خطوط TxD و RxD ذات الصلة في التقاطع. TxD من محول USB إلى RxD من وحدة BT والعكس صحيح.
لدي آلة لينكس واستخدمت cutecom. بعد توصيل محول USB كان المركب "ttyUSB0". يمكنك العثور على أسماء comport في دليل "/ dev" على جهاز Linux الخاص بك. لمستخدمي ويندوز أوصي باستخدام "hterm". إنه سهل التشغيل. اكتب "AT" ويجب أن تحصل على "AT" كاستجابة. ثم اكتب "AT + NameSensor" لمنح وحدة BT اسم "Sensor"
الخطوة 3: تركيب الأجزاء
قطع قطعة من الخشب بحجم مناسب لأخذ جميع الأجزاء. قم بتوصيل جميع الإشارات كما هو موضح في التخطيطي. من الجيد وضع غلاف من السيليكون حول الأسلاك لحمايتها. قم بتوصيل قابس USB-B على لوحة التحكم. يتم استخدامه فقط لإمداد الطاقة. ثبت جميع الأجزاء بالمسامير على القاعدة الخشبية. أخيرًا ، قم بالغراء الساخن للكابلات لتثبيتها على الخشب.
الخطوة 4: الاقتران
قم بتشغيل تطبيق المستشعر عن طريق توصيل مصدر طاقة USB. سيبدأ مصباح LED أحمر في وحدة BT في الوميض. لا تحاول إقرانه بهاتفك الذكي الذي يعمل بنظام Android. يجب عليك إدخال رمز PIN. هذا هو "1234". بعد إدخال الرمز ، يجب إقران هاتفك الذكي بوحدة BT.
الخطوة 5: البرنامج
أحب كتابة تطبيقات Android على النظام الأساسي المستهدف نفسه. إنه يحميك من كل عناصر المحاكاة التي يجب أن تهتم بها إذا كنت تعمل مع Android Studio. لقد اكتشفت ثلاث أدوات تطوير مناسبة على نظام Android نفسه
- مينتوريس الأساسية. مترجم أساسي مع مجموعة غنية من الأوامر للتغلب على كل شيء تقريبًا على Android. يمكنك إنشاء اختصارات لتطبيقاتك. لا يحتوي Mintoris basic على مترجم. لذلك يجب أن تكون قد قمت بتثبيت Mintoris على كل جهاز تستخدمه. لكن عليك أن تدفع ثمنها مرة واحدة فقط (حوالي 7 يورو)
- أساسي! مترجم ومترجم أساسي جيد للغاية (إضافة لبعض اليورو). تقريبًا يتم ربط كل شيء في Android ويمكنك تجميع تطبيقات حقيقية لتوزيعها دون الحاجة إلى Basic! على الجهاز المستهدف. للأسف أساسي! يفتقر إلى وظائف مخطط الرسم التخطيطي الممتازة لمينتوريس
- AIDE هو IDE شبه احترافي للقيام بتطوير android في java على android. مع AIDE لديك أقصى درجات المرونة ولكن عليك أن تتعلم جافا. تبلغ تكاليف AIDE السنوية حوالي 50 يورو
اخترت مينتوريس. في هذا القسم ، لن أعطيك برنامجًا تعليميًا للبرمجة في Mintoris ولكن وصفًا موجزًا لمجموعات الوظائف
في الجزء التالي ، تم الإعلان عن ثلاث صفائف لخطي بيانات المستشعر والطوابع الزمنية ذات الصلة. تُستخدم بيانات الطابع الزمني لتسمية المحور السيني للرسم التخطيطي. يخرج Sodial دفقين من البيانات يتم تحديد كل منهما لحجم جسيم خاص. تأخذ مصفوفتا بيانات الغبار هذه القيم.
WakeLock الجزئي
لون النص 100 ، 75 ، 10
لون النص أ 50 ، 50 ، 50
محاذاة النص 0
حجم النص 24
CLS
نافذة منبثقة "مقياس حساس الغبار (c) ARJ 2017"
Global dustData () ، dustDataF () ، timeStamp () الفهرس العالمي ، الاختيار ، maxData ، fileName $
طابع زمني خافت (59)
غبار خافت داتا (59)
غبار خافت DataF (59)
قائمة التعتيم $ (4) = "100 مجموعة بيانات بحد أقصى" ، "1000 مجموعة بيانات بحد أقصى" ، "5000 مجموعة بيانات بحد أقصى" ، "10000 مجموعة بيانات بحد أقصى" ، "خروج"
تهيئة المصفوفات
بالنسبة إلى i = 0 إلى 59
بيانات الغبار (أنا) = 0
DustDataF (i) = 0
الطابع الزمني (ط) = أنا
بعدها انا
بعد ذلك يتم تكوين قائمة القائمة. يمنح هذا المستخدم خيارًا لتحديد الحجم الأقصى للبيانات المراد جمعها. هذا مجرد مفتاح أمان لمنع الهاتف الذكي من امتصاص البيانات التي لا نهاية لها. تعيد وظائف BTgetPaired $ () قائمة بجميع الأجهزة المقترنة على جهاز Android وأسمائها وعنوان BT.
قائمة المحضر $ () ، الاختيار
حدد الحد الأقصى للمبلغ إذا تم تخزين البيانات
مستوى التشغيل = 1
حدد الاختيار
الحالة 0 maxData = 100
الحالة 1 كحد أقصى التاريخ = 1000
الحالة 2 maxData = 5000
الحالة 3 maxData = 10000
الحالة 4 maxData = 0
حدد النهاية
'' توصيل جهاز الاستشعار
زوج خافت $ (0)
الزوج $ () = BTGetPaired $ ()
إذا كان الزوج $ (0) = "لا شيء" إذن
اطبع "لم يتم العثور على أجهزة مقترنة. هل تم تشغيل BT؟" طباعة "تم إنهاء البرنامج"
نهاية
إنهاء إذا
قائمة الزوج $ () ، الجهاز $
الاسم $ = ItemExtract $ (الجهاز $ ، 0)
العنوان $ = ItemExtract $ (الجهاز $ ، 1)
BTConnect 1 ، العنوان $
انتظر الاتصال
التقدم قيد التشغيل
اطبع "محاولة الاتصال بـ" ؛ العنوان $
بالنسبة إلى i = 1 إلى 20
التقدم ط / 2
إذا كانت BTGetstate (1) = 4 ثم اخرج من أجل الانتظار 1000
بعدها انا
التقدم معطلة
عند النجاح ، اتصل بجهاز BT
إذا كانت BTGetState (1) = 4 ، فقم بطباعة "متصل" Else Print "تعذر الاتصال بـ" ؛ name $
طباعة "تم إنهاء البرنامج"
نهاية
إنهاء إذا
تُظهر الكتلة التالية طلب البيانات. لكل جلسة بيانات ، يتم فتح الملف تلقائيًا وتسميته بعد الوقت والتاريخ. ثم الحلقة تقرأ بيانات المستشعر. البيانات معبأة في عدة بايت. يتم تحديد مجموعة البايت من خلال حرفين من أحرف ASCII 170 و 171. تتم إعادة تنظيم البيانات التالية وتعبئتها في مصفوفات الغبار
تشغيل الرسومات
افتح ملف البيانات للكتابة
اسم الملف $ = FormatTime $ (t، "yyyy-MM-dd-kk-mm-ss") + ".dat"
افتح 1، fileName $، "w +" Print "Opened datafile"؛ fileName $ Writeln 1، FormatTime $ (Time ()، "yy-MM-dd")
Writeln 1 ، "Time Dust2.5 Dust10"
املأ الصفيف بالبيانات المقاسة
البيانات $ = "" packet $ = ""
الفهرس = 0
افعل بينما maxData> 0
قراءة 1 ، حزمة ، 10 دولارات
البيانات $ = بيانات $ + حزمة $
إذا كان Len (data $)> = 10 ثم
إذا كان (ASCII (Left $ (data $، 1)) = 170) & (ASCII (Right $ (data $، 1)) = 171) ثم
dustDataF (index) = ASCII (Mid $ (data $، 2، 1))
dustDataF (index) = (dustDataF (index) + 256 * ASCII (Mid $ (data $، 3، 1))) / 10
dustData (index) = ASCII (Mid $ (data $، 4، 1))
dustData (index) = (dustData (index) + 256 * ASCII (Mid $ (data $، 5، 1))) / 10
Writeln 1، FormatTime $ (Time ()، "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))
البيانات $ = ""
maxData = maxData-1
الفهرس = الفهرس + 1
إذا كان الفهرس> 59 ثم الفهرس = 0
بيانات الغبار (الفهرس) = 0
dustDataF (فهرس) = 0
إنهاء إذا
إنهاء إذا
DrawGraph ()
انتظر 100
حلقة
أغلق 1
إيقاف تشغيل الرسومات
CLS Print "تم إنهاء البرنامج"
نهاية
الجزء الأخير عبارة عن روتين فرعي يتم استدعاؤه بعد كل استقبال للبيانات. إنه يمسح الشاشة ، ويعيد رسم المخطط بالبيانات الفعلية المخزنة في مصفوفتي الغبار والطوابع الزمنية.
ارسم الإحداثيات والتسميات والعلامات ومنحنيات البيانات
رسم بياني فرعي ()
في وضع الرسومات ، يتم مسح الشاشة إلى اللون الحالي
اللون 0 ، 0 ، 0
CLS
اللون 0 ، 0 ، 100
اضبط لون الرسومات المراد استخدامه لرسم خطوط الشبكة
لون النص 100 ، 100 ، 100 ، 50
TextColor هو لون العنوان الرئيسي للشبكة
TextColorA 100 ، 100 ، 100
يتم استخدام TextColorA لعناوين المحور وشروح الشبكة.
اضبط حجم نص عنوان المحور
العنوان الرئيسي للشبكة هو 2x هذا الحجم
حجم النص 20
FixDecimal 0
اضبط لعرض منزلتين عشريتين
PadDigits 2
"ارسم شبكة للرسم البياني" عيّن نطاق وعنوان X & Y
محور المحور X 0 ، 59 ، "الوقت / ثانية"
المحور Y 0 ، 10000 ، "ug / m3"
الشبكة 3 ، "تركيز الغبار"
ارسم الرسوم البيانية للغبار
اللون 100 ، 0 ، 0
GraphXY timeStamp () ، dustDataF ()
اللون 0 ، 100 ، 0
GraphXY timeStamp () ، dustData ()
لون النص 100 ، 0 ، 0
DrawText "PM2.5" ، 30 ، Int (ScreenY () - 60) ، 90 ، 1
لون النص 0 ، 100 ، 0
DrawText "PM10" ، 30 ، Int (ScreenY () - 150) ، 90 ، 1
لون النص 100 ، 100 ، 100 ، 50
يعود
قم بتنزيل الكود المصدري هنا
الخطوة 6: الاختبار
قم بتشغيل المستشعر وابدأ تشغيل التطبيق. من قائمة الأجهزة المقترنة ، اختر الجهاز المسمى "Sensor". بعد توصيل المستشعر ، ستبدأ الشاشة في عرض البيانات. في نفس الوقت يتم تخصيص ملف البيانات. بعد الانتهاء من الموضة ، يمكنك استخدام GnuPlot لعرض البيانات. استخدم ملف "Test.gp" في GnuPlot لتكوين GnuPlot لعرض ملف بيانات باسم "Test.dat". يمكنك أيضًا العثور عليها هنا
شاهد الفيديو لمزيد من التفاصيل والاختبار. استمتع بالكثير من المرح والمزيد من الأفكار!
موصى به:
إطالة عمر الكمبيوتر المحمول! نظف الغبار من المشتت الحراري: 3 خطوات
إطالة عمر الكمبيوتر المحمول! نظف الغبار من المشتت الحراري الخاص به: نظرة عامة أساسية للغاية على كيفية تنظيف الغبار من المشتت الحراري لجهاز الكمبيوتر المحمول من Toshiba. كان هناك الكثير هناك! لا أصدق أن هذه الممارسة لا يوصى بها ولا تشجع عليها الشركات المصنعة. إذا كان الغبار يسد مدخل ومخرج الهواء و
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي - احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: 6 خطوات
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي | احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: مرحبًا يا شباب اليوم سنصنع الرطوبة & amp؛ نظام مراقبة درجة الحرارة باستخدام ESP 8266 NODEMCU & amp؛ جهاز استشعار درجة الحرارة DHT11. سيتم الحصول على درجة الحرارة والرطوبة من مستشعر DHT11 & amp؛ يمكن رؤيته على متصفح أي صفحة ويب ستتم إدارتها
واجهة مستشعر ADXL335 على Raspberry Pi 4B في 4 خطوات: 4 خطوات
واجهة مستشعر ADXL335 على Raspberry Pi 4B في 4 خطوات: في هذا Instructable ، سنقوم بتوصيل مستشعر ADXL335 (مقياس تسارع) على Raspberry Pi 4 مع Shunya O / S
محطة مراقبة جزيئات الغبار التي تعمل بالاردوينو: 4 خطوات (بالصور)
محطة مراقبة جزيئات الغبار التي تعمل بالطاقة من Arduino: يمكنك بسهولة إلى حد ما إنشاء جهاز إنترنت الأشياء DIY الذي يراقب تلوث الغبار في منزلك بأقل من 50 دولارًا ويتم إعلامك عندما يصبح مستوى الغبار مرتفعًا جدًا بحيث يمكنك تهوية الغرفة ، أو يمكنك ضبطه بالخارج وتلقي إشعارًا إذا كان
نوكيا 6280 إزالة غطاء الشاشة لتنظيف الغبار: 7 خطوات
إزالة غطاء شاشة Nokia 6280 لتنظيف الغبار: على عكس العديد من الطرز الأخرى ، لا يبدو أن Nokia 6280 صُنع بحيث يمكن للمستخدمين إزالة غطاء الشاشة بأنفسهم. هذا يزعج أولئك الذين يتراكم عليهم الغبار بين شاشة LCD الفعلية وغطاء الشاشة ، وهو الكثير من المالكين … في الواقع ، بمرور الوقت ، "