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

مسجل بيانات مفتوح المصدر (OPENSDL): 5 خطوات (بالصور)
مسجل بيانات مفتوح المصدر (OPENSDL): 5 خطوات (بالصور)

فيديو: مسجل بيانات مفتوح المصدر (OPENSDL): 5 خطوات (بالصور)

فيديو: مسجل بيانات مفتوح المصدر (OPENSDL): 5 خطوات (بالصور)
فيديو: مش عاوز تتعرف عليا خالص؟ (الأصلي ) 2024, يوليو
Anonim
مسجل بيانات مفتوح المصدر (OPENSDL)
مسجل بيانات مفتوح المصدر (OPENSDL)
مسجل بيانات مفتوح المصدر (OPENSDL)
مسجل بيانات مفتوح المصدر (OPENSDL)
مسجل بيانات مفتوح المصدر (OPENSDL)
مسجل بيانات مفتوح المصدر (OPENSDL)

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

ينتج عن ذلك نظام مخصص وبأسعار معقولة يمكّن أصحاب المصلحة من إجراء القياسات المطلوبة لبناء تقييم الأداء بطريقة فعالة وبأسعار معقولة من خلال تسجيل معايير بيئية متعددة في وقت واحد. تمت مقارنة مسجل البيانات مفتوح المصدر (OPENSDL) الذي تم تطويره بمسجل بيانات HOBO U12-012. يمكن لهذا النظام المقابل المتاح تجاريًا قياس 3 معلمات ، وهي درجة الحرارة ، و RH ، والإضاءة ، وقناة خارجية واحدة لأنواع المستشعرات الأخرى. ستكون هناك حاجة إلى جهاز استشعار مختلف لقياس أي معلمة أخرى. تقتصر خصائص المعلمات المراد قياسها على الأجهزة والبرامج المسجلة الملكية ، مما يقيد النظام بقياس معلمات معينة بدقة محددة. تبلغ تكلفة HOBO U12-012 حوالي 13000 يورو (185 دولارًا أمريكيًا) ، بينما تبلغ تكلفة OPENSDL 4605 روبلًا (66 دولارًا أمريكيًا) ، وهو ما يقرب من ثلث نظيرتها التجارية.

مسجل بيانات مفتوح المصدر لمراقبة درجات الحرارة ، ومستويات الرطوبة النسبية ، ومستويات الإضاءة (الإضاءة) بمساعدة Arduino Uno. هذا هو DIY لتطوير مسجل بيانات OPENSDL.

الوقت المطلوب: 2-3 ساعات للحام ، 5 ساعات للتغليف (4 ساعات - طباعة ثلاثية الأبعاد ، وساعة واحدة للقطع بالليزر) المهارات المطلوبة: لحام ، معرفة قليلة أو معدومة في البرمجة والإلكترونيات

الأجزاء المطلوبة:

  1. اردوينو اونو مع كابل
  2. درع مسجل البيانات
  3. بطارية خلية العملة المعدنية CR1220
  4. BME280 درجة حرارة الرطوبة استشعار الضغط مجلس اندلاع
  5. TSL2561 لوحة اندلاع مستشعر الضوء
  6. وحدة Wi-Fi ESP01-8266
  7. موصل RJ-9 ذكر وأنثى
  8. رؤوس درع التراص لاردوينو
  9. بطاقة ذاكرة SD (أي سعة)
  10. لوحة ناقلات (26 × 18 فتحة)
  11. 8 بطاريات AA حامل بطارية

أدوات المطلوبة:

  • لحام الحديد (35 واط)
  • أسلاك اللحام
  • قاطع الاسلاك
  • أداة المكشكش
  • المقياس المتعدد

البرنامج المطلوب: Arduino IDE (1.0.5 أو أعلى)

مكتبات Arduino المستخدمة:

  • مكتبة الأسلاك
  • مكتبة SparkFun TSL2561
  • مكتبة Cactus BME280 multisensor
  • مكتبة بطاقة SD
  • مكتبة SPI
  • مكتبة RTC

ملحوظة: مستشعر BME280 هو حساس دقيق للغاية لدرجة الحرارة والرطوبة النسبية والضغط من Bosch. وبالمثل ، فإن DS1307 هي ساعة دقيقة في الوقت الحقيقي من Maxim و TSL2561 هي مستشعر ضوء دقيق. توجد بدائل أقل تكلفة وأقل دقة لهذه المنتجات ، ولكن هذا البرنامج التعليمي كان موجهًا للأشخاص المهتمين بجمع البيانات لبناء تقييم الأداء وبناء تطبيقات المراقبة التي تتطلب دقة ودقة عالية. هذا يعني أن أي إعداد محدد للأجهزة وإعداد البرامج (المكتبات ، رمز البرنامج) كان مخصصًا بشكل صارم للمنتجات المحددة فقط.

الخطوة 1: التجميع

المجسم
المجسم
المجسم
المجسم
المجسم
المجسم
المجسم
المجسم

يمكن تكديس درع مسجل البيانات بسهولة أعلى لوحة Arduino Uno. يوفر هذا الدرع إمكانيات تسجيل البيانات (حفظ الوقت وتخزين البيانات). كان لابد من تكديس الدرع. كان لابد من إدخال بطارية خلية من نوع CR1220 في الفتحة المستديرة المقدمة للحفاظ على تشغيل الساعة حتى عند إيقاف تشغيل Arduino. يجب إدخال بطاقة الذاكرة SD في فتحة البطاقة الموجودة على اللوحة المتوفرة. تم تطوير درع مخصص فريد باستخدام دبابيس موصل RJ-9 الأنثوية ورؤوس تجميع درع Arduino. تم لحام الرؤوس المناسبة في الأماكن المناسبة بحيث يتناسب الغطاء تمامًا مع لوحة Arduino. يحتوي Arduino على 18 دبوسًا على جانب واحد و 14 دبوسًا على الجانب الآخر. تم استخدام الرؤوس ذات العدد نفسه من المسامير في نفس التباعد (18 سنًا على حدة) كما هو الحال في Arduino. تم استخدام المساحة الإضافية المتبقية المجاورة للرؤوس لوضع موصل RJ-9.

كانت الرؤوس هي أفضل طريقة لاستخدام المسامير المطلوبة ، مع جعلها متاحة للاستخدام مع المكونات الأخرى. تتبع المستشعرات المستخدمة بروتوكول الاتصال I2C ، والذي يتطلب 4 دبابيس من Arduino ، وهي: SDA (متوفر أيضًا كـ A4) ، SCL (متوفر أيضًا باسم A5) ، 3.3 فولت و GND. تم لحام الأسلاك الأربعة الخارجة من موصل RJ-9 في دبابيس الرأس الأربعة هذه. يعتمد عدد موصلات RJ-9 المطلوبة على عدد المستشعرات. في هذا المشروع ، تم استخدام 3 موصلات RJ-9 (اثنان من أجل BME280 وواحد لـ TSL2561). كانت الأسلاك الأربعة الخارجة من موصل RJ-9 مشفرة بالألوان ، وتم تخصيص دبوس محدد لكل سلك ملون لجميع موصلات RJ-9. وتجدر الإشارة إلى أن رمز اللون قد يختلف باختلاف قطع RJ-9. في مثل هذه الحالة ، يجب ملاحظة موقع السلك على الموصل. تم تصنيع موصل RJ-9 ، بعد اللحام ، ليتم تثبيته على لوحة المتجه باستخدام Feviqwik ، بحيث يتم تثبيته على السطح. يمكن التحقق من هذه الاتصالات باستخدام وضع الاستمرارية على جهاز القياس المتعدد. عندما يكون في وضع الاستمرارية ، يجب أن يُظهر المتر المتعدد مقاومة صفرية. قم بتوصيل أحد مجسات جهاز القياس المتعدد بالدبوس الملحوم ، ومسبار آخر بالدبوس الموجود داخل موصل RJ-9. يجب أن يصدر جهاز القياس المتعدد نغمة ، مما يعني أن مفاصل اللحام صحيحة ، وقد تم إجراء التوصيلات بشكل صحيح. إذا لم تنبعث النغمة ، فتحقق من وصلات اللحام. وبالمثل ، قم بتوصيل موصل RJ-9 بنفس الأسلاك التي تتصل بنفس الثقوب الموجودة على لوحات اختراق المستشعر ، مثل A4 و A5 و 3.3V و GND. يدعم مستشعر BME280 عنواني I2C ، مما يعني أنه يمكن توصيل جهازي استشعار BME280 بنفس وحدة التحكم في وقت واحد. أثناء القيام بذلك ، يجب تغيير عنوان أحد المستشعرات عن طريق توصيل وسادات اللحام الموجودة على المستشعر. تتطلب شريحة الاتصال اللاسلكي ESP-01 الاتصالات التالية مع Arduino.

ESP-01 --------- اردوينو أونو

10 -------------------- TX

11 -------------------- RX

Vcc ---------------- CH_PD

Vcc ------------------- Vcc

GND ----------------- GND

ملاحظة: - تمت إزالة مصابيح LED المتعددة في Arduino Uno لتحسين عمر البطارية. تمت إزالة مؤشرات LED و RX و TX بمؤشر الطاقة عن طريق تسخين مفاصل اللحام ودفع مؤشر LED بالملقط.

الخطوة 2: إعداد IDEs والمكتبات

قبل القيام بأي برمجة ، يجب تنزيل Arduino IDE (بيئة التطوير المتكاملة). تم البرمجة على هذه المنصة. كانت هناك حاجة إلى مكتبات مختلفة للتفاعل مع مكونات مختلفة من OPENSDL. تم استخدام المكتبات التالية للمكونات المحددة.

مكون ------------------------------------------------- --------------مكتبة

مستشعر درجة الحرارة BME280 & RH --------------------------------- Cactus_io_BME280_I2C.h

مستشعر الضوء------------------------------------------------ ---------------- SparkFun TSL2561.h

ساعة الوقت الحقيقي ----------------------------------------------- ------------- RTClib.h

مقبس بطاقة SD ----------------------------------------------- ------------- SD.h

اتصال I2C ------------------------------------------------ ------------- سلك

مكتبة منفصلة للتواصل مع ESP01 ليست مطلوبة لأن الكود الذي تم تحميله في Arduino به أوامر AT ، والتي يتم إرسالها إلى الشاشة التسلسلية ، حيث يأخذ ESP-01 التعليمات. لذلك ، بشكل أساسي ، تتم طباعة أوامر AT التي يتم من خلالها تشغيل ESP01 ، في Serial Monitor ، والتي يتم أخذها كأمر إدخال بواسطة ESP-01. لتثبيت هذه المكتبات ، بعد تنزيلها ، افتح Arduino IDE ، وانتقل إلى Sketch -> Include Library -> Add. Zip library ، وحدد المكتبات التي تم تنزيلها.

الخطوة الثالثة: برمجة النظام

برمجة النظام
برمجة النظام

قبل برمجة OPENSDL ، قم بتوصيل Arduino بجهاز كمبيوتر محمول. بعد الاتصال ، انتقل إلى Tools -> Port ، وحدد منفذ COM الذي يتصل به OPENSDL. تأكد أيضًا من تحديد Arduino Uno ضمن Tools -> Boards.

تم تطوير OPENSDL للعمل في وضعين. في الوضع الأول ، يقوم بتخزين البيانات الموجودة على بطاقة SD على درع مسجل البيانات. في الوضع الثاني ، يرسل البيانات عبر الإنترنت إلى موقع ويب باستخدام شريحة ESP-01 Wi-Fi. البرنامج لكلا الوضعين مختلف. يمكن نسخ سطور التعليمات البرمجية هذه ولصقها مباشرةً في محرر Arduino IDE ، واستخدامها مباشرةً. بمجرد إدخال الرمز ، نحتاج إلى إجراء بعض التخصيصات وفقًا لاحتياجاتنا:

  1. قم يدويًا بتغيير قيمة التأخير (1000) في نهاية الكود لتغيير فاصل التسجيل. تمثل القيمة 1000 الفترة الزمنية بالمللي ثانية.
  2. قم بتحرير سطر التعليمات البرمجية الذي يقول mySensorData = SD.open ("Logged01.csv"، FILE_WRITE) ؛ واستبدل Logged01 باسم الملف لاسم الملف المطلوب. يمكن أيضًا تغيير امتداد الملف عن طريق تعديل امتداد.csv بعد اسم الملف مباشرةً.
  3. ستختلف معادلة المعايرة التي تم تحقيقها من خلال إيجاد الارتباط بين المستشعر الرئيسي / المرجعي و BME280 باختلاف كل مستشعر. استبدل سطر الكود هذا بمعادلة معايرة المستشعرات: Serial.print ((1.0533 * t2) -2.2374) - للمستشعر بالعنوان الافتراضي (0x77) ، حيث t2 هي القيمة المقروءة من مستشعر درجة الحرارة.

تم توفير برنامج منفصل لبرمجة الوضع الثاني المتاح لـ OPENSDL ، وهو النظام اللاسلكي. يجب توصيل ESP-01 بـ OPENSDL وفقًا للتوصيلات كما هو موضح في الخطوة رقم 2. بعد الانتهاء من الاتصالات ، قم بتوصيل Arduino بالكمبيوتر المحمول ، وقم بتحميل رسم فارغ في Arduino. ضع ESP-01 في وضع التحديث وقم بتحديث البرنامج الثابت إلى آخر تحديث متوفر. بعد التحديث ، تأكد من توصيل دبوس إعادة التعيين الخاص بـ Arduino مع دبوس 3.3V ، والذي يتجاوز أداة تحميل التشغيل Arduino

الخطوة الرابعة: التصنيع

تلفيق
تلفيق
تلفيق
تلفيق
تلفيق
تلفيق

تم إنشاء حاوية لـ OPENSDL للحماية ولتحسين الجماليات. تم تطوير الأغلفة عن طريق الطباعة ثلاثية الأبعاد باستخدام مادة PLA ، وتم تطوير غلاف المتحكم الدقيق عن طريق قطع لوح MDF بالليزر ولصق القطع معًا. تم تطوير النماذج المطبوعة ثلاثية الأبعاد باستخدام برنامج SketchUp ، وتم إنشاء الرسومات ثنائية الأبعاد dxf للقطع بالليزر باستخدام AutoCAD.

للطباعة ثلاثية الأبعاد ، تم فتح ملفات STL التي تم إنتاجها باستخدام SketchUp والتحقق منها في برنامج Ultimaker Cura 3.2.1. تأكد من استخدام مادة PLA ، وأن فوهة الطابعة المستخدمة مخصصة للطباعة 0.4 مم. قد تتطلب لوحة التصميم الخاصة بالطابعة ثلاثية الأبعاد الغراء للصق الكائن المطبوع ثلاثي الأبعاد. ولكن عند اكتمال الطباعة ، يُنشئ الغراء التصاقًا قويًا بين الكائن المطبوع ولوحة التصميم.

الخطوة 5: الكود

تم تصميم الكود (ملفات.ino) للعمل في برنامج Arduino IDE. إليك الرابط إلى صفحة Github الخاصة بي للحصول على الكود والتفاصيل الأخرى.

github.com/arihant93/OPENSDL

من فضلك لا تتردد في طرح الأسئلة حول المشروع.

شكرا.

موصى به: